[GTK] Fix handling failed magnet prefetching in Add dialog
If a torrent already exists when trying to prefetch magnet metadata the exception is not handled and dialog does not update correctly.
This commit is contained in:
parent
2ca683e8fe
commit
b961e11df6
|
@ -268,6 +268,10 @@ class AddTorrentDialog(component.Component):
|
||||||
self.prefetching_magnets.remove(info_hash)
|
self.prefetching_magnets.remove(info_hash)
|
||||||
self._on_torrent_changed(self.listview_torrents.get_selection())
|
self._on_torrent_changed(self.listview_torrents.get_selection())
|
||||||
|
|
||||||
|
def _on_uri_metadata_fail(self, result, info_hash):
|
||||||
|
self.prefetching_magnets.remove(info_hash)
|
||||||
|
self._on_torrent_changed(self.listview_torrents.get_selection())
|
||||||
|
|
||||||
def prefetch_waiting_message(self, torrent_id, files):
|
def prefetch_waiting_message(self, torrent_id, files):
|
||||||
"""Show magnet files fetching or failed message above files list."""
|
"""Show magnet files fetching or failed message above files list."""
|
||||||
if torrent_id in self.prefetching_magnets:
|
if torrent_id in self.prefetching_magnets:
|
||||||
|
@ -306,10 +310,11 @@ class AddTorrentDialog(component.Component):
|
||||||
if files:
|
if files:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
self.prefetching_magnets.append(torrent_id)
|
||||||
|
self.prefetch_waiting_message(torrent_id, None)
|
||||||
d = client.core.prefetch_magnet_metadata(uri)
|
d = client.core.prefetch_magnet_metadata(uri)
|
||||||
d.addCallback(self._on_uri_metadata, uri)
|
d.addCallback(self._on_uri_metadata, uri)
|
||||||
self.prefetching_magnets.append(magnet['info_hash'])
|
d.addErrback(self._on_uri_metadata_fail, torrent_id)
|
||||||
self.prefetch_waiting_message(torrent_id, None)
|
|
||||||
|
|
||||||
if already_added:
|
if already_added:
|
||||||
self.show_already_added_dialog(already_added)
|
self.show_already_added_dialog(already_added)
|
||||||
|
@ -903,7 +908,7 @@ class AddTorrentDialog(component.Component):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif is_magnet(filename):
|
elif is_magnet(filename):
|
||||||
client.core.add_torrent_magnet(filename, options)
|
client.core.add_torrent_magnet(filename, options).addErrback(log.debug)
|
||||||
|
|
||||||
row = self.torrent_liststore.iter_next(row)
|
row = self.torrent_liststore.iter_next(row)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue