mirror of
https://github.com/Lynnesbian/FediBooks/
synced 2024-11-25 08:38:59 +00:00
step one - basic instance validation
This commit is contained in:
parent
ef27eacb69
commit
7572536361
2 changed files with 34 additions and 3 deletions
|
@ -21,7 +21,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 %}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>
|
||||
<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>
|
||||
|
|
35
webui.py
35
webui.py
|
@ -3,7 +3,7 @@ from flask_mysqldb import MySQL
|
|||
import requests
|
||||
import MySQLdb
|
||||
import bcrypt
|
||||
import json, hashlib
|
||||
import json, hashlib, re
|
||||
|
||||
cfg = json.load(open("config.json"))
|
||||
|
||||
|
@ -70,8 +70,39 @@ def bot_accounts(id):
|
|||
def bot_accounts_add():
|
||||
return render_template("bot_accounts_add.html")
|
||||
|
||||
@app.route("/bot/create/")
|
||||
@app.route("/bot/create/", methods=['GET', 'POST'])
|
||||
def bot_create():
|
||||
if request.method == 'POST':
|
||||
if session['step'] == 1:
|
||||
# strip leading https://, if provided
|
||||
session['instance'] = re.match(r"^(?:https?:\/\/)?(.*)", request.form['instance']).group(1)
|
||||
|
||||
# check for mastodon/pleroma
|
||||
r = requests.get("https://{}/api/v1/instance".format(session['instance']))
|
||||
if r.status_code == 200:
|
||||
j = r.json()
|
||||
if "Pleroma" in j['version']:
|
||||
session['instance_type'] = "Pleroma"
|
||||
session['step'] += 1
|
||||
else:
|
||||
if 'is_pro' in j['contact_account']:
|
||||
# gab instance
|
||||
session['error'] = "Eat shit and die, fascist scum."
|
||||
else:
|
||||
session['instance_type'] = "Mastodon"
|
||||
session['step'] += 1
|
||||
|
||||
else:
|
||||
# not a masto/pleroma instance
|
||||
# misskey is currently unsupported
|
||||
# all other instance types are also unsupported
|
||||
# return an error message
|
||||
#TODO: misskey
|
||||
session['error'] = "Unsupported instance type."
|
||||
|
||||
elif session['step'] == 2:
|
||||
pass
|
||||
|
||||
return render_template("bot_create.html")
|
||||
|
||||
@app.route("/do/signup", methods=['POST'])
|
||||
|
|
Loading…
Reference in a new issue