mirror of
https://codeberg.org/rimu/pyfedi
synced 2025-02-03 00:31:25 -08:00
reduce storage usage by user banners
This commit is contained in:
parent
602c83699a
commit
639d920d05
5 changed files with 24 additions and 12 deletions
|
@ -374,7 +374,7 @@ def actor_json_to_model(activity_json, address, server):
|
||||||
if user.avatar_id:
|
if user.avatar_id:
|
||||||
make_image_sizes(user.avatar_id, 40, 250, 'users')
|
make_image_sizes(user.avatar_id, 40, 250, 'users')
|
||||||
if user.cover_id:
|
if user.cover_id:
|
||||||
make_image_sizes(user.cover_id, 700, 1600, 'users')
|
make_image_sizes(user.cover_id, 878, None, 'users')
|
||||||
return user
|
return user
|
||||||
elif activity_json['type'] == 'Group':
|
elif activity_json['type'] == 'Group':
|
||||||
if 'attributedTo' in activity_json: # lemmy and mbin
|
if 'attributedTo' in activity_json: # lemmy and mbin
|
||||||
|
|
|
@ -366,13 +366,14 @@ def save_banner_file(banner_file, directory='communities') -> File:
|
||||||
img_height = img.height
|
img_height = img.height
|
||||||
|
|
||||||
# save a second, smaller, version as a thumbnail
|
# save a second, smaller, version as a thumbnail
|
||||||
img.thumbnail((700, 500))
|
img.thumbnail((878, 500))
|
||||||
img.save(final_place_thumbnail, format="WebP", quality=93)
|
img.save(final_place_thumbnail, format="WebP", quality=93)
|
||||||
thumbnail_width = img.width
|
thumbnail_width = img.width
|
||||||
thumbnail_height = img.height
|
thumbnail_height = img.height
|
||||||
|
|
||||||
file = File(file_path=final_place, file_name=new_filename + file_ext, alt_text=f'{directory} banner',
|
file = File(file_path=final_place, file_name=new_filename + file_ext, alt_text=f'{directory} banner',
|
||||||
width=img_width, height=img_height, thumbnail_width=thumbnail_width, thumbnail_height=thumbnail_height)
|
width=img_width, height=img_height, thumbnail_path=final_place_thumbnail,
|
||||||
|
thumbnail_width=thumbnail_width, thumbnail_height=thumbnail_height)
|
||||||
db.session.add(file)
|
db.session.add(file)
|
||||||
return file
|
return file
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import os.path
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from math import log
|
from math import log
|
||||||
from random import randint
|
from random import randint
|
||||||
|
@ -248,10 +249,20 @@ def keyboard_shortcuts():
|
||||||
|
|
||||||
@bp.route('/test')
|
@bp.route('/test')
|
||||||
def test():
|
def test():
|
||||||
|
deleted = 0
|
||||||
|
for user in User.query.all():
|
||||||
|
if not user.is_local():
|
||||||
|
if user.cover_id:
|
||||||
|
file = user.cover
|
||||||
|
if file.file_path and file.thumbnail_path:
|
||||||
|
if os.path.exists(file.file_path):
|
||||||
|
os.unlink(file.file_path)
|
||||||
|
deleted += 1
|
||||||
|
file.file_path = ''
|
||||||
|
|
||||||
themes = theme_list()
|
db.session.commit()
|
||||||
|
|
||||||
return str(themes)
|
return str(deleted) + ' done'
|
||||||
|
|
||||||
return current_app.config['SERVER_NAME']
|
return current_app.config['SERVER_NAME']
|
||||||
|
|
||||||
|
|
|
@ -433,11 +433,11 @@ class User(UserMixin, db.Model):
|
||||||
|
|
||||||
def cover_image(self) -> str:
|
def cover_image(self) -> str:
|
||||||
if self.cover_id is not None:
|
if self.cover_id is not None:
|
||||||
if self.cover.file_path is not None:
|
if self.cover.thumbnail_path is not None:
|
||||||
if self.cover.file_path.startswith('app/'):
|
if self.cover.thumbnail_path.startswith('app/'):
|
||||||
return self.cover.file_path.replace('app/', '/')
|
return self.cover.thumbnail_path.replace('app/', '/')
|
||||||
else:
|
else:
|
||||||
return self.cover.file_path
|
return self.cover.thumbnail_path
|
||||||
if self.cover.source_url is not None:
|
if self.cover.source_url is not None:
|
||||||
if self.cover.source_url.startswith('app/'):
|
if self.cover.source_url.startswith('app/'):
|
||||||
return self.cover.source_url.replace('app/', '/')
|
return self.cover.source_url.replace('app/', '/')
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
{% if post.type == POST_TYPE_LINK and post.image_id and not (post.url and 'youtube.com' in post.url) %}
|
{% if post.type == POST_TYPE_LINK and post.image_id and not (post.url and 'youtube.com' in post.url) %}
|
||||||
<div class="url_thumbnail">
|
<div class="url_thumbnail">
|
||||||
<a href="{{ post.url }}" target="_blank" rel="nofollow ugc" class="post_link"><img src="{{ post.image.thumbnail_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
<a href="{{ post.url }}" target="_blank" rel="nofollow ugc" class="post_link"><img src="{{ post.image.thumbnail_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
||||||
width="{{ post.image.thumbnail_width }}" height="{{ post.image.thumbnail_height }}" /></a>
|
width="{{ post.image.thumbnail_width }}" height="{{ post.image.thumbnail_height }}" loading="lazy" /></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p>{% if post.reports and current_user.is_authenticated and post.community.is_moderator(current_user) %}
|
<p>{% if post.reports and current_user.is_authenticated and post.community.is_moderator(current_user) %}
|
||||||
|
@ -88,12 +88,12 @@
|
||||||
{% elif post.type == POST_TYPE_IMAGE %}
|
{% elif post.type == POST_TYPE_IMAGE %}
|
||||||
<div class="post_image">
|
<div class="post_image">
|
||||||
<a href="{{ post.image.view_url() }}" target="_blank" class="post_link" rel="nofollow ugc"><img src="{{ post.image.view_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
<a href="{{ post.image.view_url() }}" target="_blank" class="post_link" rel="nofollow ugc"><img src="{{ post.image.view_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
||||||
width="{{ post.image.width }}" height="{{ post.image.height }}" /></a>
|
width="{{ post.image.width }}" height="{{ post.image.height }}" loading="lazy" /></a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if post.image_id and not (post.url and 'youtube.com' in post.url) %}
|
{% if post.image_id and not (post.url and 'youtube.com' in post.url) %}
|
||||||
<a href="{{ post.image.view_url() }}" target="_blank" class="post_link" rel="nofollow ugc"><img src="{{ post.image.thumbnail_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
<a href="{{ post.image.view_url() }}" target="_blank" class="post_link" rel="nofollow ugc"><img src="{{ post.image.thumbnail_url() }}" alt="{{ post.image.alt_text if post.image.alt_text else post.title }}"
|
||||||
width="{{ post.image.thumbnail_width }}" height="{{ post.image.thumbnail_height }}" /></a>
|
width="{{ post.image.thumbnail_width }}" height="{{ post.image.thumbnail_height }}" loading="lazy" /></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="post_body">
|
<div class="post_body">
|
||||||
|
|
Loading…
Add table
Reference in a new issue