forked from rDrama/rDrama
fix bugs
parent
42344cb76f
commit
3a4aa3f3af
|
@ -16,4 +16,4 @@ class Media(Base):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<Streamer(id={self.id})>"
|
return f"<Media(kind={self.kind}, filename={self.filename})>"
|
||||||
|
|
|
@ -11,6 +11,7 @@ import gevent
|
||||||
import imagehash
|
import imagehash
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from files.classes.media import *
|
from files.classes.media import *
|
||||||
|
from files.__main__ import db_session
|
||||||
|
|
||||||
def process_files():
|
def process_files():
|
||||||
body = ''
|
body = ''
|
||||||
|
@ -57,7 +58,7 @@ def process_audio(file):
|
||||||
return f'{SITE_FULL}{name}'
|
return f'{SITE_FULL}{name}'
|
||||||
|
|
||||||
|
|
||||||
def webm_to_mp4(old, new):
|
def webm_to_mp4(old, new, vid):
|
||||||
tmp = new.replace('.mp4', '-t.mp4')
|
tmp = new.replace('.mp4', '-t.mp4')
|
||||||
subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-i", old, "-map_metadata", "-1", tmp, "-threads:v", "1"], check=True, stderr=subprocess.STDOUT)
|
subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-i", old, "-map_metadata", "-1", tmp, "-threads:v", "1"], check=True, stderr=subprocess.STDOUT)
|
||||||
os.replace(tmp, new)
|
os.replace(tmp, new)
|
||||||
|
@ -65,6 +66,18 @@ def webm_to_mp4(old, new):
|
||||||
requests.post(f'https://api.cloudflare.com/client/v4/zones/{CF_ZONE}/purge_cache', headers=CF_HEADERS,
|
requests.post(f'https://api.cloudflare.com/client/v4/zones/{CF_ZONE}/purge_cache', headers=CF_HEADERS,
|
||||||
data=f'{{"files": ["{SITE_FULL}{new}"]}}', timeout=5)
|
data=f'{{"files": ["{SITE_FULL}{new}"]}}', timeout=5)
|
||||||
|
|
||||||
|
db = db_session()
|
||||||
|
media = Media(
|
||||||
|
kind='video',
|
||||||
|
filename=new.split('/')[-1],
|
||||||
|
user_id=vid,
|
||||||
|
size=os.stat(new).st_size
|
||||||
|
)
|
||||||
|
db.add(media)
|
||||||
|
db.commit()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
|
||||||
def process_video(file):
|
def process_video(file):
|
||||||
old = f'/videos/{time.time()}'.replace('.','')
|
old = f'/videos/{time.time()}'.replace('.','')
|
||||||
file.save(old)
|
file.save(old)
|
||||||
|
@ -82,18 +95,18 @@ def process_video(file):
|
||||||
if extension == 'webm':
|
if extension == 'webm':
|
||||||
new = new.replace('.webm', '.mp4')
|
new = new.replace('.webm', '.mp4')
|
||||||
copyfile(old, new)
|
copyfile(old, new)
|
||||||
gevent.spawn(webm_to_mp4, old, new)
|
gevent.spawn(webm_to_mp4, old, new, g.v.id)
|
||||||
else:
|
else:
|
||||||
subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-i", old, "-map_metadata", "-1", "-c:v", "copy", "-c:a", "copy", new], check=True)
|
subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-i", old, "-map_metadata", "-1", "-c:v", "copy", "-c:a", "copy", new], check=True)
|
||||||
os.remove(old)
|
os.remove(old)
|
||||||
|
|
||||||
media = Media(
|
media = Media(
|
||||||
kind='video',
|
kind='video',
|
||||||
filename=new.split('/')[-1],
|
filename=new.split('/')[-1],
|
||||||
user_id=g.v.id,
|
user_id=g.v.id,
|
||||||
size=os.stat(new).st_size
|
size=os.stat(new).st_size
|
||||||
)
|
)
|
||||||
g.db.add(media)
|
g.db.add(media)
|
||||||
|
|
||||||
return f'{SITE_FULL}{new}'
|
return f'{SITE_FULL}{new}'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue