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 6 7class FeedManager: 8 def __init__(self): 9 self.feeds = {} 10 11 def register(self, feed): 12 self.feeds[feed.FEED_URI] = feed() 13 14 def process_commit(self, commit): 15 for feed in self.feeds.values(): 16 feed.process_commit(commit) 17 18 def serve_feed(self, feed_uri, limit, offset, langs, debug=False): 19 for pattern, feed in self.feeds.items(): 20 if fnmatchcase(feed_uri, pattern): 21 break 22 else: 23 raise Exception('no matching feed pattern found') 24 25 if '*' in pattern and debug: 26 return feed.serve_wildcard_feed_debug(feed_uri, limit, offset, langs) 27 28 elif '*' in pattern and not debug: 29 return feed.serve_wildcard_feed(feed_uri, limit, offset, langs) 30 31 elif '*' not in pattern and debug: 32 return feed.serve_feed_debug(limit, offset, langs) 33 34 elif '*' not in pattern and not debug: 35 return feed.serve_feed(limit, offset, langs) 36 37 def commit_changes(self): 38 for feed in self.feeds.values(): 39 feed.commit_changes() 40 41feed_manager = FeedManager() 42feed_manager.register(BattleFeed) 43feed_manager.register(RapidFireFeed) 44feed_manager.register(PopularFeed)