[AutoAdd|3295] Correctly fix auto-adding magnets

Properly fix adding magnets, first attempted in previous commit 2e466101fc

add_torrent_magnet does not return a deferred so wrap in maybeDeferred.

Fixed broken test due to new deluge website icon
This commit is contained in:
Calum Lind 2021-07-24 10:14:47 +01:00
commit 5374d237a7
2 changed files with 9 additions and 2 deletions

View file

@ -21,7 +21,9 @@ import shutil
from base64 import b64encode from base64 import b64encode
from twisted.internet import reactor from twisted.internet import reactor
from twisted.internet.defer import maybeDeferred
from twisted.internet.task import LoopingCall, deferLater from twisted.internet.task import LoopingCall, deferLater
from twisted.python.failure import Failure
import deluge.component as component import deluge.component as component
import deluge.configmanager import deluge.configmanager
@ -325,6 +327,9 @@ class Core(CorePluginBase):
os.remove(filepath) os.remove(filepath)
def fail_torrent_add(err_msg, filepath, magnet): def fail_torrent_add(err_msg, filepath, magnet):
if isinstance(err_msg, Failure):
err_msg = err_msg.getErrorMessage()
# torrent handle is invalid and so is the magnet link # torrent handle is invalid and so is the magnet link
log.error( log.error(
'Cannot Autoadd %s: %s: %s', 'Cannot Autoadd %s: %s: %s',
@ -337,8 +342,10 @@ class Core(CorePluginBase):
try: try:
# The torrent looks good, so lets add it to the session. # The torrent looks good, so lets add it to the session.
if magnet: if magnet:
d = component.get('Core').add_torrent_magnet( d = maybeDeferred(
filedump.strip(), options component.get('Core').add_torrent_magnet,
filedump.strip(),
options,
) )
else: else:
d = component.get('Core').add_torrent_file_async( d = component.get('Core').add_torrent_file_async(

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After