mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-18 07:42:09 +00:00
Server to communicate
This commit is contained in:
@@ -43,6 +43,11 @@ import yt_dlp
|
|||||||
from spotify_dl import spotify
|
from spotify_dl import spotify
|
||||||
from spotify_dl import youtube as youtube_download
|
from spotify_dl import youtube as youtube_download
|
||||||
|
|
||||||
|
from flask import Flask, jsonify, request
|
||||||
|
from waitress import serve
|
||||||
|
|
||||||
|
|
||||||
|
COMM_Q = Queue()
|
||||||
Music_Config = TypedDict(
|
Music_Config = TypedDict(
|
||||||
"Music_Config",
|
"Music_Config",
|
||||||
{
|
{
|
||||||
@@ -51,6 +56,15 @@ Music_Config = TypedDict(
|
|||||||
"requester": List[str],
|
"requester": List[str],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
class QueryControl():
|
||||||
|
def __init__(self, query_author, query_uuid, query_content, uplogger) -> None:
|
||||||
|
self.author = query_author
|
||||||
|
self.uuid = query_uuid
|
||||||
|
self.content = query_content
|
||||||
|
self.logger = uplogger
|
||||||
|
self.logger.info(f"Created Query control for {self.author}, {self.uuid}: {self.content}")
|
||||||
|
self.replies = []
|
||||||
|
|
||||||
|
|
||||||
# *=========================================== Predefines
|
# *=========================================== Predefines
|
||||||
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
|
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
|
||||||
@@ -78,6 +92,8 @@ LIBRARIAN_SERVICE_ADDRESS = "http://192.168.1.192:5001"
|
|||||||
SEND_QUERY = "/query"
|
SEND_QUERY = "/query"
|
||||||
TIME_BETWEEN_CALLS = 100000
|
TIME_BETWEEN_CALLS = 100000
|
||||||
LAST_SPONTANEOUS_CALL = datetime.now()
|
LAST_SPONTANEOUS_CALL = datetime.now()
|
||||||
|
HOST_ADDRESS = "http://192.168.1.192"
|
||||||
|
PORT_ADDRESS = "5000"
|
||||||
|
|
||||||
# *=========================================== Platform Specific Predefines
|
# *=========================================== Platform Specific Predefines
|
||||||
|
|
||||||
@@ -266,9 +282,10 @@ logger.info("Done")
|
|||||||
logger.info("Creating discord bot")
|
logger.info("Creating discord bot")
|
||||||
client = commands.Bot(intents=intents, command_prefix="$")
|
client = commands.Bot(intents=intents, command_prefix="$")
|
||||||
logger.info("Done")
|
logger.info("Done")
|
||||||
|
logger.info("Creating flask app")
|
||||||
|
app = Flask(__name__)
|
||||||
|
logger.info("Done")
|
||||||
# *=========================================== Define Events
|
# *=========================================== Define Events
|
||||||
|
|
||||||
|
|
||||||
@client.event
|
@client.event
|
||||||
async def on_ready():
|
async def on_ready():
|
||||||
"""Metoda wywoływana przy połączeniu do serwera."""
|
"""Metoda wywoływana przy połączeniu do serwera."""
|
||||||
@@ -2089,6 +2106,34 @@ async def krecimy_pornola(ctx):
|
|||||||
else:
|
else:
|
||||||
ctx.reply("Jak ładnie szefa poprosisz.")
|
ctx.reply("Jak ładnie szefa poprosisz.")
|
||||||
|
|
||||||
|
@app.route("/", methods=["POST"])
|
||||||
|
def answer_external_command():
|
||||||
|
record = json.loads(request.data)
|
||||||
|
logger.info(record)
|
||||||
|
answer_data = None
|
||||||
|
if "UUID" in record and "QUERY" in record and "AUTHOR" in record:
|
||||||
|
answer_data = "Query logged"
|
||||||
|
|
||||||
|
return_data = (
|
||||||
|
jsonify(isError=False, message="Success", statusCode=200, data=answer_data),
|
||||||
|
200,
|
||||||
|
)
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
def flask_debug():
|
||||||
|
"""
|
||||||
|
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)
|
||||||
|
app.run(debug=True, use_reloader=False, host=HOST_ADDRESS, port=PORT_ADDRESS)
|
||||||
|
|
||||||
|
def waitress_run():
|
||||||
|
"""
|
||||||
|
The `waitress_run` function serves the `app` on host "0.0.0.0"
|
||||||
|
and port 5000 using the Waitress WSGI server.
|
||||||
|
"""
|
||||||
|
serve(app, host=HOST_ADDRESS, port=PORT_ADDRESS)
|
||||||
|
|
||||||
|
|
||||||
# *================================== Run
|
# *================================== Run
|
||||||
@@ -2096,8 +2141,7 @@ 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")
|
||||||
threads = []
|
threads = []
|
||||||
comm_q = Queue()
|
threads.append(threading.Thread(target=client.run, args=(TOKEN,)))
|
||||||
t_bot = threads.append(threading.Thread(target=client.run, args=(TOKEN,)))
|
|
||||||
for worker in threads:
|
for worker in threads:
|
||||||
worker.start()
|
worker.start()
|
||||||
for worker in threads:
|
for worker in threads:
|
||||||
|
|||||||
Reference in New Issue
Block a user