source: subversion/applications/routing/pyroute/poi_geoRss.py @ 27980

Last change on this file since 27980 was 5859, checked in by ojw, 12 years ago

rename "mod_*" to "poi_*"

File size: 1.8 KB
Line 
1from poi_base import *
2import feedparser
3
4class geoRss(poiModule):
5    def __init__(self, modules, filename):
6        poiModule.__init__(self, modules)
7        f = open(filename,"r")
8        try:
9            for line in f:
10                url = line.rstrip()
11                if(url):
12                    feed = feedparser.parse(url)
13                    name = feed.feed.title
14                    self.add(name, feed)
15        finally:
16            f.close()
17        print self.groups
18
19    def getLatLon(self,item):
20        # Try getting the "point = lat lon"
21        try:
22            lat,lon = [float(ll) for ll in item['point'].split(" ")]
23            return(lat,lon,True)
24        except KeyError:
25            pass
26        except ValueError:
27            pass
28
29        # Try getting the "pos = lat lon"
30        try:
31            lat,lon = [float(ll) for ll in item['pos'].split(" ")]
32            return(lat,lon,True)
33        except KeyError:
34            pass
35        except ValueError:
36            pass
37
38        # Try getting the "geo:lat = lat, geo:lon = lon"
39        try:
40            lat = float(item['geo_lat'])
41            lon = float(item['geo_lon'])
42            return(lat,lon,True)
43        except KeyError:
44            pass
45
46        return(0,0,False)
47       
48    def add(self, name, feed):
49        group = poiGroup(name)
50        count = 0
51        for item in feed.entries:
52            lat, lon, valid = self.getLatLon(item)
53            if(valid):
54                x = poi(lat,lon)
55                x.title = item.title
56                group.items.append(x)
57                count = count + 1
58        #print "Added %d items from %s" % (count, name)
59
60        self.groups.append(group)
61
62if __name__ == "__main__":
63    g = geoRss('../Setup/feeds.txt')
64    name = g.groups.keys()[0]
65    print g.groups[name].items
66   
Note: See TracBrowser for help on using the repository browser.