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