Added db and web. Modified things. A lot.

This commit is contained in:
Joan
2023-07-25 23:06:52 +02:00
parent e7d6e733ca
commit b575930118
8 changed files with 228 additions and 29 deletions

17
telemovris_web/Dockerfile Normal file
View File

@@ -0,0 +1,17 @@
FROM python:3.9
RUN mkdir /app
ADD requirements.txt /app
RUN pip install -r /app/requirements.txt
ADD *.py /app/
WORKDIR /app
ENV FLASK_APP app.py
ENV FLASK_ENV development
ENV FLASK_RUN_PORT 8000
ENV FLASK_RUN_HOST 0.0.0.0
EXPOSE 8000
CMD ["flask", "run"]

80
telemovris_web/app.py Normal file
View File

@@ -0,0 +1,80 @@
import os
from flask import Flask, request
import mysql.connector
import logging
import json
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO
)
logger = logging.getLogger(__name__)
def connect_db():
db = mysql.connector.connect(
host = os.environ.get("MYSQL_HOST"),
user = os.environ.get("MYSQL_USER"),
password = os.environ.get("MYSQL_PASSWORD"),
database = os.environ.get("MYSQL_DATABASE")
)
return db
def populate_db():
con = connect_db()
cur = con.cursor(prepared=True)
cur.execute('CREATE TABLE IF NOT EXISTS messages (id INT AUTO_INCREMENT PRIMARY KEY, user VARCHAR(255), message VARCHAR(255), audio BOOLEAN, processed BOOLEAN)')
con.commit()
con.close()
def query_messages():
con = connect_db()
cur = con.cursor(prepared=True)
cur.execute('SELECT id, user, message, audio FROM messages WHERE processed IS false LIMIT 1')
ret = cur.fetchall()
con.close()
return ret
def insert_message(user, message, audio):
con = connect_db()
cur = con.cursor(prepared=True)
params = (user, message, audio)
cur.execute('INSERT INTO messages (user, message, audio, processed) VALUES (%s, %s, %s, 0)', params)
con.commit()
con.close()
def update_message(id):
con = connect_db()
cur = con.cursor(prepared=True)
cur.execute(f'UPDATE messages SET processed = true WHERE id = {id}')
con.commit()
con.close()
server = Flask(__name__)
@server.route('/getmessage')
def getmessage():
rec = query_messages()
try:
update_message(rec[0][0])
return json.dumps(rec[0])
except Exception as e:
logging.info(f"Error: {e}")
return ''
@server.route('/sendmessage', methods=['GET'])
def sendmessage():
user = request.args.get('user')
message = request.args.get('message')
audio = request.args.get('audio')
try:
insert_message(user, message, audio)
return f"Inserted {user} - {message} - {audio}"
except Exception as e:
logging.info(f"Error: {e}")
return ''
if __name__ == '__main__':
server.run()

View File

@@ -0,0 +1,2 @@
Flask==2.0.1
mysql-connector-python==8.0.32