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