Update repository URL to Gitea and sync structural changes
This commit is contained in:
118
mod_basic.py
Normal file
118
mod_basic.py
Normal file
@@ -0,0 +1,118 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2023/02/25 7:29 PM
|
||||
# @Author : yommi
|
||||
# @Site :
|
||||
# @File : mod_basic
|
||||
# @Software: PyCharm
|
||||
# @Path : youtube-dl/mod_basic.py
|
||||
from support import SupportYaml
|
||||
from tool import ToolUtil
|
||||
|
||||
from .setup import *
|
||||
|
||||
# from .main import LogicMain
|
||||
from .my_youtube_dl import MyYoutubeDL, Status
|
||||
import platform
|
||||
import os
|
||||
from .model import ModelYoutubeDlItem
|
||||
from loguru import logger
|
||||
|
||||
|
||||
class ModuleBasic(PluginModuleBase):
|
||||
def __init__(self, P):
|
||||
super(ModuleBasic, self).__init__(
|
||||
P, name="basic", first_menu="setting", scheduler_desc="유튜브 다운로더"
|
||||
)
|
||||
self.db_default = {
|
||||
"db_version": "2",
|
||||
"youtube_dl_package": "1",
|
||||
"ffmpeg_path": ""
|
||||
if platform.system() != "Windows"
|
||||
else os.path.join("PATH_APP_ROOT", "bin", "Windows", "ffmpeg.exe"),
|
||||
"temp_path": os.path.join("{PATH_DATA}", "download_tmp"),
|
||||
"save_path": os.path.join("{PATH_DATA}", "download"),
|
||||
"default_filename": "",
|
||||
"proxy": "",
|
||||
}
|
||||
self.web_list_model = ModelYoutubeDlItem
|
||||
|
||||
def process_menu(self, sub, req):
|
||||
logger.debug(f"sub: {sub}")
|
||||
arg = P.ModelSetting.to_dict()
|
||||
logger.debug(f"arg:: {arg}")
|
||||
if sub == "setting":
|
||||
arg["is_include"] = F.scheduler.is_include(self.get_scheduler_name())
|
||||
arg["is_running"] = F.scheduler.is_running(self.get_scheduler_name())
|
||||
|
||||
elif sub == "download":
|
||||
default_filename = P.ModelSetting.get("default_filename")
|
||||
arg["filename"] = (
|
||||
default_filename
|
||||
if default_filename
|
||||
else ModuleBasic.get_default_filename()
|
||||
)
|
||||
arg["preset_list"] = ModuleBasic.get_preset_list()
|
||||
arg["postprocessor_list"] = ModuleBasic.get_postprocessor_list()
|
||||
|
||||
return render_template(f"{P.package_name}_{self.name}_{sub}.html", arg=arg)
|
||||
|
||||
def process_command(self, command, arg1, arg2, arg3, req):
|
||||
ret = {"ret": "success"}
|
||||
return jsonify(ret)
|
||||
|
||||
# def plugin_load(self):
|
||||
# if (
|
||||
# os.path.exists(
|
||||
# ToolUtil.make_path(P.ModelSetting.get(f"{self.name}_path_config"))
|
||||
# )
|
||||
# is False
|
||||
# ):
|
||||
# shutil.copyfile(
|
||||
# os.path.join(
|
||||
# os.path.dirname(__file__), "files", f"config_{self.name}.yaml"
|
||||
# ),
|
||||
# ToolUtil.make_path(P.ModelSetting.get(f"{self.name}_path_config")),
|
||||
# )
|
||||
|
||||
@staticmethod
|
||||
def get_default_filename():
|
||||
return MyYoutubeDL.DEFAULT_FILENAME
|
||||
|
||||
@staticmethod
|
||||
def get_preset_list():
|
||||
return [
|
||||
["bestvideo+bestaudio/best", "최고 화질"],
|
||||
["bestvideo[height<=1080]+bestaudio/best[height<=1080]", "1080p"],
|
||||
["worstvideo+worstaudio/worst", "최저 화질"],
|
||||
["bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]", "최고 화질(mp4)"],
|
||||
[
|
||||
"bestvideo[ext=mp4][height<=1080]+bestaudio[ext=m4a]/best[ext=mp4][height<=1080]",
|
||||
"1080p(mp4)",
|
||||
],
|
||||
["bestvideo[filesize<50M]+bestaudio/best[filesize<50M]", "50MB 미만"],
|
||||
["bestaudio/best", "오디오만"],
|
||||
["_custom", "사용자 정의"],
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def get_postprocessor_list():
|
||||
return [
|
||||
["", "후처리 안함", None],
|
||||
["mp4", "MP4", "비디오 변환"],
|
||||
["flv", "FLV", "비디오 변환"],
|
||||
["webm", "WebM", "비디오 변환"],
|
||||
["ogg", "Ogg", "비디오 변환"],
|
||||
["mkv", "MKV", "비디오 변환"],
|
||||
["ts", "TS", "비디오 변환"],
|
||||
["avi", "AVI", "비디오 변환"],
|
||||
["wmv", "WMV", "비디오 변환"],
|
||||
["mov", "MOV", "비디오 변환"],
|
||||
["gif", "GIF", "비디오 변환"],
|
||||
["mp3", "MP3", "오디오 추출"],
|
||||
["aac", "AAC", "오디오 추출"],
|
||||
["flac", "FLAC", "오디오 추출"],
|
||||
["m4a", "M4A", "오디오 추출"],
|
||||
["opus", "Opus", "오디오 추출"],
|
||||
["vorbis", "Vorbis", "오디오 추출"],
|
||||
["wav", "WAV", "오디오 추출"],
|
||||
]
|
||||
Reference in New Issue
Block a user