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