diff --git a/files/assets/js/core.js b/files/assets/js/core.js index 4f8c1d995..f2aceb96c 100644 --- a/files/assets/js/core.js +++ b/files/assets/js/core.js @@ -449,9 +449,42 @@ function insertText(input, text) { let oldfiles = {}; +const MAX_IMAGE_AUDIO_SIZE_MB = parseInt(document.getElementById("MAX_IMAGE_AUDIO_SIZE_MB").value) +const MAX_IMAGE_AUDIO_SIZE_MB_PATRON = parseInt(document.getElementById("MAX_IMAGE_AUDIO_SIZE_MB_PATRON").value) +const MAX_VIDEO_SIZE_MB = parseInt(document.getElementById("MAX_VIDEO_SIZE_MB").value) +const MAX_VIDEO_SIZE_MB_PATRON = parseInt(document.getElementById("MAX_VIDEO_SIZE_MB_PATRON").value) + +let patron +if (location.host == 'rdrama.net') patron = 'paypig' +else patron = 'patron' + function handle_files(input, newfiles) { if (!newfiles) return; + for (const file of newfiles) { + let max_size + let max_size_patron + let type + + if (file.type.startsWith('video/')) { + max_size = MAX_VIDEO_SIZE_MB + max_size_patron = MAX_VIDEO_SIZE_MB_PATRON + type = 'video' + } + else { + max_size = MAX_IMAGE_AUDIO_SIZE_MB + max_size_patron = MAX_IMAGE_AUDIO_SIZE_MB_PATRON + type = 'image/audio' + } + + if (file.size > max_size * 1024 * 1024) { + const msg = `Max ${type} size is ${max_size} MB (${max_size_patron} MB for ${patron}s)` + showToast(false, msg); + input.value = null; + return + } + } + const ta = input.parentElement.parentElement.parentElement.parentElement.querySelector('textarea.file-ta'); if (oldfiles[ta.id]) { diff --git a/files/helpers/config/const.py b/files/helpers/config/const.py index bfa9b385e..42748296a 100644 --- a/files/helpers/config/const.py +++ b/files/helpers/config/const.py @@ -829,6 +829,9 @@ elif SITE == 'watchpeopledie.tv': CHANGELOG_THREAD = 56363 ADMIGGER_THREADS = {SIDEBAR_THREAD, BANNER_THREAD, BADGE_THREAD, CHANGELOG_THREAD} + MAX_VIDEO_SIZE_MB = 500 + MAX_VIDEO_SIZE_MB_PATRON = 500 + TRUESCORE_CHAT_MINIMUM = 10 HOLE_NAME = 'flair' diff --git a/files/helpers/media.py b/files/helpers/media.py index 8d24589d0..8e4442198 100644 --- a/files/helpers/media.py +++ b/files/helpers/media.py @@ -136,11 +136,10 @@ def process_video(file, v): old = f'/videos/{time.time()}'.replace('.','') file.save(old) - if SITE_NAME != 'WPD': - size = os.stat(old).st_size - if size > MAX_VIDEO_SIZE_MB_PATRON * 1024 * 1024 or (not v.patron and size > MAX_VIDEO_SIZE_MB * 1024 * 1024): - os.remove(old) - abort(413, f"Max video size is {MAX_VIDEO_SIZE_MB} MB ({MAX_VIDEO_SIZE_MB_PATRON} MB for {patron}s)") + size = os.stat(old).st_size + if size > MAX_VIDEO_SIZE_MB_PATRON * 1024 * 1024 or (not v.patron and size > MAX_VIDEO_SIZE_MB * 1024 * 1024): + os.remove(old) + abort(413, f"Max video size is {MAX_VIDEO_SIZE_MB} MB ({MAX_VIDEO_SIZE_MB_PATRON} MB for {patron}s)") extension = guess_extension(file.content_type) if not extension: diff --git a/files/routes/jinja2.py b/files/routes/jinja2.py index 3f8e5fa34..e1db65cfa 100644 --- a/files/routes/jinja2.py +++ b/files/routes/jinja2.py @@ -126,5 +126,7 @@ def inject_constants(): "BIO_FRIENDS_ENEMIES_LENGTH_LIMIT":BIO_FRIENDS_ENEMIES_LENGTH_LIMIT, "IMMUNE_TO_AWARDS": IMMUNE_TO_AWARDS, "SITE_FULL_IMAGES": SITE_FULL_IMAGES, "IS_FISTMAS":IS_FISTMAS, "IS_HOMOWEEN":IS_HOMOWEEN, "IS_DKD":IS_DKD, "IS_EVENT":IS_EVENT, "IS_BIRTHGAY":IS_BIRTHGAY, - "CHUD_PHRASES":CHUD_PHRASES, "hasattr":hasattr, "calc_users":calc_users, "HOLE_INACTIVITY_DELETION":HOLE_INACTIVITY_DELETION - } + "CHUD_PHRASES":CHUD_PHRASES, "hasattr":hasattr, "calc_users":calc_users, "HOLE_INACTIVITY_DELETION":HOLE_INACTIVITY_DELETION, + "MAX_IMAGE_AUDIO_SIZE_MB":MAX_IMAGE_AUDIO_SIZE_MB, "MAX_IMAGE_AUDIO_SIZE_MB_PATRON":MAX_IMAGE_AUDIO_SIZE_MB_PATRON, + "MAX_VIDEO_SIZE_MB":MAX_VIDEO_SIZE_MB, "MAX_VIDEO_SIZE_MB_PATRON":MAX_VIDEO_SIZE_MB_PATRON, + } diff --git a/files/templates/root.html b/files/templates/root.html index de8ac96d5..7b79043bb 100644 --- a/files/templates/root.html +++ b/files/templates/root.html @@ -35,6 +35,14 @@ + + {% if v %} + + + + + {% endif %} + {% block body required %}{% endblock %} {{html_head.stylesheets_lower()}}