Extra debug for uploading images

main
bashrc 2026-05-07 13:26:36 +01:00
parent 236c7ca7f4
commit 689d4e94fe
3 changed files with 39 additions and 5 deletions

View File

@ -16,6 +16,7 @@ from utils import binary_is_image
from formats import get_image_extension_from_mime_type from formats import get_image_extension_from_mime_type
from data import save_binary from data import save_binary
from data import is_a_dir from data import is_a_dir
from data import is_a_file
def receive_image_attachment(self, length: int, path: str, base_dir: str, def receive_image_attachment(self, length: int, path: str, base_dir: str,
@ -73,8 +74,8 @@ def receive_image_attachment(self, length: int, path: str, base_dir: str,
'EX: receive_image_attachment unable to write ' + 'EX: receive_image_attachment unable to write ' +
media_filename) media_filename)
if debug: if debug:
if os.path.isfile(media_filename): if is_a_file(media_filename):
file_size = os.path.getsize(media_filename) file_size: int = os.path.getsize(media_filename)
print('DEBUG: image saved to ' + media_filename + ' ' + print('DEBUG: image saved to ' + media_filename + ' ' +
str(file_size) + ' bytes') str(file_size) + ' bytes')
else: else:

View File

@ -7,9 +7,11 @@ __email__ = "bob@libreserver.org"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Daemon POST" __module_group__ = "Daemon POST"
import os
import time import time
import copy import copy
import errno import errno
from shutil import copyfile
from socket import error as SocketError from socket import error as SocketError
from shares import add_share from shares import add_share
from languages import get_understood_languages from languages import get_understood_languages
@ -1894,22 +1896,53 @@ def _receive_new_post_process(self, post_type: str, path: str, headers: {},
if low_bandwidth: if low_bandwidth:
print('Converting to low bandwidth ' + filename) print('Converting to low bandwidth ' + filename)
convert_image_to_low_bandwidth(filename) convert_image_to_low_bandwidth(filename)
backup_filename = filename + '.backup'
copyfile(filename, backup_filename)
file_size_original: int = os.path.getsize(filename)
apply_watermark_to_image(base_dir, nickname, domain, apply_watermark_to_image(base_dir, nickname, domain,
filename, watermark_width_percent, filename, watermark_width_percent,
watermark_position, watermark_position,
watermark_opacity) watermark_opacity)
post_image_filename = filename.replace('.temp', '') file_size_watermark: int = os.path.getsize(filename)
if debug:
print('DEBUG: image size before watermark ' +
str(file_size_original) + ' and after ' +
str(file_size_watermark))
if file_size_watermark < file_size_original / 2:
print('WARN: watermark failed, restoring backup')
erase_file(filename,
'EX: failed to erase watermarked file ' +
filename)
move_file(backup_filename, filename)
post_image_filename: str = filename.replace('.temp', '')
print('Removing metadata from ' + post_image_filename) print('Removing metadata from ' + post_image_filename)
city = get_spoofed_city(city, base_dir, nickname, domain) city = get_spoofed_city(city, base_dir, nickname, domain)
process_meta_data(base_dir, nickname, domain, process_meta_data(base_dir, nickname, domain,
filename, post_image_filename, city, filename, post_image_filename, city,
content_license_url, exif_json, debug) content_license_url, exif_json, debug)
if is_a_file(post_image_filename): if is_a_file(post_image_filename):
print('POST media saved to ' + post_image_filename) file_size_meta_data: int = \
os.path.getsize(post_image_filename)
if debug:
print('DEBUG: image size before metadata removal ' +
str(file_size_original) + ' and after ' +
str(file_size_meta_data))
if file_size_meta_data < file_size_watermark / 2:
print('WARN: image metadata removal failed, ' +
'restoring backup')
erase_file(filename, 'EX: ' +
'failed to erase metadata processed image ' +
post_image_filename)
move_file(backup_filename, post_image_filename)
print('POST media saved to ' + post_image_filename +
' ' + str(file_size_meta_data) + ' bytes')
else: else:
exif_json = [] exif_json = []
print('ERROR: POST media could not be saved to ' + print('ERROR: POST media could not be saved to ' +
post_image_filename) post_image_filename)
erase_file(backup_filename,
'EX: failed to delete backup image ' +
backup_filename)
else: else:
if is_a_file(filename): if is_a_file(filename):
new_filename = filename.replace('.temp', '') new_filename = filename.replace('.temp', '')

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
journalctl -u epicyon | grep 'image binary\|favicon is not an image' > .image.txt journalctl -u epicyon | grep 'image binary\|favicon is not an image\|image size before\|watermark failed\|image metadata removal\|media saved to' > .image.txt
if [ ! -f .image.txt ]; then if [ ! -f .image.txt ]; then
echo 'No image warnings' echo 'No image warnings'
else else