Implement sending rich embeds

This commit is contained in:
Jeremy Zhang
2019-11-06 13:45:48 -08:00
parent 8dec93d087
commit aa49b2d473
15 changed files with 529 additions and 53 deletions

View File

@ -49,6 +49,7 @@ def cosmetics_post():
css = request.form.get("css", None)
css_limit = int(request.form.get("css_limit", 0))
guest_icon = request.form.get("guest_icon", None)
send_rich_embed = request.form.get("send_rich_embed", None)
badges = request.form.get("badges", None)
entry = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
if entry:
@ -62,6 +63,9 @@ def cosmetics_post():
if guest_icon is not None:
guest_icon = guest_icon.lower() == "true"
user.guest_icon = guest_icon
if send_rich_embed:
send_rich_embed = send_rich_embed.lower() == "true"
user.send_rich_embed = send_rich_embed
if badges is not None:
badges = badges.split(",")
if badges == [""]:
@ -93,6 +97,7 @@ def cosmetics_patch():
css = request.form.get("css", None)
css_limit = request.form.get("css_limit", None)
guest_icon = request.form.get("guest_icon", None)
send_rich_embed = request.form.get("send_rich_embed", None)
badges = request.form.get("badges", None)
entry = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
if not entry:
@ -105,6 +110,9 @@ def cosmetics_patch():
if guest_icon:
guest_icon = guest_icon.lower() == "true"
entry.guest_icon = guest_icon
if send_rich_embed:
send_rich_embed = send_rich_embed.lower() == "true"
entry.send_rich_embed = send_rich_embed
if badges is not None:
badges = badges.split(",")
if badges == [""]:
@ -195,6 +203,7 @@ def administrate_guild(guild_id):
"autorole_unauth": db_guild.autorole_unauth,
"autorole_discord": db_guild.autorole_discord,
"file_upload": db_guild.file_upload,
"send_rich_embed": db_guild.send_rich_embed,
}
return render_template("administrate_guild.html.j2", guild=dbguild_dict, members=users, permissions=permissions, cosmetics=cosmetics)
@ -216,6 +225,7 @@ def update_administrate_guild(guild_id):
db_guild.autorole_unauth = request.form.get("autorole_unauth", db_guild.autorole_unauth, type=int)
db_guild.autorole_discord = request.form.get("autorole_discord", db_guild.autorole_discord, type=int)
db_guild.file_upload = request.form.get("file_upload", db_guild.file_upload) in ["true", True]
db_guild.send_rich_embed = request.form.get("send_rich_embed", db_guild.send_rich_embed) in ["true", True]
invite_link = request.form.get("invite_link", db_guild.invite_link)
if invite_link != None and invite_link.strip() == "":
invite_link = None
@ -254,6 +264,7 @@ def update_administrate_guild(guild_id):
autorole_unauth=db_guild.autorole_unauth,
autorole_discord=db_guild.autorole_discord,
file_upload=db_guild.file_upload,
send_rich_embed=db_guild.send_rich_embed,
)
@admin.route("/guilds")

View File

@ -303,6 +303,9 @@ def post():
file = request.files["file"]
if file and file.filename == "":
file = None
rich_embed = request.form.get("richembed", None)
if rich_embed:
rich_embed = json.loads(rich_embed)
if "user_id" in session:
dbUser = redisqueue.get_guild_member(guild_id, session["user_id"])
else:
@ -322,7 +325,7 @@ def post():
chan = filter_guild_channel(guild_id, channel_id)
if not chan.get("write") or chan["channel"]["type"] != "text":
status_code = 401
elif file and not chan.get("attach_files"):
elif (file and not chan.get("attach_files")) or (rich_embed and not chan.get("embed_links")):
status_code = 406
elif not illegal_post:
userid = session["user_id"]
@ -354,10 +357,10 @@ def post():
username = username[:25]
username = username + "#" + str(session['discriminator'])
avatar = session['avatar']
message = discord_api.execute_webhook(webhook.get("id"), webhook.get("token"), username, avatar, content, file)
message = discord_api.execute_webhook(webhook.get("id"), webhook.get("token"), username, avatar, content, file, rich_embed)
delete_webhook_if_too_much(webhook)
else:
message = discord_api.create_message(channel_id, content, file)
message = discord_api.create_message(channel_id, content, file, rich_embed)
status_code = message['code']
db.session.commit()
response = jsonify(message=message.get('content', message), status=status, illegal_reasons=illegal_reasons)

View File

@ -233,6 +233,7 @@ def administrate_guild(guild_id):
"autorole_unauth": db_guild.autorole_unauth,
"autorole_discord": db_guild.autorole_discord,
"file_upload": db_guild.file_upload,
"send_rich_embed": db_guild.send_rich_embed,
}
return render_template("administrate_guild.html.j2", guild=dbguild_dict, members=users, permissions=permissions, cosmetics=cosmetics, disabled=(guild_id in list_disabled_guilds()))
@ -262,6 +263,7 @@ def update_administrate_guild(guild_id):
db_guild.autorole_unauth = request.form.get("autorole_unauth", db_guild.autorole_unauth, type=int)
db_guild.autorole_discord = request.form.get("autorole_discord", db_guild.autorole_discord, type=int)
db_guild.file_upload = request.form.get("file_upload", db_guild.file_upload) in ["true", True]
db_guild.send_rich_embed = request.form.get("send_rich_embed", db_guild.send_rich_embed) in ["true", True]
invite_link = request.form.get("invite_link", db_guild.invite_link)
if invite_link != None and invite_link.strip() == "":
@ -304,6 +306,7 @@ def update_administrate_guild(guild_id):
autorole_unauth=db_guild.autorole_unauth,
autorole_discord=db_guild.autorole_discord,
file_upload=db_guild.file_upload,
send_rich_embed=db_guild.send_rich_embed,
)
@user.route("/add-bot/<guild_id>")