Minor messaging changes

This commit is contained in:
arabcoders 2025-07-20 17:51:05 +03:00
parent ac2056f038
commit e07751c41f
3 changed files with 24 additions and 23 deletions

View file

@ -82,6 +82,7 @@
"rejecttitle", "rejecttitle",
"remux", "remux",
"rtime", "rtime",
"SIGUSR",
"smhd", "smhd",
"socketio", "socketio",
"timespec", "timespec",

View file

@ -261,7 +261,7 @@ class Download:
if isinstance(self.info_dict, dict) and len(self.info_dict.get("formats", [])) < 1: if isinstance(self.info_dict, dict) and len(self.info_dict.get("formats", [])) < 1:
msg = f"Failed to extract any formats for '{self.info.url}'." msg = f"Failed to extract any formats for '{self.info.url}'."
if filtered_logs := extract_ytdlp_logs(self.logs): if filtered_logs := extract_ytdlp_logs(self.logs):
msg += f" Logs: {', '.join(filtered_logs)}" msg += " " + ", ".join(filtered_logs)
raise ValueError(msg) # noqa: TRY301 raise ValueError(msg) # noqa: TRY301
@ -280,9 +280,9 @@ class Download:
def mark_cancelled(*_): def mark_cancelled(*_):
cls._interrupted = True cls._interrupted = True
cls.to_screen("[info] Interrupt received, exiting cleanly...") cls.to_screen("[info] Interrupt received, exiting cleanly...")
raise KeyboardInterrupt # noqa: TRY301 raise SystemExit(130) # noqa: TRY301
signal.signal(signal.SIGINT, mark_cancelled) signal.signal(signal.SIGUSR1, mark_cancelled)
if isinstance(self.info_dict, dict) and len(self.info_dict) > 1: if isinstance(self.info_dict, dict) and len(self.info_dict) > 1:
self.logger.debug(f"Downloading '{self.info.url}' using pre-info.") self.logger.debug(f"Downloading '{self.info.url}' using pre-info.")
@ -313,7 +313,9 @@ class Download:
except Exception as e: except Exception as e:
self.logger.error(f"Failed to delete cookie file: {cookie_file}. {e}") self.logger.error(f"Failed to delete cookie file: {cookie_file}. {e}")
self.logger.info(f'Task id="{self.info.id}" PID="{os.getpid()}" title="{self.info.title}" completed.') self.logger.info(
f'Task id="{self.info.id}" PID="{os.getpid()}" title="{self.info.title}" preset="{self.preset}" cookies="{bool(params.get("cookiefile"))}" completed.'
)
async def start(self): async def start(self):
self.status_queue = Config.get_manager().Queue() self.status_queue = Config.get_manager().Queue()

View file

@ -317,8 +317,7 @@ class DownloadQueue(metaclass=Singleton):
_status, _msg = ytdlp_reject(entry=etr, yt_params=yt_params) _status, _msg = ytdlp_reject(entry=etr, yt_params=yt_params)
if not _status: if not _status:
LOG.debug(_msg) return {"status": "error", "msg": _msg}
return {"status": "ok", "msg": _msg}
extras = { extras = {
"playlist": entry.get("title") or entry.get("id"), "playlist": entry.get("title") or entry.get("id"),
@ -366,7 +365,7 @@ class DownloadQueue(metaclass=Singleton):
if any("error" == res["status"] for res in results): if any("error" == res["status"] for res in results):
return { return {
"status": "error", "status": "error",
"msg": ", ".join(res["msg"] for res in results if res["status"] == "error" and "msg" in res), "msg": ", ".join(res["msg"] for res in results if "error" == res["status"] and "msg" in res),
} }
return {"status": "ok"} return {"status": "ok"}
@ -470,7 +469,7 @@ class DownloadQueue(metaclass=Singleton):
text_logs: str = "" text_logs: str = ""
if filtered_logs := extract_ytdlp_logs(logs): if filtered_logs := extract_ytdlp_logs(logs):
text_logs = ", ".join(filtered_logs) text_logs = " " + ", ".join(filtered_logs)
if "is_upcoming" == entry.get("live_status"): if "is_upcoming" == entry.get("live_status"):
nEvent = Events.ITEM_MOVED nEvent = Events.ITEM_MOVED
@ -690,13 +689,13 @@ class DownloadQueue(metaclass=Singleton):
if not item.requeued and (condition := Conditions.get_instance().match(info=entry)): if not item.requeued and (condition := Conditions.get_instance().match(info=entry)):
already.pop() already.pop()
LOG.info(f"Condition '{condition.name}' matched for '{item.url}'.") LOG.info(f"Matched '{condition.name}' for '{item.url}' Adding '{condition.cli}' to request.")
return await self.add(item=item.new_with(requeued=True, cli=condition.cli), already=already) return await self.add(item=item.new_with(requeued=True, cli=condition.cli), already=already)
_status, _msg = ytdlp_reject(entry=entry, yt_params=yt_conf) _status, _msg = ytdlp_reject(entry=entry, yt_params=yt_conf)
if not _status: if not _status:
LOG.debug(_msg) LOG.debug(_msg)
return {"status": "ok", "msg": _msg} return {"status": "error", "msg": _msg}
end_time = time.perf_counter() - started end_time = time.perf_counter() - started
LOG.debug(f"extract_info: for 'URL: {item.url}' is done in '{end_time:.3f}'. Length: '{len(entry)}/keys'.") LOG.debug(f"extract_info: for 'URL: {item.url}' is done in '{end_time:.3f}'. Length: '{len(entry)}/keys'.")
@ -1028,23 +1027,22 @@ class DownloadQueue(metaclass=Singleton):
""" """
Monitor pool for stale downloads and cancel them if needed. Monitor pool for stale downloads and cancel them if needed.
""" """
if self.is_paused(): if self.is_paused() or self.queue.empty():
return return
if not self.queue.empty(): LOG.debug("Checking for stale items in the download queue.")
LOG.debug("Checking for stale items in the download queue.") for _id, item in list(self.queue.items()):
for _id, item in list(self.queue.items()): item_ref = f"{_id=} {item.info.id=} {item.info.title=}"
item_ref = f"{_id=} {item.info.id=} {item.info.title=}" if not item.is_stale():
if not item.is_stale(): LOG.debug(f"Item '{item_ref}' is not stale.")
LOG.debug(f"Item '{item_ref}' is not stale.") continue
continue
try:
LOG.warning(f"Cancelling staled item '{item_ref}' from download queue.") LOG.warning(f"Cancelling staled item '{item_ref}' from download queue.")
try: await self.cancel([_id])
await self.cancel([_id]) except Exception as e:
except Exception as e: LOG.error(f"Failed to cancel staled item '{item_ref}'. {e!s}")
LOG.error(f"Failed to cancel staled item '{item_ref}'. {e!s}") LOG.exception(e)
LOG.exception(e)
async def _check_live(self): async def _check_live(self):
""" """