maybe a fork of sparrowhe's "bluesky circle" webapp, to frontend only?
1from flask import render_template, request, current_app
2from flask_cors import cross_origin
3from . import avatar_bp
4from .parse_friends import parse_friends
5from at_client import at_client_extension
6from .utils import plot_avatars_full_circle
7
8@avatar_bp.route('/')
9def index():
10 return render_template('index.html')
11
12@cross_origin()
13@avatar_bp.route('/generate', methods=['POST'])
14def generate_avatar():
15 client = at_client_extension.get_client()
16
17 handle = request.form.get('handle')
18 # filter invisible characters
19 handle = ''.join(filter(lambda x: x.isprintable(), handle))
20 handle.replace('@', '')
21 friends_data = parse_friends(client, handle)
22 center = client.get_profile(handle)
23 center_avatar_url = center.avatar
24 data = plot_avatars_full_circle(friends_data, center_avatar_url)
25 res = current_app.make_response(data)
26 res.headers['Content-Type'] = 'image/png'
27 return res