forked from MarseyWorld/MarseyWorld
make sure all images with resize parameter are under 500KB
parent
49b12f220c
commit
2dcf6bcb0f
|
@ -154,36 +154,32 @@ def process_image(filename=None, resize=0, trim=False, uploader=None, patron=Fal
|
||||||
i.save(filename, format="WEBP", method=6, quality=88)
|
i.save(filename, format="WEBP", method=6, quality=88)
|
||||||
|
|
||||||
|
|
||||||
if resize in (300,400,1200):
|
if resize:
|
||||||
if os.stat(filename).st_size > MAX_IMAGE_SIZE_BANNER_RESIZED_KB * 1024:
|
if os.stat(filename).st_size > MAX_IMAGE_SIZE_BANNER_RESIZED_KB * 1024:
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
abort(413, f"Max size for banners, sidebars, and badges is {MAX_IMAGE_SIZE_BANNER_RESIZED_KB} KB")
|
abort(413, f"Max size for banners, sidebars, and badges is {MAX_IMAGE_SIZE_BANNER_RESIZED_KB} KB")
|
||||||
|
|
||||||
if resize == 1200:
|
if filename.startswith('files/assets/images/'):
|
||||||
path = f'files/assets/images/{SITE_NAME}/banners'
|
path = filename.rsplit('/', 1)[0]
|
||||||
elif resize == 400:
|
|
||||||
path = f'files/assets/images/{SITE_NAME}/sidebar'
|
|
||||||
else:
|
|
||||||
path = f'files/assets/images/badges'
|
|
||||||
|
|
||||||
hashes = {}
|
hashes = {}
|
||||||
|
|
||||||
for img in os.listdir(path):
|
for img in os.listdir(path):
|
||||||
if resize == 400 and img in ('256.webp','585.webp'): continue
|
if resize == 400 and img in ('256.webp','585.webp'): continue
|
||||||
img_path = f'{path}/{img}'
|
img_path = f'{path}/{img}'
|
||||||
if img_path == filename: continue
|
if img_path == filename: continue
|
||||||
img = Image.open(img_path)
|
img = Image.open(img_path)
|
||||||
i_hash = str(imagehash.phash(img))
|
i_hash = str(imagehash.phash(img))
|
||||||
|
if i_hash in hashes.keys():
|
||||||
|
print(hashes[i_hash], flush=True)
|
||||||
|
print(img_path, flush=True)
|
||||||
|
else: hashes[i_hash] = img_path
|
||||||
|
|
||||||
|
i = Image.open(filename)
|
||||||
|
i_hash = str(imagehash.phash(i))
|
||||||
if i_hash in hashes.keys():
|
if i_hash in hashes.keys():
|
||||||
print(hashes[i_hash], flush=True)
|
os.remove(filename)
|
||||||
print(img_path, flush=True)
|
abort(409, "Image already exists!")
|
||||||
else: hashes[i_hash] = img_path
|
|
||||||
|
|
||||||
i = Image.open(filename)
|
|
||||||
i_hash = str(imagehash.phash(i))
|
|
||||||
if i_hash in hashes.keys():
|
|
||||||
os.remove(filename)
|
|
||||||
abort(409, "Image already exists!")
|
|
||||||
|
|
||||||
db = db or g.db
|
db = db or g.db
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ if SITE not in ('pcmemes.net', 'watchpeopledie.tv'):
|
||||||
|
|
||||||
filename = f'/asset_submissions/hats/{name}.webp'
|
filename = f'/asset_submissions/hats/{name}.webp'
|
||||||
copyfile(highquality, filename)
|
copyfile(highquality, filename)
|
||||||
process_image(filename)
|
process_image(filename, resize=100)
|
||||||
|
|
||||||
hat = HatDef(name=name, author_id=author.id, description=description, price=price, submitter_id=v.id)
|
hat = HatDef(name=name, author_id=author.id, description=description, price=price, submitter_id=v.id)
|
||||||
g.db.add(hat)
|
g.db.add(hat)
|
||||||
|
@ -451,7 +451,7 @@ if SITE not in ('pcmemes.net', 'watchpeopledie.tv'):
|
||||||
|
|
||||||
filename = f"files/assets/images/hats/{name}.webp"
|
filename = f"files/assets/images/hats/{name}.webp"
|
||||||
copyfile(new_path, filename)
|
copyfile(new_path, filename)
|
||||||
process_image(filename)
|
process_image(filename, resize=100)
|
||||||
purge_files_in_cache([f"https://{SITE}/i/hats/{name}.webp", f"https://{SITE}/assets/images/hats/{name}.webp", f"https://{SITE}/asset_submissions/hats/original/{name}.{format}"])
|
purge_files_in_cache([f"https://{SITE}/i/hats/{name}.webp", f"https://{SITE}/assets/images/hats/{name}.webp", f"https://{SITE}/asset_submissions/hats/original/{name}.{format}"])
|
||||||
ma = ModAction(
|
ma = ModAction(
|
||||||
kind="update_hat",
|
kind="update_hat",
|
||||||
|
|
|
@ -480,7 +480,7 @@ def sub_banner(v, sub):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
bannerurl = process_image(name, patron=v.patron)
|
bannerurl = process_image(name, patron=v.patron, resize=1200)
|
||||||
|
|
||||||
if bannerurl:
|
if bannerurl:
|
||||||
if sub.bannerurl and '/images/' in sub.bannerurl:
|
if sub.bannerurl and '/images/' in sub.bannerurl:
|
||||||
|
@ -512,7 +512,7 @@ def sub_sidebar(v, sub):
|
||||||
file = request.files["sidebar"]
|
file = request.files["sidebar"]
|
||||||
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
sidebarurl = process_image(name, patron=v.patron)
|
sidebarurl = process_image(name, patron=v.patron, resize=400)
|
||||||
|
|
||||||
if sidebarurl:
|
if sidebarurl:
|
||||||
if sub.sidebarurl and '/images/' in sub.sidebarurl:
|
if sub.sidebarurl and '/images/' in sub.sidebarurl:
|
||||||
|
@ -544,7 +544,7 @@ def sub_marsey(v, sub):
|
||||||
file = request.files["marsey"]
|
file = request.files["marsey"]
|
||||||
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
marseyurl = process_image(name, patron=v.patron)
|
marseyurl = process_image(name, patron=v.patron, resize=200)
|
||||||
|
|
||||||
if marseyurl:
|
if marseyurl:
|
||||||
if sub.marseyurl and '/images/' in sub.marseyurl:
|
if sub.marseyurl and '/images/' in sub.marseyurl:
|
||||||
|
|
Loading…
Reference in New Issue