media/app/media.py
2025-06-24 11:45:33 +08:00

44 lines
1.2 KiB
Python

import os
from ahserver.webapp import webapp
from ahserver.filestorage import FileStorage
from ahserver.serverenv import ServerEnv
from appPublic.registerfunction import RegisterFunction
from appPublic.log import debug
from appPublic.worker import awaitify
from appbase.init import load_appbase
from rbac.init import load_rbac
from findperson.init import load_findperson
from ext import init_ui_ext
from loadmedia import save_media, load_media
from imageface import create_knownface
def runytdlp(cookie_webpath, url):
# we have a dl in ~/bin, and ~bin in PATH
fs = FileStorage()
cookiefile = fs.realPath(cookie_webpath)
cmd = f"""cd /d/ymq/media/dl; yt-dlp --cookies {cookiefile} --proxy socks5://127.0.0.1:1086 -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a] /best[ext=mp4]/best' "{url}" """
debug(f'execute:{cmd}')
os.system(cmd)
def get_module_dbname(mn):
return 'mediadb'
def init():
g = ServerEnv()
g.get_module_dbname = get_module_dbname
g.runytdlp = awaitify(runytdlp)
g.create_knownface = create_knownface
g.load_media = load_media
g.save_media = save_media
rf = RegisterFunction()
rf.register('get_module_dbname', get_module_dbname)
init_ui_ext()
load_appbase()
load_rbac()
load_findperson()
if __name__ == '__main__':
webapp(init)