From 511df8b006f3a92799c2c7cc3e7c3c9847df8ea6 Mon Sep 17 00:00:00 2001 From: Massimiliano Saguto Date: Tue, 16 Jul 2024 11:26:11 +0200 Subject: [PATCH] Primo Commit --- .gitignore | 4 ++ README.md | 24 +++++++++++ src/Config.py | 12 ++++++ src/Main.py | 90 ++++++++++++++++++++++++++++++++++++++++ src/database.db | Bin 0 -> 12288 bytes src/models/BotInfos.py | 48 +++++++++++++++++++++ src/models/RipDefs.py | 28 +++++++++++++ src/models/__init.__py | 0 src/requirements.txt | 9 ++++ src/tools/Mysql.py | 28 +++++++++++++ src/tools/Postgresql.py | 30 ++++++++++++++ src/tools/__init.__py | 0 12 files changed, 273 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 src/Config.py create mode 100644 src/Main.py create mode 100644 src/database.db create mode 100644 src/models/BotInfos.py create mode 100644 src/models/RipDefs.py create mode 100644 src/models/__init.__py create mode 100644 src/requirements.txt create mode 100644 src/tools/Mysql.py create mode 100644 src/tools/Postgresql.py create mode 100644 src/tools/__init.__py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..960f5ac --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +env/ +src/__pycache__/ +src/tools/__pycache__/ +src/models/__pycache__/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cb1cb1a --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +### PYTHON 2 +### sudo apt-get install python-dev libpq-dev +### virtualenv -p python env +### python -m pip install --upgrade pip +### pip install -r src/requirements.txt +### pip install 'SQLAlchemy < 1.4.0' + +### PYTHON 3 +### sudo apt-get install python3-pip python3-dev python3-venv python3-virtualenv libpq-dev +### python3 -m venv env +### python3 -m pip install --upgrade pip +### pip3 install wheel +### pip3 install -r src/requirements.txt +### pip3 install 'SQLAlchemy < 1.4.0' + +### VENV +### source env/bin/activate (LINUX/MAC) +### env\Scripts\activate.bat (WINDOWS) +### deactivate + +### cd src +### python3 +### from models.BotInfos import db +### db.create_all() \ No newline at end of file diff --git a/src/Config.py b/src/Config.py new file mode 100644 index 0000000..a1fc17c --- /dev/null +++ b/src/Config.py @@ -0,0 +1,12 @@ +import os + +from flask import Flask, request, Response, jsonify +from flask_sqlalchemy import SQLAlchemy + +app = Flask(__name__) + +#app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://qvpnplqo:qD18ZQamANmgkKGHAAUgzDRQqKXuAajC@tai.db.elephantsql.com/qvpnplqo' +app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://postgres:postgres@localhost:5432/postgres?options=-csearch_path%3Ddev' +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False + +basedir = os.path.abspath(os.path.dirname(__file__)) \ No newline at end of file diff --git a/src/Main.py b/src/Main.py new file mode 100644 index 0000000..139e091 --- /dev/null +++ b/src/Main.py @@ -0,0 +1,90 @@ +import logging + +from tools.Postgresql import Postgresql + +from models.RipDefs import * +from models.BotInfos import * + +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG) +logger = logging.getLogger(__name__) + +@app.route('/', methods=['GET', 'POST', 'PUT']) +def hello(): + return 'Hello, World!' + +@app.route('/', methods=['GET']) +def hello_name(name): + return "Hello {}!".format(name) + +@app.route('/bots', methods=['GET']) +def get_bots(): + return jsonify({'Bots': BotInfos.get_all_bots()}) + +@app.route('/bots/', methods=['GET']) +def get_bot_by_id(id): + return_value = BotInfos.get_bot(id) + + return jsonify(return_value) + +@app.route('/bots', methods=['POST']) +def add_bot(): + request_data = request.get_json() + + BotInfos.add_bot( + request_data["bot_name"], + request_data["bot_token"], + request_data["owner_name"], + request_data["owner_phone_number"] + ) + + response = Response("Bot aggiunto", 200, mimetype='application/json') + + return response + +@app.route('/rips', methods=['GET']) +def get_rips(): + return jsonify({'Rips': RipDefs.get_all_rips()}) + +@app.route('/rips/', methods=['GET']) +def get_rip_by_id(id): + return_value = RipDefs.get_rip(id) + + return jsonify(return_value) + +def main(): + try: + connection = None + + try: + connectionResponse = Postgresql.connect() + + connection = connectionResponse["connection"] + error = connectionResponse["error"] + + if error == None: + logger.debug("CONNESSO!!!") + + cursor = connection.cursor() + + sql = "SELECT id, bot_name, bot_token FROM botinfos where bot_name = 'SettoreSviluppoDevBot'" + + cursor.execute(sql) + + result = cursor.fetchone() + + logger.debug(result) + else: + logger.error(error) + finally: + if connection != None and error == None: + if cursor != None: + cursor.close() + connection.commit() + + connection.close() + except Exception as e: + logger.error("EXCEPTION!!! -> ERRORE: '" + str(e) + "'") + +if __name__ == '__main__': + main() + app.run(debug = True, host = "0.0.0.0", port = 5000) \ No newline at end of file diff --git a/src/database.db b/src/database.db new file mode 100644 index 0000000000000000000000000000000000000000..e07026ff023858514d2637dcc7a45d9acd75377d GIT binary patch literal 12288 zcmeI0TW{h<6vquo2}C9It*X>0uKJKf+f+05j4zE;)quH#TQDSC+6p;ff){KPUr5N? zYNdXMKK85hxl+GEze2x3#{^O~3*FaMH3P=x%sKx#=Xd-v)2NqC-(ZK1Yw14AGoLY$ z2=fEWG7Pgvt{rl%MwC44uKtjFWbJv|;~w+v`QJ%08%=6VDnWkepaduZN`Mle1SkPY zfD)htC;>{~e?#Ccitc@Wco_NR+}Cd=#*O0#p5c0{`%Xqvm8Qxzm2_EUS622Uxt}lx zY_Zx@^Qy*HYfZL#RW5%+%oE-7d%<*|lYQE?qGbw-cEVwN`t0EOI$7i2*kzn=T87s% z?JW~yvp+W0R(vPQ3H&W#Q`Z@q6QegBIli;SCoI_3E#tlEaH2=b+*ro_$gq2hVoA;) z@K`4Q0k5!%jV_m3v7%@lwxo906LWBy+&_KeM;2{+``k9u9y(#$7We4Owk@pe$>y%H z`w0@*TQGPxfmL6Z9=`<5}*Vq0ZM=p_{a#f6EWu1?a}eb zA-hXUxAj}YC7Ul!MvxN)0KQX{Tu#M)dJg$PCOa=^(uF&c#uxoowx{a1nqHJD`h#f& zUc2&&mw8SE9F!2i&3KIYdQF+A@*Kcek|a4)z3N{yUO#sFqg<~xZw!_G1e=|E&CR>@ z%5=~Nn^k|@i!pFbHOzNl%!oMR5f;fO6j!T`VpbKY|4=fBz21@?%;j$8qj95|8^Y!m z@m4IxoUVy4g|Q$bB!h);p|6c>u2vleqYk=6fz?XaD((Ag)F_XkRjhB$y7kGEu=PZ0 zq>c4CZ3;r@R&1(?(ysb5nA@<0bAKnYL+lmI0_2~Yx*03|>PPy&_;uP~ ERRORE: '" + str(e) + "'") + + return response diff --git a/src/tools/Postgresql.py b/src/tools/Postgresql.py new file mode 100644 index 0000000..5615f85 --- /dev/null +++ b/src/tools/Postgresql.py @@ -0,0 +1,30 @@ +import json +import logging + +import psycopg2 + +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG) +logger = logging.getLogger(__name__) + +class Postgresql(): + def connect(): + response = { + "connection": None, + "error": None + } + + try: + host = "tai.db.elephantsql.com" + dbname = "qvpnplqo" + user = "qvpnplqo" + password = "qD18ZQamANmgkKGHAAUgzDRQqKXuAajC" + sslmode = "require" + + conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode) + + response["connection"] = psycopg2.connect(conn_string) + except Exception as e: + response["error"] = str(e) + logger.error("EXCEPTION!!! -> ERRORE: '" + str(e) + "'") + + return response diff --git a/src/tools/__init.__py b/src/tools/__init.__py new file mode 100644 index 0000000..e69de29