I started working on a Python class to support working with Mahalo data, this is by far not complete but I thought i'd get this out there to help inspire some people :)
1 class mhoPageOPML(object):
2 import xml.dom.minidom, urllib2
3 from xml.dom.minidom import Node
4
5 def __init__(self, url):
6 self.url = url
7
8 f = self.urllib2.urlopen('%s?action=opml' % url)
9 self.opml = f.read()
10
11 def getTop7(self):
12 top7 = self.getSectionLinks('The Mahalo Top 7')
13
14 return top7
15
16
17 def getSectionLinks(self, section):
18 links = []
19 site = {}
20
21 doc = self.xml.dom.minidom.parseString(self.opml)
22
23 for node in doc.getElementsByTagName("outline"):
24 text = node.getAttribute("text")
25 if text == section:
26 for n2 in node.getElementsByTagName('outline'):
27 if n2.getAttribute('type') == 'link':
28 site = {'title' : n2.getAttribute("text"), 'url' : n2.getAttribute('url')}
29 links.append(site)
30 return links
31
32 def sections(self):
33 sections = []
34
35 doc = self.xml.dom.minidom.parseString(self.opml)
36
37 for node in doc.getElementsByTagName('outline'):
38 if node.hasChildNodes() and len(node.parentNode.getAttribute('text')) == 0:
39 sections.append(node.getAttribute('text'))
40 return sections