Blurhash implementation

main
Bob Mottram 2021-10-11 18:20:16 +01:00
parent 8bbdb0f9cf
commit dba0653388
1 changed files with 25 additions and 0 deletions

View File

@ -11,6 +11,7 @@ import os
import time import time
import datetime import datetime
import subprocess import subprocess
import random
from random import randint from random import randint
from hashlib import sha1 from hashlib import sha1
from auth import createPassword from auth import createPassword
@ -28,6 +29,29 @@ from shutil import move
from city import spoofGeolocation from city import spoofGeolocation
def _getBlurHash() -> str:
"""You may laugh, but this is a lot less computationally intensive,
especially on large images, while still providing some visual variety
in the timeline
"""
hashes = [
"UfGuaW01%gRi%MM{azofozo0V@xuozn#ofs.",
"UFD]o8-;9FIU~qD%j[%M-;j[ofWB?bt7IURj",
"UyO|v_1#im=s%y#U%OxDwRt3W9R-ogjHj[WX",
"U96vAQt6H;WBt7ofWBa#MbWBo#j[byaze-oe",
"UJKA.q01M|IV%LM|RjNGIVj[f6oLjrofaeof",
"U9MPjn]?~Cxut~.PS1%1xXIo0fEer_$*^jxG",
"UtLENXWCRjju~qayaeaz00j[ofayIVkCkCfQ",
"UHGbeg-pbzWZ.ANI$wsQ$H-;E9W?0Nx]?FjE",
"UcHU%#4n_ND%?bxatRWBIU%MazxtNaRjs:of",
"ULR:TsWr~6xZofWWf6s-~6oK9eR,oes-WXNJ",
"U77VQB-:MaMx%L%MogRkMwkCxuoIS*WYjEsl",
"U%Nm{8R+%MxuE1t6WBNG-=RjoIt6~Vj]RkR*",
"UCM7u;?boft7oft7ayj[~qt7WBoft7oft7Rj"
]
return random.choice(hashes)
def _replaceSiloDomain(postJsonObject: {}, def _replaceSiloDomain(postJsonObject: {},
siloDomain: str, replacementDomain: str, siloDomain: str, replacementDomain: str,
systemLanguage: str) -> None: systemLanguage: str) -> None:
@ -308,6 +332,7 @@ def attachMedia(baseDir: str, httpPrefix: str,
'url': httpPrefix + '://' + domain + '/' + mediaPath 'url': httpPrefix + '://' + domain + '/' + mediaPath
} }
if mediaType.startswith('image/'): if mediaType.startswith('image/'):
attachmentJson['blurhash'] = _getBlurHash()
# find the dimensions of the image and add them as metadata # find the dimensions of the image and add them as metadata
attachImageWidth, attachImageHeight = \ attachImageWidth, attachImageHeight = \
getImageDimensions(imageFilename) getImageDimensions(imageFilename)