Merge pull request #247 from arabcoders/dev
Fix re-queuing existing item.
This commit is contained in:
commit
e79d182daa
1 changed files with 14 additions and 11 deletions
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue