From c45cd0fde85d8a78dc73f81e55cf523275432ca1 Mon Sep 17 00:00:00 2001 From: Aevann Date: Fri, 27 Jan 2023 14:24:39 +0200 Subject: [PATCH] make a UI for /admin/dm_images --- files/assets/css/main.css | 5 ++++ files/helpers/media.py | 7 +++-- files/routes/admin.py | 6 +++- files/routes/users.py | 4 +-- files/templates/admin/dm_images.html | 44 ++++++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 files/templates/admin/dm_images.html diff --git a/files/assets/css/main.css b/files/assets/css/main.css index e998bf903..bbe62e1ad 100644 --- a/files/assets/css/main.css +++ b/files/assets/css/main.css @@ -6673,3 +6673,8 @@ body { .modal, body, nav { padding-right: 0 !important; } + +.dm_img[alt^="![]("] { + width: 200px; + max-height: 100vh !important; +} diff --git a/files/helpers/media.py b/files/helpers/media.py index c97ba7b98..d2e71070a 100644 --- a/files/helpers/media.py +++ b/files/helpers/media.py @@ -229,7 +229,7 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in return filename -def process_dm_images(v): +def process_dm_images(v, user): if not request.files.get("file") or g.is_tor or not get_setting("dm_images"): return '' @@ -265,7 +265,8 @@ def process_dm_images(v): body += f'\n\n{url}\n\n' - with open(f"{LOG_DIRECTORY}/dm_images.log", "a+", encoding="utf-8") as f: - f.write(body.strip() + '\n') + if body: + with open(f"{LOG_DIRECTORY}/dm_images.log", "a+", encoding="utf-8") as f: + f.write(f'{body.strip()}, {v.username}, {v.id}, {user.username}, {user.id}\n') return body diff --git a/files/routes/admin.py b/files/routes/admin.py index 1345b99eb..56f7265f8 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -44,7 +44,11 @@ def loggedout_list(v): @admin_level_required(PERMS['VIEW_DM_IMAGES']) def dm_images(v): with open(f"{LOG_DIRECTORY}/dm_images.log", "r", encoding="utf-8") as f: - return f.read() + items=f.read().split("\n")[:-1] + + items = [x.split(", ") for x in items] + + return render_template("admin/dm_images.html", v=v, items=items) @app.get('/admin/edit_rules') @limiter.limit(DEFAULT_RATELIMIT, key_func=get_ID) diff --git a/files/routes/users.py b/files/routes/users.py index 6b3eb2773..62da1bba2 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -493,7 +493,7 @@ def message2(v:User, username:str): message = sanitize_raw_body(request.values.get("message"), False) - message += process_dm_images(v) + message += process_dm_images(v, user) if not message: abort(400, "Message is empty!") @@ -566,7 +566,7 @@ def messagereply(v:User): and hasattr(user, 'is_blocked') and user.is_blocked): abort(403, f"You're blocked by @{user.username}") - body += process_dm_images(v) + body += process_dm_images(v, user) body = body.strip() diff --git a/files/templates/admin/dm_images.html b/files/templates/admin/dm_images.html new file mode 100644 index 000000000..5f0dd767e --- /dev/null +++ b/files/templates/admin/dm_images.html @@ -0,0 +1,44 @@ +{% extends "default.html" %} +{% block pagetitle %}DM Imagtes{% endblock %} +{% block content %} +

DM Images

+
+ + + + + + + + + + + {% for item in items %} + + + + + + + {% endfor %} +
#ImageSenderSent To
{{loop.index}} + + ![]({{item[0]}}) + + + {% if item[1] != "Unknown" %} + + + @{{item[1]}} + + {% endif %} + + {% if item[1] != "Unknown" %} + + + @{{item[3]}} + + {% endif %} +
+
+{% endblock %}