diff --git a/bot.py b/bot.py index c3ddd03..10d05e3 100644 --- a/bot.py +++ b/bot.py @@ -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 \ No newline at end of file +# 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 \ No newline at end of file diff --git a/conjurer_librarian/conjurer_librarian.py b/conjurer_librarian/conjurer_librarian.py index b1b627a..0e38b52 100644 --- a/conjurer_librarian/conjurer_librarian.py +++ b/conjurer_librarian/conjurer_librarian.py @@ -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 diff --git a/conjurer_librarian/search_bot.py b/conjurer_librarian/search_bot.py index 9fc9fad..1a46a56 100644 --- a/conjurer_librarian/search_bot.py +++ b/conjurer_librarian/search_bot.py @@ -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: