mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-17 15:22:10 +00:00
Threading att 1
This commit is contained in:
@@ -18,13 +18,14 @@ import re
|
|||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import uuid
|
import uuid
|
||||||
|
import threading
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from logging import handlers
|
from logging import handlers
|
||||||
from pathlib import Path, PurePath
|
from pathlib import Path, PurePath
|
||||||
from platform import uname
|
from platform import uname
|
||||||
from sys import platform
|
from sys import platform
|
||||||
from typing import List, Optional, TypedDict
|
from typing import List, Optional, TypedDict
|
||||||
|
from queue import Queue, Empty
|
||||||
# *==============Imported libraries
|
# *==============Imported libraries
|
||||||
import discord
|
import discord
|
||||||
import eyed3
|
import eyed3
|
||||||
@@ -2094,8 +2095,17 @@ async def krecimy_pornola(ctx):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
#TODO: wpakowac kondzia w wąteki odpalic asynchronicznie rownolegle z flaskiem do sterowania nim
|
#TODO: wpakowac kondzia w wąteki odpalic asynchronicznie rownolegle z flaskiem do sterowania nim
|
||||||
logger.info("Starting discord bot")
|
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
|
#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
|
||||||
@@ -199,7 +199,3 @@ if __name__ == "__main__":
|
|||||||
worker.start()
|
worker.start()
|
||||||
for worker in threads:
|
for worker in threads:
|
||||||
worker.join()
|
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
|
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ ENCODING = "utf-8"
|
|||||||
CHUNk = "_chunk.txt"
|
CHUNk = "_chunk.txt"
|
||||||
_sentinel = object()
|
_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):
|
def producer(out_q, control_q, filename):
|
||||||
with open(DATABASE_PATH + filename, "r+", encoding=ENCODING) as operated_file:
|
with open(DATABASE_PATH + filename, "r+", encoding=ENCODING) as operated_file:
|
||||||
lines = operated_file.readlines()
|
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
|
#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):
|
def consumer(in_q, control_q, doi):
|
||||||
sentinels = 0
|
sentinels = 0
|
||||||
while True:
|
while True:
|
||||||
|
|||||||
Reference in New Issue
Block a user