Merge pull request #247 from arabcoders/dev

Fix re-queuing existing item.
This commit is contained in:
Abdulmohsen 2025-04-02 01:51:46 +03:00 committed by GitHub
commit e79d182daa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -243,17 +243,21 @@ class DownloadQueue(metaclass=Singleton):
LOG.debug(f"Entry id '{entry.get('id')}' url '{entry.get('webpage_url')} - {entry.get('url')}'.") LOG.debug(f"Entry id '{entry.get('id')}' url '{entry.get('webpage_url')} - {entry.get('url')}'.")
if self.done.exists(key=entry["id"], url=str(entry.get("webpage_url") or entry.get("url"))): try:
item = self.done.get(key=entry["id"], url=entry.get("webpage_url") or entry["url"]) _item = self.done.get(key=entry.get("id"), url=entry.get("webpage_url") or entry.get("url"))
LOG.warning(f"Item '{item.info.id}' - '{item.info.title}' already downloaded. Removing from history.") if _item is not None:
await self.clear([item.info._id], remove_file=False) err_msg = f"Item '{_item.info.id}' - '{_item.info.title}' already exists. Removing from history."
LOG.warning(err_msg)
await self.clear([_item.info._id], remove_file=False)
except KeyError:
pass
try: try:
item = self.queue.get(key=str(entry.get("id")), url=str(entry.get("webpage_url") or entry.get("url"))) _item = self.queue.get(key=str(entry.get("id")), url=str(entry.get("webpage_url") or entry.get("url")))
if item is not None: if _item is not None:
err_message = f"Item ID '{item.info.id}' - '{item.info.title}' already in download queue." err_msg = f"Item ID '{_item.info.id}' - '{_item.info.title}' already in download queue."
LOG.info(err_message) LOG.info(err_msg)
return {"status": "error", "msg": err_message} return {"status": "error", "msg": err_msg}
except KeyError: except KeyError:
pass pass
@ -269,8 +273,7 @@ class DownloadQueue(metaclass=Singleton):
LOG.exception(e) LOG.exception(e)
return {"status": "error", "msg": str(e)} return {"status": "error", "msg": str(e)}
fields: tuple = ("uploader", "channel", "thumbnail") for field in ("uploader", "channel", "thumbnail"):
for field in fields:
if entry.get(field): if entry.get(field):
item.extras[field] = entry.get(field) item.extras[field] = entry.get(field)