this repo has no description
1#!/usr/bin/env python3 2 3from flask import Flask, request, jsonify 4 5from feed_manager import FeedManager 6from feeds.rapidfire import RapidFireFeed 7from feeds.popular import PopularFeed 8 9app = Flask(__name__) 10 11@app.route('/xrpc/app.bsky.feed.getFeedSkeleton') 12def get_feed_skeleton(): 13 manager = FeedManager() 14 manager.register(RapidFireFeed) 15 # manager.register(PopularFeed) 16 17 try: 18 limit = int(request.args.get('limit', 50)) 19 except ValueError: 20 limit = 50 21 22 try: 23 offset = int(request.args.get('cursor', 0)) 24 except ValueError: 25 offset = 0 26 27 if request.args['feed'].endswith('-dev'): 28 feed_uri = request.args['feed'].replace('-dev', '') 29 else: 30 feed_uri = request.args['feed'] 31 32 langs = request.accept_languages 33 34 if request.args.get('debug', '0') == '1': 35 headers = {'Content-Type': 'text/plain; charset=utf-8'} 36 debug = manager.serve_feed_debug(feed_uri, limit, offset, langs) 37 return debug, headers 38 39 posts = manager.serve_feed(feed_uri, limit, offset, langs) 40 offset += len(posts) 41 42 return dict(cursor=str(offset), feed=[dict(post=uri) for uri in posts]) 43 44if __name__ == '__main__': 45 from feedweb_utils import did_doc 46 app.add_url_rule('/.well-known/did.json', view_func=did_doc) 47 48 app.run(debug=True)