From 4c915ebdba802f3b86df1d4fc1779fbbcb28c9b1 Mon Sep 17 00:00:00 2001 From: Migatu Date: Tue, 9 Apr 2024 01:15:12 +0200 Subject: [PATCH] Test communication --- bot.py | 12 ++++++------ communication_subroutine.py | 29 ++++++++++++++--------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/bot.py b/bot.py index 1784ee1..cd51e34 100644 --- a/bot.py +++ b/bot.py @@ -46,7 +46,9 @@ from spotify_dl import youtube as youtube_download import communication_subroutine -COMM_Q = Queue() +OUT_COMM_Q = Queue() +IN_COMM_Q = Queue() + Music_Config = TypedDict( "Music_Config", { @@ -63,6 +65,7 @@ class QueryControl: self.uuid = query_uuid self.content = query_content self.logger = uplogger + self.stop = False self.logger.info( f"Created Query control for {self.author}, {self.uuid}: {self.content}" ) @@ -2131,10 +2134,7 @@ async def wyszukaj_linki_do_dokumentow(ctx): else: username = ctx.message.author.name query_object = QueryControl(username, query_uuid, query, logger) - - COMM_Q.put(query_object) - # TODO: tutaj jest informacja UUID o requescie zapisywana w queue i konczymy - # TODO: response'y idą do serwera, serwer sobie je mieli i potem wysyła do nas posta albo response + OUT_COMM_Q.put(query_object) await ctx.send(f"No dobra poszło. Zapamiętaj proszę {query_uuid} - to identyfikator twojego zapytania. Jesteś {queue_size} w kolejce."+ " Zapytania obsługuje algorytm zasilany czterema chomikami zapierdalającymi w kołowrotku - więc wyniki najwcześniej za kilka godzi - ale mogą być też dni.") @@ -2220,7 +2220,7 @@ if __name__ == "__main__": logger.info("Starting discord bot") threads = [] threads.append(threading.Thread(target=client.run, args=(TOKEN,))) - communication_subroutine.comm_subroutine() + communication_subroutine.comm_subroutine(OUT_COMM_Q) for worker in threads: worker.start() for worker in threads: diff --git a/communication_subroutine.py b/communication_subroutine.py index 9285988..9313305 100644 --- a/communication_subroutine.py +++ b/communication_subroutine.py @@ -1,5 +1,6 @@ import logging import threading +import json from flask import Flask, jsonify, request from waitress import serve @@ -9,20 +10,11 @@ HOST_ADDRESS = "192.168.1.191" PORT_ADDRESS = 5000 app = Flask(__name__) -@app.route("/mp3", methods=["GET"]) -def get_music_list(): - """ - The function `get_music_list` returns a JSON object containing a list of music files. - :return: A JSON response containing a key "music_file_list" with the value of the variable - `music_file_list`. - """ - return jsonify({"music_file_list": "MASTER_TIMEOUT"}) -@app.route("/conjurer", methods=["GET"]) +@app.route("/conjurer", methods=["POST"]) def answer_external_command(): - #record = json.loads(request.data) - #logger.info(record) - #answer_data = "TXT" + record = json.loads(request.data) + app.logger.info(record) #if "UUID" in record and "QUERY" in record and "AUTHOR" in record: # answer_data = "Query logged" #return_data = ( @@ -38,8 +30,8 @@ def flask_debug(_logger): The `flask_debug` function starts a Flask application in debug mode without using the reloader. Do not use for production for fucks sake. """ - # trunk-ignore(bandit/B201) _logger.info("Attempt debug") + # trunk-ignore(bandit/B201) app.run(debug=True, use_reloader=False, host=HOST_ADDRESS, port=PORT_ADDRESS) @@ -51,13 +43,20 @@ def waitress_run(_logger): _logger.info("Attempt waitress") serve(app, host=HOST_ADDRESS, port=PORT_ADDRESS) -def comm_subroutine(): +def scan_queue(comm_q): + while True: + data = comm_q.get() + print(data) + + +def comm_subroutine(comm_q): + queue = comm_q logger = logging.getLogger('conjurer_musician') logger.setLevel(logging.DEBUG) logger.info("Started") threads = [] threads.append(threading.Thread(target=waitress_run, args=(logger,))) - #threads.append(threading.Thread(target=flask_debug, logger)) + threads.append(threading.Thread(target=scan_queue, args=(queue,))) for worker in threads: worker.start()