Customizable msg posting timeout and msg length

This commit is contained in:
Jeremy Zhang
2018-03-25 04:43:39 +00:00
parent 18f25d0852
commit e8424a63c8
11 changed files with 116 additions and 5 deletions

View File

@ -178,6 +178,8 @@ def administrate_guild(guild_id):
"icon": db_guild.icon,
"invite_link": db_guild.invite_link if db_guild.invite_link != None else "",
"guest_icon": db_guild.guest_icon if db_guild.guest_icon != None else "",
"post_timeout": db_guild.post_timeout,
"max_message_length": db_guild.max_message_length,
}
return render_template("administrate_guild.html.j2", guild=dbguild_dict, members=users, permissions=permissions, cosmetics=cosmetics)
@ -192,6 +194,8 @@ def update_administrate_guild(guild_id):
db_guild.bracket_links = request.form.get("bracket_links", db_guild.bracket_links) in ["true", True]
db_guild.mentions_limit = request.form.get("mentions_limit", db_guild.mentions_limit)
db_guild.unauth_captcha = request.form.get("unauth_captcha", db_guild.unauth_captcha) in ["true", True]
db_guild.post_timeout = request.form.get("post_timeout", db_guild.post_timeout)
db_guild.max_message_length = request.form.get("max_message_length", db_guild.max_message_length)
invite_link = request.form.get("invite_link", db_guild.invite_link)
if invite_link != None and invite_link.strip() == "":
invite_link = None
@ -212,6 +216,8 @@ def update_administrate_guild(guild_id):
invite_link=db_guild.invite_link,
guest_icon=db_guild.guest_icon,
unauth_captcha=db_guild.unauth_captcha,
post_timeout=db_guild.post_timeout,
max_message_length=db_guild.max_message_length,
)
@admin.route("/guilds")

View File

@ -38,6 +38,11 @@ def format_post_content(guild_id, channel_id, message, dbUser):
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
max_len = get_post_content_max_len(guild_id)
if len(message) > max_len:
illegal_post = True
illegal_reasons.append("Exceeded the following message length: {} characters".format(max_len))
links = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', message)
if not dbguild.chat_links and len(links) > 0:
illegal_post = True
@ -244,10 +249,35 @@ def fetch_visitor():
response.status_code = status_code
return response
def get_guild_specific_post_limit():
guild_id = request.form.get("guild_id", None)
try:
guild_id = int(guild_id)
except:
guild_id = None
seconds = 5
if guild_id:
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
if dbguild:
seconds = dbguild.post_timeout
return "1 per {} second".format(seconds)
def get_post_content_max_len(guild_id):
try:
guild_id = int(guild_id)
except:
guild_id = None
length = 350
if guild_id:
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
if dbguild:
length = dbguild.max_message_length
return length
@api.route("/post", methods=["POST"])
@valid_session_required(api=True)
@abort_if_guild_disabled()
@rate_limiter.limit("1 per 5 second", key_func = channel_ratelimit_key)
@rate_limiter.limit(get_guild_specific_post_limit, key_func = channel_ratelimit_key)
def post():
guild_id = request.form.get("guild_id")
channel_id = request.form.get('channel_id')

View File

@ -70,6 +70,7 @@ def guild_embed(guild_id):
"icon": guild.icon,
"invite_link": guild.invite_link,
"invite_domain": parse_url_domain(guild.invite_link),
"post_timeout": guild.post_timeout,
}
customcss = get_custom_css()
return render_template("embed.html.j2",

View File

@ -215,6 +215,8 @@ def administrate_guild(guild_id):
"icon": db_guild.icon,
"invite_link": db_guild.invite_link if db_guild.invite_link != None else "",
"guest_icon": db_guild.guest_icon if db_guild.guest_icon != None else "",
"post_timeout": db_guild.post_timeout,
"max_message_length": db_guild.max_message_length,
}
return render_template("administrate_guild.html.j2", guild=dbguild_dict, members=users, permissions=permissions, cosmetics=cosmetics, disabled=(guild_id in list_disabled_guilds()))
@ -237,6 +239,8 @@ def update_administrate_guild(guild_id):
db_guild.bracket_links = request.form.get("bracket_links", db_guild.bracket_links) in ["true", True]
db_guild.mentions_limit = request.form.get("mentions_limit", db_guild.mentions_limit)
db_guild.unauth_captcha = request.form.get("unauth_captcha", db_guild.unauth_captcha) in ["true", True]
db_guild.post_timeout = request.form.get("post_timeout", db_guild.post_timeout)
db_guild.max_message_length = request.form.get("max_message_length", db_guild.max_message_length)
invite_link = request.form.get("invite_link", db_guild.invite_link)
if invite_link != None and invite_link.strip() == "":
@ -260,6 +264,8 @@ def update_administrate_guild(guild_id):
invite_link=db_guild.invite_link,
guest_icon=guest_icon,
unauth_captcha=db_guild.unauth_captcha,
post_timeout=db_guild.post_timeout,
max_message_length=db_guild.max_message_length,
)
@user.route("/add-bot/<guild_id>")