this repo has no description
1from fnmatch import fnmatchcase
2
3from feeds.battle import BattleFeed
4from feeds.rapidfire import RapidFireFeed
5from feeds.popular import PopularFeed
6from feeds.homeruns import HomeRunsTeamFeed
7
8class FeedManager:
9 def __init__(self):
10 self.feeds = {}
11
12 def register(self, feed):
13 self.feeds[feed.FEED_URI] = feed()
14
15 def process_commit(self, commit):
16 for feed in self.feeds.values():
17 feed.process_commit(commit)
18
19 def serve_feed(self, feed_uri, limit, offset, langs, debug=False):
20 for pattern, feed in self.feeds.items():
21 if fnmatchcase(feed_uri, pattern):
22 break
23 else:
24 raise Exception('no matching feed pattern found')
25
26 if '*' in pattern and debug:
27 return feed.serve_wildcard_feed_debug(feed_uri, limit, offset, langs)
28
29 elif '*' in pattern and not debug:
30 return feed.serve_wildcard_feed(feed_uri, limit, offset, langs)
31
32 elif '*' not in pattern and debug:
33 return feed.serve_feed_debug(limit, offset, langs)
34
35 elif '*' not in pattern and not debug:
36 return feed.serve_feed(limit, offset, langs)
37
38 def commit_changes(self):
39 for feed in self.feeds.values():
40 feed.commit_changes()
41
42feed_manager = FeedManager()
43feed_manager.register(BattleFeed)
44feed_manager.register(RapidFireFeed)
45feed_manager.register(PopularFeed)
46feed_manager.register(HomeRunsTeamFeed)