]> code.delx.au - webdl/commitdiff
sbs: filter duplicates
authorJames Bunton <jamesbunton@delx.net.au>
Sun, 24 Feb 2019 00:04:32 +0000 (11:04 +1100)
committerJames Bunton <jamesbunton@delx.net.au>
Sun, 24 Feb 2019 00:04:32 +0000 (11:04 +1100)
sbs.py

diff --git a/sbs.py b/sbs.py
index dc353ca8cef351d41d159372773d92bafca9be4a..1d6324fade6bff512b8c06d2a7508df59ce8b833 100644 (file)
--- a/sbs.py
+++ b/sbs.py
@@ -77,17 +77,20 @@ class SbsRootNode(SbsNavNode):
 
     def load_all_video_entries(self):
         offset = 1
-        amount = 49
+        amount = 50
+        uniq = set()
         while True:
-            url = append_to_qs(FULL_VIDEO_LIST, {"range": "%s-%s" % (offset, offset+amount)})
+            url = append_to_qs(FULL_VIDEO_LIST, {"range": "%s-%s" % (offset, offset+amount-1)})
             data = grab_json(url)
             if "entries" not in data:
                 raise Exception("Missing data in SBS response", data)
             entries = data["entries"]
             if len(entries) == 0:
                 break
-            for entry in entries:
-                yield entry
+            for i, entry in enumerate(entries):
+                if entry["guid"] not in uniq:
+                    uniq.add(entry["guid"])
+                    yield entry
             offset += amount
             sys.stdout.write(".")
             sys.stdout.flush()