sane-bt-search: dedupe results

This commit is contained in:
Colin 2023-03-26 08:34:52 +00:00
parent 2aef1c30bd
commit 5bb31aa5da

View File

@ -20,7 +20,7 @@ ENDPOINTS = dict(
results="api/v2.0/indexers/all/results" results="api/v2.0/indexers/all/results"
) )
@dataclass(eq=True, order=True) @dataclass(eq=True, order=True, unsafe_hash=True)
class Torrent: class Torrent:
seeders: int seeders: int
pub_date: datetime pub_date: datetime
@ -64,12 +64,12 @@ class Client:
return resp.json() return resp.json()
def query(self, q: str) -> list: def query(self, q: str) -> list:
torrents = [] torrents = set()
api_res = self.api_call("results", dict(Query=q)) api_res = self.api_call("results", dict(Query=q))
for r in api_res["Results"]: for r in api_res["Results"]:
t = Torrent.from_dict(r) t = Torrent.from_dict(r)
if t is not None: if t is not None:
torrents.append(t) torrents.add(t)
return sorted(torrents, reverse=True) return sorted(torrents, reverse=True)