M melon/models/__init__.py => melon/models/__init__.py +0 -1
@@ 434,7 434,6 @@ def ensure_video(vid):
""",
(vid.server, vid.id, vid.url, vid.title, vid.description, vid.thumbnail, vid.channel[1], vid.channel[0]))
def add_videos(vids:list[Video]):
- # TODO deduplicate entries
conn = connect_to_db()
execute_sql(
conn,
M melon/servers/invidious/__init__.py => melon/servers/invidious/__init__.py +0 -1
@@ 297,7 297,6 @@ class Invidious(Server):
for src in video.find_all("source"):
try:
rel = src["src"]
- print(rel)
stream_url = f"{instance}{rel}"
results.append(Stream(stream_url, src["label"]))
except:
M melon/servers/utils.py => melon/servers/utils.py +5 -11
@@ 53,6 53,8 @@ class NewsWorkerPool:
tasks=[]
results=[]
def __init__(self, size, tasks):
+ self.results=[]
+ self.threads=[]
self.tasks = tasks
for i in range(size):
thread = threading.Thread(target=self.run, name=str(i))
@@ 61,23 63,16 @@ class NewsWorkerPool:
self.threads.append(thread)
def run(self):
name = threading.currentThread().getName()
- try:
- task = self.tasks.pop()
+ while self.tasks:
+ task = self.tasks.pop(0)
instance = task[0]
channel = task[1]
- print(f"{name} obtained task")
dts = instance.get_timeline(channel.id)
for entry in dts:
self.results.append(entry)
- self.run()
- except Exception as e:
- print(f"{name} done")
- print(e)
- return
def wait(self):
for thread in self.threads:
thread.join()
- print("all done")
def fetch_home_feed() -> list[Resource]:
subs = get_subscribed_channels()
@@ 97,11 92,10 @@ def fetch_home_feed() -> list[Resource]:
instance = get_server_instance(server)
channels = db[server["id"]]
tasks = tasks + [ (instance, channel) for channel in channels ]
- pool = NewsWorkerPool(10, tasks)
+ pool = NewsWorkerPool(6, tasks)
pool.wait()
feed = pool.results
feed.sort(key=lambda dts: dts[1])
- print("returning")
return feed
def group_by_date(dataset):
db = {}