diff --git a/README.md b/README.md index 0150508..290ef33 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,12 @@ ## πŸ“ λ³€κ²½ 이λ ₯ (Changelog) +### v0.7.1 (2026-01-11) +- **GDM 톡합 버그 μˆ˜μ • (Hotfix)**: + - **UI ν•„λ“œ λ§€ν•‘ μˆ˜μ •**: 큐 νŽ˜μ΄μ§€μ—μ„œ GDM μž‘μ—…μ˜ μƒνƒœ, μ§„ν–‰λ₯  등이 'undefined'둜 ν‘œμ‹œλ˜λ˜ ν•„λ“œλͺ… 뢈일치 문제 ν•΄κ²°. + - **μ‹€μ‹œκ°„ μ—…λ°μ΄νŠΈ(Socket) κ°•ν™”**: GDM μ „μš© μ†ŒμΌ“ 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ν•˜μ—¬, μˆ˜λ™ μƒˆλ‘œκ³ μΉ¨ 없이도 λ‹€μš΄λ‘œλ“œ μƒνƒœκ°€ μ‹€μ‹œκ°„μœΌλ‘œ λ°˜μ˜λ˜λ„λ‘ κ°œμ„ . + - **λͺ¨λ“  λͺ¨λ“ˆ 적용**: Linkkf뿐만 μ•„λ‹ˆλΌ AniLife, Ohli24 큐 νŽ˜μ΄μ§€μ—λ„ λ™μΌν•œ μˆ˜μ • 사항 반영. + ### v0.7.0 (2026-01-11) - **GDM(Gommi Downloader Manager) 톡합 고도화**: - **톡합 큐 νŽ˜μ΄μ§€**: λ§ν¬μ• λ‹ˆ, μ• λ‹ˆλΌμ΄ν”„, 였클리24의 큐 νŽ˜μ΄μ§€μ—μ„œ GDM μž‘μ—…μ„ μ‹€μ‹œκ°„μœΌλ‘œ 확인 및 쀑지/μ‚­μ œ κ°€λŠ₯ν•˜λ„λ‘ 톡합. diff --git a/info.yaml b/info.yaml index c7b9b3b..3d52142 100644 --- a/info.yaml +++ b/info.yaml @@ -1,5 +1,5 @@ title: "μ• λ‹ˆ λ‹€μš΄λ‘œλ”" -version: 0.7.0 +version: 0.7.1 package_name: "anime_downloader" developer: "projectdx" description: "anime downloader" diff --git a/mod_anilife.py b/mod_anilife.py index 84d0f50..256a655 100644 --- a/mod_anilife.py +++ b/mod_anilife.py @@ -315,17 +315,22 @@ class LogicAniLife(AnimeModuleBase): "entity_id": t_dict["id"], "url": t_dict["url"], "filename": t_dict["filename"] or t_dict["title"], - "ffmpeg_status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), - "ffmpeg_percent": t_dict["progress"], + "status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), + "percent": t_dict["progress"], "created_time": t_dict["created_time"], - "current_speed": t_dict["speed"], - "download_time": t_dict["eta"], + "current_speed": t_dict["speed"] or "0 B/s", + "download_time": t_dict["eta"] or "-", "status_str": status_str_map.get(t_dict["status"], "WAITING"), "idx": t_dict["id"], "callback_id": "anilife", "start_time": t_dict["start_time"] or t_dict["created_time"], - "percent": t_dict["progress"], "save_fullpath": t_dict["filepath"], + "duration_str": "GDM", + "current_pf_count": 0, + "duration": "-", + "current_duration": "-", + "current_bitrate": "-", + "max_pf_count": 0, "is_gdm": True } diff --git a/mod_linkkf.py b/mod_linkkf.py index 63483fe..186a74c 100644 --- a/mod_linkkf.py +++ b/mod_linkkf.py @@ -593,18 +593,23 @@ class LogicLinkkf(AnimeModuleBase): "entity_id": t_dict["id"], "url": t_dict["url"], "filename": t_dict["filename"] or t_dict["title"], - "ffmpeg_status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), - "ffmpeg_percent": t_dict["progress"], + "status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), + "percent": t_dict["progress"], "created_time": t_dict["created_time"], - "current_speed": t_dict["speed"], - "download_time": t_dict["eta"], + "current_speed": t_dict["speed"] or "0 B/s", + "download_time": t_dict["eta"] or "-", "status_str": status_str_map.get(t_dict["status"], "WAITING"), "idx": t_dict["id"], "callback_id": "linkkf", "start_time": t_dict["start_time"] or t_dict["created_time"], - "percent": t_dict["progress"], "save_fullpath": t_dict["filepath"], - "is_gdm": True # GDM μž‘μ—…μž„μ„ ν‘œμ‹œ (λ””λ²„κΉ…μš©) + "duration_str": "GDM", + "current_pf_count": 0, + "duration": "-", + "current_duration": "-", + "current_bitrate": "-", + "max_pf_count": 0, + "is_gdm": True } def plugin_callback(self, data): diff --git a/mod_ohli24.py b/mod_ohli24.py index 4ea7fa8..4cdd63b 100644 --- a/mod_ohli24.py +++ b/mod_ohli24.py @@ -1291,17 +1291,22 @@ class LogicOhli24(AnimeModuleBase): "entity_id": t_dict["id"], "url": t_dict["url"], "filename": t_dict["filename"] or t_dict["title"], - "ffmpeg_status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), - "ffmpeg_percent": t_dict["progress"], + "status_kor": status_kor_map.get(t_dict["status"], "μ•Œμˆ˜μ—†μŒ"), + "percent": t_dict["progress"], "created_time": t_dict["created_time"], - "current_speed": t_dict["speed"], - "download_time": t_dict["eta"], + "current_speed": t_dict["speed"] or "0 B/s", + "download_time": t_dict["eta"] or "-", "status_str": status_str_map.get(t_dict["status"], "WAITING"), "idx": t_dict["id"], "callback_id": "ohli24", "start_time": t_dict["start_time"] or t_dict["created_time"], - "percent": t_dict["progress"], "save_fullpath": t_dict["filepath"], + "duration_str": "GDM", + "current_pf_count": 0, + "duration": "-", + "current_duration": "-", + "current_bitrate": "-", + "max_pf_count": 0, "is_gdm": True } diff --git a/templates/anime_downloader_anilife_queue.html b/templates/anime_downloader_anilife_queue.html index f344411..20ad6e2 100644 --- a/templates/anime_downloader_anilife_queue.html +++ b/templates/anime_downloader_anilife_queue.html @@ -1,410 +1,381 @@ {% extends "base.html" %} {% block content %} - - + + -
-
- - - -
-
+ + +
+
+

