Reinforce zendriver startup for Synology Docker (extended timeouts and logging)
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
title: "애니 다운로더"
|
title: "애니 다운로더"
|
||||||
version: 0.7.10
|
version: 0.7.11
|
||||||
package_name: "anime_downloader"
|
package_name: "anime_downloader"
|
||||||
developer: "projectdx"
|
developer: "projectdx"
|
||||||
description: "anime downloader"
|
description: "anime downloader"
|
||||||
|
|||||||
@@ -17,20 +17,28 @@ from http.server import HTTPServer, BaseHTTPRequestHandler
|
|||||||
from threading import Thread, Lock
|
from threading import Thread, Lock
|
||||||
from typing import Any, Optional, Dict, List, Type, cast
|
from typing import Any, Optional, Dict, List, Type, cast
|
||||||
import zendriver as zd
|
import zendriver as zd
|
||||||
|
import datetime # Added for datetime.now()
|
||||||
|
import logging # Added for logging setup
|
||||||
|
|
||||||
# 터미널 및 파일로 로그 출력 설정
|
# 터미널 및 파일로 로그 출력 설정
|
||||||
LOG_FILE: str = "/tmp/zendriver_daemon.log"
|
LOG_FILE: str = "/tmp/zendriver_daemon.log"
|
||||||
|
|
||||||
def log_debug(msg: str) -> None:
|
# 로그 설정
|
||||||
"""타임스탬프와 함께 로그 출력 및 파일 저장"""
|
def log_debug(msg):
|
||||||
timestamp: str = time.strftime("%Y-%m-%d %H:%M:%S")
|
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
formatted_msg: str = f"[{timestamp}] {msg}"
|
log_msg = f"[{timestamp}] {msg}"
|
||||||
print(formatted_msg, file=sys.stderr)
|
print(log_msg)
|
||||||
try:
|
|
||||||
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
||||||
f.write(formatted_msg + "\n")
|
f.write(log_msg + "\n")
|
||||||
except Exception:
|
|
||||||
pass
|
# Zendriver 내부 로그 연동
|
||||||
|
class ZendriverLogHandler(logging.Handler):
|
||||||
|
def emit(self, record):
|
||||||
|
log_debug(f"[ZendriverLib] {record.levelname}: {record.getMessage()}")
|
||||||
|
|
||||||
|
zd_logger = logging.getLogger("zendriver")
|
||||||
|
zd_logger.setLevel(logging.DEBUG)
|
||||||
|
zd_logger.addHandler(ZendriverLogHandler())
|
||||||
|
|
||||||
DAEMON_PORT: int = 19876
|
DAEMON_PORT: int = 19876
|
||||||
browser: Optional[Any] = None
|
browser: Optional[Any] = None
|
||||||
@@ -190,18 +198,15 @@ async def ensure_browser() -> Any:
|
|||||||
import platform
|
import platform
|
||||||
uid = os.getuid() if hasattr(os, 'getuid') else 'win'
|
uid = os.getuid() if hasattr(os, 'getuid') else 'win'
|
||||||
|
|
||||||
log_debug(f"[ZendriverDaemon] Environment: Python {sys.version.split()[0]} on {platform.system()}")
|
log_debug(f"[ZendriverDaemon] Environment: Python {sys.version.split()[0]} on {platform.system()} (UID: {uid})")
|
||||||
|
|
||||||
browser_args = [
|
browser_args = [
|
||||||
"--no-sandbox",
|
"--no-sandbox",
|
||||||
"--disable-setuid-sandbox",
|
"--disable-setuid-sandbox",
|
||||||
"--disable-dev-shm-usage",
|
"--disable-dev-shm-usage",
|
||||||
"--disable-gpu",
|
"--disable-gpu",
|
||||||
"--no-first-run",
|
"--disable-software-rasterizer",
|
||||||
"--no-service-autorun",
|
"--remote-allow-origins=*",
|
||||||
"--password-store=basic",
|
|
||||||
"--mute-audio",
|
|
||||||
"--disable-notifications",
|
|
||||||
"--disable-background-networking",
|
"--disable-background-networking",
|
||||||
"--disable-background-timer-throttling",
|
"--disable-background-timer-throttling",
|
||||||
"--disable-backgrounding-occluded-windows",
|
"--disable-backgrounding-occluded-windows",
|
||||||
@@ -236,12 +241,15 @@ async def ensure_browser() -> Any:
|
|||||||
try:
|
try:
|
||||||
log_debug(f"[ZendriverDaemon] Trying browser at: {exec_path}")
|
log_debug(f"[ZendriverDaemon] Trying browser at: {exec_path}")
|
||||||
start_time_init = time.time()
|
start_time_init = time.time()
|
||||||
|
log_debug(f"[ZendriverDaemon] Launching browser: {exec_path} (Sandbox: False, Timeout: 1.0s, Tries: 30)")
|
||||||
browser = await zd.start(
|
browser = await zd.start(
|
||||||
headless=True,
|
headless=True,
|
||||||
browser_executable_path=exec_path,
|
browser_executable_path=exec_path,
|
||||||
sandbox=False,
|
sandbox=False,
|
||||||
user_data_dir=user_data_dir,
|
user_data_dir=user_data_dir,
|
||||||
browser_args=browser_args
|
browser_args=browser_args,
|
||||||
|
browser_connection_timeout=1.0,
|
||||||
|
browser_connection_max_tries=30
|
||||||
)
|
)
|
||||||
log_debug(f"[ZendriverDaemon] Browser started successfully in {time.time() - start_time_init:.2f}s using: {exec_path}")
|
log_debug(f"[ZendriverDaemon] Browser started successfully in {time.time() - start_time_init:.2f}s using: {exec_path}")
|
||||||
return browser
|
return browser
|
||||||
|
|||||||
Reference in New Issue
Block a user