diff --git a/internal/torrent/latestState.go b/internal/torrent/latestState.go index b425a4f..0098e01 100644 --- a/internal/torrent/latestState.go +++ b/internal/torrent/latestState.go @@ -4,13 +4,14 @@ type LibraryState struct { TotalCount int ActiveCount int FirstActiveTorrentId string + FirstTorrentId string } func (ls *LibraryState) Eq(a LibraryState) bool { - if ls.TotalCount == 0 || ls.FirstActiveTorrentId == "" { + if ls.TotalCount == 0 || ls.FirstActiveTorrentId == "" || ls.FirstTorrentId == "" { return false } - if a.TotalCount != ls.TotalCount || a.ActiveCount != ls.ActiveCount || a.FirstActiveTorrentId != ls.FirstActiveTorrentId { + if a.TotalCount != ls.TotalCount || a.ActiveCount != ls.ActiveCount || a.FirstActiveTorrentId != ls.FirstActiveTorrentId || a.FirstTorrentId != ls.FirstTorrentId { return false } return true @@ -20,20 +21,30 @@ func (t *TorrentManager) setNewLatestState(checksum LibraryState) { t.latestState.ActiveCount = checksum.ActiveCount t.latestState.TotalCount = checksum.TotalCount t.latestState.FirstActiveTorrentId = checksum.FirstActiveTorrentId + t.latestState.FirstTorrentId = checksum.FirstTorrentId } // generates a checksum based on the number of torrents, the first torrent id and the number of active torrents func (t *TorrentManager) getCurrentState() LibraryState { var state LibraryState - activeTorrents, totalCount, err := t.Api.GetTorrents(1, true) + activeTorrents, _, err := t.Api.GetTorrents(1, true) + if err != nil { + t.log.Errorf("Checksum API Error (GetActiveTorrents): %v", err) + return LibraryState{} + } + if len(activeTorrents) > 0 { + state.FirstActiveTorrentId = activeTorrents[0].ID + } + + torrents, totalCount, err := t.Api.GetTorrents(1, true) if err != nil { t.log.Errorf("Checksum API Error (GetTorrents): %v", err) return LibraryState{} } state.TotalCount = totalCount - if len(activeTorrents) > 0 { - state.FirstActiveTorrentId = activeTorrents[0].ID + if len(torrents) > 0 { + state.FirstTorrentId = torrents[0].ID } count, err := t.Api.GetActiveTorrentCount()