λ‹€μš΄λ‘œλ“œ 큐

+
+ + +
+
μ‹€μ‹œκ°„ 동기화 ν™œμ„±ν™”λ¨ (3초 μ£ΌκΈ°)
+
+ +
+ + + + + + + + + + + + + +
IDXPluginμ‹œμž‘μ‹œκ°„νŒŒμΌλͺ…μƒνƒœμ§„ν–‰λ₯ κΈΈμ΄PFν˜„μž¬ μƒνƒœAction
- - -
- - - - +
+ {% endblock %} + diff --git a/templates/anime_downloader_linkkf_queue.html b/templates/anime_downloader_linkkf_queue.html index 2b0c17f..20ad6e2 100644 --- a/templates/anime_downloader_linkkf_queue.html +++ b/templates/anime_downloader_linkkf_queue.html @@ -150,6 +150,24 @@ $(document).ready(function(){ socket.on('last', function(data){ status_html(data); button_html(data); }); } + // GDM μ „μš© μ†ŒμΌ“ μΆ”κ°€ 핸듀링 (μ „μ—­ μ—…λ°μ΄νŠΈ μˆ˜μ‹ μš©) + var gdmSocket = null; + try { + gdmSocket = io.connect(socketUrl + '/gommi_downloader_manager'); + gdmSocket.on('status', function(data) { + // 이 λͺ¨λ“ˆκ³Ό κ΄€λ ¨λœ μž‘μ—…λ§Œ 처리 + if (data.caller_plugin === PACKAGE_NAME + '_' + MODULE_NAME) { + // GDM 데이터λ₯Ό 큐 ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ UI μ—…λ°μ΄νŠΈ + // μˆ˜λ™ μƒˆλ‘œκ³ μΉ¨ 없이 μ‹€μ‹œκ°„ λ°˜μ˜μ„ μœ„ν•΄ renderList 호좜 μ£ΌκΈ°λ₯Ό 짧게 ν•˜κ±°λ‚˜ 직접 UI κ°±μ‹  + silentFetchList(function(newList) { + renderList(newList); + }); + } + }); + } catch (e) { + console.error('GDM socket error:', e); + } + on_start(); refreshIntervalId = setInterval(autoRefreshList, 3000); }); diff --git a/templates/anime_downloader_ohli24_queue.html b/templates/anime_downloader_ohli24_queue.html index b9a257f..20ad6e2 100644 --- a/templates/anime_downloader_ohli24_queue.html +++ b/templates/anime_downloader_ohli24_queue.html @@ -3,451 +3,379 @@ + + +
+
+

λ‹€μš΄λ‘œλ“œ 큐

+
+ +
+
μ‹€μ‹œκ°„ 동기화 ν™œμ„±ν™”λ¨ (3초 μ£ΌκΈ°)
+
+ +
+ + + + + + + + + + + + + + + + +
IDXPluginμ‹œμž‘μ‹œκ°„νŒŒμΌλͺ…μƒνƒœμ§„ν–‰λ₯ κΈΈμ΄PFν˜„μž¬ μƒνƒœAction
- - - - +{% endblock %} -{% endblock %} \ No newline at end of file