Revert transmission to check torrent lists by name rather than object (#46190)

pull/46351/head
J.P. Hutchins 2021-02-10 11:53:31 -08:00 committed by GitHub
parent 884df40951
commit 67ab86443e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 22 deletions

View File

@ -397,42 +397,49 @@ class TransmissionData:
def check_completed_torrent(self):
"""Get completed torrent functionality."""
old_completed_torrent_names = {
torrent.name for torrent in self._completed_torrents
}
current_completed_torrents = [
torrent for torrent in self._torrents if torrent.status == "seeding"
]
freshly_completed_torrents = set(current_completed_torrents).difference(
self._completed_torrents
)
self._completed_torrents = current_completed_torrents
for torrent in freshly_completed_torrents:
self.hass.bus.fire(
EVENT_DOWNLOADED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
for torrent in current_completed_torrents:
if torrent.name not in old_completed_torrent_names:
self.hass.bus.fire(
EVENT_DOWNLOADED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
self._completed_torrents = current_completed_torrents
def check_started_torrent(self):
"""Get started torrent functionality."""
old_started_torrent_names = {torrent.name for torrent in self._started_torrents}
current_started_torrents = [
torrent for torrent in self._torrents if torrent.status == "downloading"
]
freshly_started_torrents = set(current_started_torrents).difference(
self._started_torrents
)
self._started_torrents = current_started_torrents
for torrent in freshly_started_torrents:
self.hass.bus.fire(
EVENT_STARTED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
for torrent in current_started_torrents:
if torrent.name not in old_started_torrent_names:
self.hass.bus.fire(
EVENT_STARTED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
self._started_torrents = current_started_torrents
def check_removed_torrent(self):
"""Get removed torrent functionality."""
freshly_removed_torrents = set(self._all_torrents).difference(self._torrents)
self._all_torrents = self._torrents
for torrent in freshly_removed_torrents:
self.hass.bus.fire(
EVENT_REMOVED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
current_torrent_names = {torrent.name for torrent in self._torrents}
for torrent in self._all_torrents:
if torrent.name not in current_torrent_names:
self.hass.bus.fire(
EVENT_REMOVED_TORRENT, {"name": torrent.name, "id": torrent.id}
)
self._all_torrents = self._torrents.copy()
def start_torrents(self):
"""Start all torrents."""