forked from MarseyWorld/MarseyWorld
parent
94e7457965
commit
5a106b9f90
|
@ -489,7 +489,9 @@ def edit_post(pid, v):
|
||||||
return redirect(p.permalink)
|
return redirect(p.permalink)
|
||||||
|
|
||||||
|
|
||||||
def thumbnail_thread(post):
|
def thumbnail_thread(pid):
|
||||||
|
|
||||||
|
db = db_session()
|
||||||
|
|
||||||
def expand_url(post_url, fragment_url):
|
def expand_url(post_url, fragment_url):
|
||||||
|
|
||||||
|
@ -505,6 +507,14 @@ def thumbnail_thread(post):
|
||||||
else:
|
else:
|
||||||
return f"{post_url}/{fragment_url}"
|
return f"{post_url}/{fragment_url}"
|
||||||
|
|
||||||
|
post = db.get(Submission, pid)
|
||||||
|
|
||||||
|
if not post or not post.url:
|
||||||
|
time.sleep(5)
|
||||||
|
post = db.get(Submission, pid)
|
||||||
|
|
||||||
|
if not post or not post.url: return
|
||||||
|
|
||||||
fetch_url = post.url
|
fetch_url = post.url
|
||||||
|
|
||||||
if fetch_url.startswith('/') and '\\' not in fetch_url:
|
if fetch_url.startswith('/') and '\\' not in fetch_url:
|
||||||
|
@ -512,10 +522,17 @@ def thumbnail_thread(post):
|
||||||
|
|
||||||
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36"}
|
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36"}
|
||||||
|
|
||||||
try: x=requests.get(fetch_url, headers=headers, timeout=5, proxies=proxies)
|
try:
|
||||||
except: return
|
x=requests.get(fetch_url, headers=headers, timeout=5, proxies=proxies)
|
||||||
|
except:
|
||||||
|
db.close()
|
||||||
|
return
|
||||||
|
|
||||||
|
if x.status_code != 200:
|
||||||
|
db.close()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
if x.status_code != 200: return
|
|
||||||
|
|
||||||
if x.headers.get("Content-Type","").startswith("text/html"):
|
if x.headers.get("Content-Type","").startswith("text/html"):
|
||||||
soup=BeautifulSoup(x.content, 'lxml')
|
soup=BeautifulSoup(x.content, 'lxml')
|
||||||
|
@ -576,16 +593,24 @@ def thumbnail_thread(post):
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
else: return
|
else:
|
||||||
|
db.close()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
elif x.headers.get("Content-Type","").startswith("image/"):
|
elif x.headers.get("Content-Type","").startswith("image/"):
|
||||||
image_req=x
|
image_req=x
|
||||||
image = PILimage.open(BytesIO(x.content))
|
image = PILimage.open(BytesIO(x.content))
|
||||||
|
|
||||||
else: return
|
else:
|
||||||
|
db.close()
|
||||||
|
return
|
||||||
|
|
||||||
size = len(image.fp.read())
|
size = len(image.fp.read())
|
||||||
if size > 8 * 1024 * 1024: return
|
if size > 8 * 1024 * 1024:
|
||||||
|
db.close()
|
||||||
|
return
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
||||||
|
|
||||||
|
@ -594,6 +619,9 @@ def thumbnail_thread(post):
|
||||||
file.write(chunk)
|
file.write(chunk)
|
||||||
|
|
||||||
post.thumburl = process_image(name, resize=100)
|
post.thumburl = process_image(name, resize=100)
|
||||||
|
db.add(post)
|
||||||
|
db.commit()
|
||||||
|
db.close()
|
||||||
stdout.flush()
|
stdout.flush()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -977,7 +1005,7 @@ def submit_post(v, sub=None):
|
||||||
abort(415)
|
abort(415)
|
||||||
|
|
||||||
if not post.thumburl and post.url:
|
if not post.thumburl and post.url:
|
||||||
gevent.spawn(thumbnail_thread, post)
|
gevent.spawn(thumbnail_thread, post.id)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue