Added db and web. Modified things. A lot.
This commit is contained in:
17
telemovris_web/Dockerfile
Normal file
17
telemovris_web/Dockerfile
Normal 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
80
telemovris_web/app.py
Normal 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()
|
||||
2
telemovris_web/requirements.txt
Normal file
2
telemovris_web/requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Flask==2.0.1
|
||||
mysql-connector-python==8.0.32
|
||||
Reference in New Issue
Block a user