refactor: Implement cdndania downloader with asyncio, type hints, and subprocess log streaming
This commit is contained in:
@@ -20,11 +20,25 @@
|
||||
background-image: radial-gradient(circle at top right, #1e293b 0%, transparent 60%), radial-gradient(circle at bottom left, #1e293b 0%, transparent 60%);
|
||||
color: var(--text-color);
|
||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
overflow: hidden; /* 외부 스크롤 방지 - 흔들림 해결 */
|
||||
}
|
||||
|
||||
/* Container & Typography */
|
||||
.container-fluid {
|
||||
padding: 40px;
|
||||
padding: 8px; /* 최소 여백 */
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.container-fluid {
|
||||
padding: 4px; /* 모바일 더 작은 여백 */
|
||||
}
|
||||
.tab-pane {
|
||||
padding: 8px;
|
||||
}
|
||||
.dashboard-card {
|
||||
margin-top: 8px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
@@ -93,6 +107,9 @@
|
||||
width: 100%;
|
||||
box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.5);
|
||||
resize: none; /* Disable manual resize */
|
||||
overscroll-behavior: contain; /* 스크롤 체인 방지 */
|
||||
transform: translateZ(0); /* GPU 가속화 */
|
||||
will-change: scroll-position;
|
||||
}
|
||||
|
||||
textarea#log:focus, textarea#add:focus {
|
||||
|
||||
@@ -26,10 +26,11 @@
|
||||
{{ macros.setting_input_text('ohli24_download_path', '저장 폴더', value=arg['ohli24_download_path'], desc='정상적으로 다운 완료 된 파일이 이동할 폴더 입니다. ') }}
|
||||
{{ macros.setting_input_int('ohli24_max_ffmpeg_process_count', '동시 다운로드 수', value=arg['ohli24_max_ffmpeg_process_count'], desc='동시에 다운로드 할 에피소드 갯수입니다.') }}
|
||||
{{ macros.setting_input_text('ohli24_proxy_url', 'Proxy URL', value=arg.get('ohli24_proxy_url', ''), desc=['프록시 서버 URL (예: http://192.168.0.2:3138)', '비어있으면 사용 안 함']) }}
|
||||
{{ macros.setting_select('ohli24_download_method', '다운로드 방법', [['ffmpeg', 'ffmpeg (기본)'], ['ytdlp', 'yt-dlp'], ['aria2c', 'aria2c (yt-dlp)']], value=arg.get('ohli24_download_method', 'ffmpeg'), desc='m3u8 다운로드에 사용할 도구를 선택합니다.') }}
|
||||
{{ macros.setting_input_text('ohli24_discord_webhook_url', 'Discord Webhook URL', value=arg.get('ohli24_discord_webhook_url', ''), desc=['디스코드 알림을 받을 웹후크 주소입니다.', '다운로드 시작 시 알림을 보냅니다.']) }}
|
||||
{{ macros.setting_select('ohli24_download_method', '다운로드 방법', [['cdndania', 'cdndania (최적화, 기본)'], ['ffmpeg', 'ffmpeg'], ['ytdlp', 'yt-dlp'], ['aria2c', 'aria2c (yt-dlp)']], value=arg.get('ohli24_download_method', 'cdndania'), desc='m3u8 다운로드에 사용할 도구를 선택합니다.') }}
|
||||
|
||||
<div id="ohli24_download_threads_div">
|
||||
{{ macros.setting_select('ohli24_download_threads', '다운로드 속도', [['1', '1배속 (1개)'], ['2', '2배속 (2개)'], ['4', '4배속 (4개)'], ['8', '8배속 (8개)'], ['16', '16배속 (16개 MAX)']], value=arg.get('ohli24_download_threads', '16'), desc='yt-dlp/aria2c 모드에서 사용할 병렬 다운로드 스레드 수입니다.') }}
|
||||
{{ macros.setting_select('ohli24_download_threads', '다운로드 속도', [['1', '1배속 (1개, 안정)'], ['2', '2배속 (2개, 권장)'], ['4', '4배속 (4개)'], ['8', '8배속 (8개)'], ['16', '16배속 (16개, 불안정)']], value=arg.get('ohli24_download_threads', '2'), desc='cdndania/yt-dlp/aria2c 모드에서 사용할 동시 다운로드 수입니다. CDN 차단 시 1-2개 권장.') }}
|
||||
</div>
|
||||
{{ macros.setting_checkbox('ohli24_order_desc', '요청 화면 최신순 정렬', value=arg['ohli24_order_desc'], desc='On : 최신화부터, Off : 1화부터') }}
|
||||
{{ macros.setting_checkbox('ohli24_auto_make_folder', '제목 폴더 생성', value=arg['ohli24_auto_make_folder'], desc='제목으로 폴더를 생성하고 폴더 안에 다운로드합니다.') }}
|
||||
@@ -290,7 +291,7 @@ $('#ani365_auto_make_folder').change(function() {
|
||||
|
||||
function toggle_download_threads() {
|
||||
var method = $('#ohli24_download_method').val();
|
||||
if (method == 'ytdlp' || method == 'aria2c') {
|
||||
if (method == 'cdndania' || method == 'ytdlp' || method == 'aria2c') {
|
||||
$('#ohli24_download_threads_div').slideDown();
|
||||
} else {
|
||||
$('#ohli24_download_threads_div').slideUp();
|
||||
|
||||
Reference in New Issue
Block a user