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)