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