this repo has no description

feed_manager.py: register feeds here and use in gen and web

+8
feed_manager.py
···
+
from feeds.popular import PopularFeed
+
from feeds.rapidfire import RapidFireFeed
+
class FeedManager:
def __init__(self):
self.feeds = {}
···
def run_tasks_minute(self):
for feed in self.feeds.values():
feed.run_tasks_minute()
+
+
+
manager = FeedManager()
+
# manager.register(PopularFeed)
+
manager.register(RapidFireFeed)
+1 -7
feedgen.py
···
import dag_cbor
import websockets
-
from feed_manager import FeedManager
-
from feeds.rapidfire import RapidFireFeed
-
from feeds.popular import PopularFeed
+
from feed_manager import manager as feed_manager
from firehose_manager import FirehoseManager
logging.basicConfig(
···
async def main():
firehose_manager = FirehoseManager()
-
-
feed_manager = FeedManager()
-
feed_manager.register(RapidFireFeed)
-
# feed_manager.register(PopularFeed)
current_minute = None
async for commit in firehose_events(firehose_manager):
+3 -7
feedweb.py
···
from flask import Flask, request, jsonify
-
from feed_manager import FeedManager
+
from feed_manager import manager as feed_manager
from feeds.rapidfire import RapidFireFeed
from feeds.popular import PopularFeed
···
@app.route('/xrpc/app.bsky.feed.getFeedSkeleton')
def get_feed_skeleton():
-
manager = FeedManager()
-
manager.register(RapidFireFeed)
-
# manager.register(PopularFeed)
-
try:
limit = int(request.args.get('limit', 50))
except ValueError:
···
if request.args.get('debug', '0') == '1':
headers = {'Content-Type': 'text/plain; charset=utf-8'}
-
debug = manager.serve_feed_debug(feed_uri, limit, offset, langs)
+
debug = feed_manager.serve_feed_debug(feed_uri, limit, offset, langs)
return debug, headers
-
posts = manager.serve_feed(feed_uri, limit, offset, langs)
+
posts = feed_manager.serve_feed(feed_uri, limit, offset, langs)
offset += len(posts)
return dict(cursor=str(offset), feed=[dict(post=uri) for uri in posts])