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.
ea8e46c07c
...
382ef00f85
2 changed files with 7 additions and 15 deletions
|
@ -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>
|
||||
|
|
20
webui.py
20
webui.py
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue