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