diff --git a/info.yaml b/info.yaml index 2514107..4e455d8 100644 --- a/info.yaml +++ b/info.yaml @@ -1,5 +1,5 @@ title: "애니 다운로더" -version: "0.5.12" +version: "0.5.13" package_name: "anime_downloader" developer: "projectdx" description: "anime downloader" diff --git a/mod_ohli24.py b/mod_ohli24.py index c4c77c7..118d5fe 100644 --- a/mod_ohli24.py +++ b/mod_ohli24.py @@ -250,13 +250,27 @@ class LogicOhli24(AnimeModuleBase): res["browser_found"] = True res["browser_path"] = manual_path else: - # Snap 이슈를 피하기 위해 google-chrome을 우선순위로 둠 + # Snap 이슈를 피하기 위해 google-chrome을 최우선으로 둠 for cmd in ["google-chrome", "google-chrome-stable", "chromium", "chromium-browser"]: found = shutil.which(cmd) if found: - res["browser_found"] = True - res["browser_path"] = found - break + # Snap Wrapper인지 확인 (도커 우분투 전용) + is_snap_wrapper = False + if "chromium-browser" in cmd: + try: + # --version 실행 시 Snap 안내가 나오면 래퍼임 + v_out = sp.check_output([found, "--version"], stderr=sp.STDOUT, timeout=5).decode().lower() + if "snap" in v_out: + is_snap_wrapper = True + except: + is_snap_wrapper = True # 실행 안 되면 일단 문제 있는 것으로 간주 + + if not is_snap_wrapper: + res["browser_found"] = True + res["browser_path"] = found + break + else: + res["snap_error"] = True # 스냅 래퍼 발견 알림용 # OS 및 설치 가능 여부 확인 if res["os"] == "Linux": diff --git a/templates/anime_downloader_ohli24_setting.html b/templates/anime_downloader_ohli24_setting.html index 30d20fa..035c936 100644 --- a/templates/anime_downloader_ohli24_setting.html +++ b/templates/anime_downloader_ohli24_setting.html @@ -604,12 +604,17 @@ function runSystemCheck() { type: 'POST', success: function(ret) { if (ret.browser_found) { - $('#browser_status_badge').removeClass('badge-secondary badge-danger').addClass('badge-success').text('발견됨'); + $('#browser_status_badge').removeClass('badge-secondary badge-danger badge-warning').addClass('badge-success').text('발견됨'); $('#browser_path_display').text('경로: ' + ret.browser_path); $('#install_guide_section').hide(); } else { - $('#browser_status_badge').removeClass('badge-secondary badge-success').addClass('badge-danger').text('미설치'); - $('#browser_path_display').text(''); + if (ret.snap_error) { + $('#browser_status_badge').removeClass('badge-secondary badge-success badge-danger').addClass('badge-warning').text('스냅 오류'); + $('#browser_path_display').html('발견되었으나 Snap 버전입니다. 도커에서 작동하지 않습니다.'); + } else { + $('#browser_status_badge').removeClass('badge-secondary badge-success badge-warning').addClass('badge-danger').text('미설치'); + $('#browser_path_display').text(''); + } $('#install_guide_section').show(); $('#manual_install_cmd').val(ret.install_cmd); if (ret.can_install) {