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