1
0
Fork 0
mirror of https://github.com/Lynnesbian/FediBooks/ synced 2024-11-25 16:48:58 +00:00

Compare commits

..

No commits in common. "ea8e46c07ce9adcf315c4cde4081f3ec01a16a7d" and "382ef00f859f37f2e545e9c4c9c93c4c1744b2e3" have entirely different histories.

2 changed files with 7 additions and 15 deletions

View file

@ -22,7 +22,7 @@
{% elif session['step'] == 2 %}
<h2 class="thin centred">Detected instance type: {{ session['instance_type'] }}</h2>
<p>{{ session['instance'] }} is a {{ session['instance_type'] }} instance. {% if session['instance_type'] == 'Pleroma' %}Pleroma's support for the Mastodon API is incomplete, and some functions may not work correctly. Additionally, FediBooks will need to request full read and write access to your account, as Pleroma does not support fine-grained app permissions.{% else %}{{ session['instance_type'] }} instances are fully supported, and your bot will have all functionality available.{% endif %}</p>
<p>{{ session['instance'] }} is a {{ session['instance_type'] }} instance. {% if session['instance_type'] == 'Pleroma' %}Unfortunately, bots on Pleroma instances cannot listen for replies yet. This means that your bot will have its reply functionality disabled.{% else %}{{ session['instance_type'] }} instances are fully supported, and your bot will have all functionality available.{% endif %}</p>
{% elif session['step'] == 3 %}
<p>You now need to give your bot access to the {{ session['instance'] }} account you have created for it. If you have not yet created an account on {{ session['instance'] }} for your bot to use, please do so now.</p>

View file

@ -20,7 +20,6 @@ app.config['MYSQL_PASSWORD'] = cfg['db_pass']
mysql = MySQL(app)
scopes = ['write:statuses', 'write:accounts', 'read:accounts', 'read:notifications', 'read:statuses', 'push']
scopes_pleroma = ['read', 'write', 'push']
@app.before_request
def login_check():
@ -37,8 +36,7 @@ def home():
bot_count = c.fetchone()[0]
active_count = None
bots = {}
bot_users = {}
next_posts = {}
bot_users = None
if bot_count > 0:
c.execute("SELECT COUNT(*) FROM `bots` WHERE user_id = %s AND enabled = TRUE", (session['user_id'],))
@ -47,6 +45,8 @@ def home():
dc.execute("SELECT `handle`, `enabled`, `last_post`, `post_frequency` FROM `bots` WHERE user_id = %s", (session['user_id'],))
bots = dc.fetchall()
dc.close()
bot_users = {}
next_posts = {}
for bot in bots:
# multiple SELECTS is slow, maybe SELECT all at once and filter with python?
@ -422,7 +422,7 @@ def bot_create():
session['client_id'], session['client_secret'] = Mastodon.create_app(
"FediBooks",
api_base_url="https://{}".format(session['instance']),
scopes=scopes if session['instance_type'] == 'Mastodon' else scopes_pleroma,
scopes=scopes,
redirect_uris=[redirect_uri],
website=cfg['base_uri']
)
@ -433,11 +433,7 @@ def bot_create():
api_base_url="https://{}".format(session['instance'])
)
url = client.auth_request_url(
client_id=session['client_id'],
redirect_uris=redirect_uri,
scopes=scopes if session['instance_type'] == 'Mastodon' else scopes_pleroma
)
url = client.auth_request_url(client_id=session['client_id'], redirect_uris=redirect_uri, scopes=scopes)
return redirect(url, code=303)
elif session['instance_type'] == 'Misskey':
@ -457,11 +453,7 @@ def bot_create():
try:
# test authentication
client = Mastodon(client_id=session['client_id'], client_secret=session['client_secret'], api_base_url=session['instance'])
session['secret'] = client.log_in(
code = session['code'],
scopes=scopes if session['instance_type'] == 'Mastodon' else scopes_pleroma,
redirect_uri='{}/do/authenticate_bot'.format(cfg['base_uri'])
)
session['secret'] = client.log_in(code = session['code'], scopes=scopes, redirect_uri='{}/do/authenticate_bot'.format(cfg['base_uri']))
username = client.account_verify_credentials()['username']
handle = "@{}@{}".format(username, session['instance'])
except: