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