Threading att 1

This commit is contained in:
2024-04-08 15:20:44 +02:00
parent 9061203aae
commit e93eef28b3
3 changed files with 18 additions and 8 deletions
+14 -4
View File
@@ -18,13 +18,14 @@ import re
import shutil
import sys
import uuid
import threading
from datetime import datetime
from logging import handlers
from pathlib import Path, PurePath
from platform import uname
from sys import platform
from typing import List, Optional, TypedDict
from queue import Queue, Empty
# *==============Imported libraries
import discord
import eyed3
@@ -2094,8 +2095,17 @@ async def krecimy_pornola(ctx):
if __name__ == "__main__":
#TODO: wpakowac kondzia w wąteki odpalic asynchronicznie rownolegle z flaskiem do sterowania nim
logger.info("Starting discord bot")
client.run(TOKEN)
threads = []
comm_q = Queue()
t_bot = threads.append(threading.Thread(target=client.run, args=(TOKEN,)))
for worker in threads:
worker.start()
for worker in threads:
worker.join()
#widok - generuje się 5 stron po 4 linki
# odśwież - zamienić na "dalej" - zaciąga kolejne 20 rezultatów
# odśwież - zamienić na "dalej" - zaciąga kolejne 20 rezultatów
# po wyslaniu czekamy na odbior i dodajemy UUID oraz nick poszukiwacza do queue ktora jest sprawdzana
# flask sobie chodzi i jak dostaje posta z wynikami to wyciaga z queue UUID i odpowiada że znalazła
# po samym wyszukaniu dajemy info że "Zaczynam szukać ale pare godzin to potrwa."
# OPCJONALNIE: Dosyłamy znalezione wyniki na bieżąco - wtedy wkładamy do queue dla UUID wyniki
-4
View File
@@ -199,7 +199,3 @@ if __name__ == "__main__":
worker.start()
for worker in threads:
worker.join()
#1. robi liste wyników i ją wyświetla - ale tylko tytuły niezależnych dzieł - jeśli jest coś w containerze to trza pogrupować
#2. Tworzy przyciski pozwalające sprawdzić czy jest dostępne - i jeśli jest zwraca link
#3. Jest też przycisk "more" - wyszukujemy po 100, wyświetlamy po 20. Po 100 jak jeszcze to dopiero odpytujemy crossref przyciski strzałek przesuwają po obecnej porcji danych
+4
View File
@@ -8,6 +8,9 @@ ENCODING = "utf-8"
CHUNk = "_chunk.txt"
_sentinel = object()
#TODO: Doisy wchodzą jako lista krotek (doi, False) - po znalezieniu zaznaczamy na True i potem już nie porównujemy
#TODO: lista krotek - jeśli wszystkie mają True dajemy terma
def producer(out_q, control_q, filename):
with open(DATABASE_PATH + filename, "r+", encoding=ENCODING) as operated_file:
lines = operated_file.readlines()
@@ -28,6 +31,7 @@ def producer(out_q, control_q, filename):
#IMPORTANT!!! ONLY ONE CONSUMER THREAD AS WE ARE NOT PUTTING SENTINELS BACK
#TODO: Change doi to tuple list and only put term when all doi are found => (doi, True)
def consumer(in_q, control_q, doi):
sentinels = 0
while True: