Merge pull request #30 from ThomasRubini/dotenv

This commit is contained in:
Thomas Rubini 2023-01-13 12:02:53 +01:00 committed by GitHub
commit 4a889aa559
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 42 additions and 50 deletions

10
.env.dist Normal file
View File

@ -0,0 +1,10 @@
# Common
FLASK_SECRET=""
DISCORD_BOT_TOKEN=""
# Database
DB_HOST=""
DB_PORT=3306
DB_USER=""
DB_PASSWORD=""
DB_DBNAME=""

View File

@ -16,5 +16,12 @@ jobs:
pip install -r dev-requirements.txt
- name: Run tests
env:
FLASK_SECRET: ${{SECRETS.FLASK_SECRET}}
DB_HOST: ${{SECRETS.DB_HOST}}
DB_PORT: ${{SECRETS.DB_PORT}}
DB_USER: ${{SECRETS.DB_USER}}
DB_PASSWORD: ${{SECRETS.DB_PASSWORD}}
DB_DBNAME: ${{SECRETS.DB_DBNAME}}
run: |
python -m pytest --verbose

4
.gitignore vendored
View File

@ -1,4 +1,4 @@
**/__pycache__
instance/
data_persistance/secret.py
**/.vscode
**/.vscode
.env

4
app.py
View File

@ -1,3 +1,7 @@
# Load .env file
from dotenv import load_dotenv
load_dotenv()
from truthseeker import APP as app # the variable 'app' is detected by `flask run`
if __name__ == "__main__":

View File

@ -4,3 +4,5 @@ Flask-SocketIO==5.3.2
SQLAlchemy==1.4.20
pymysql==1.0.2
discord.py==2.1.0
discord.py==2.1.0
python-dotenv==0.21.0

View File

@ -18,13 +18,13 @@ class TruthSeekerApp(flask.Flask):
super().__init__("truthseeker")
self.games_list = {}
self.set_app_secret()
self.config["SECRET_KEY"] = os.getenv("FLASK_SECRET")
self.socketio_app = SocketIO(self)
self.discord_bot = discord_bot.DiscordBot()
token = self.get_discord_bot_token()
token = os.getenv("DISCORD_BOT_TOKEN")
if token:
pass
self.discord_bot.start(token)
@ -34,35 +34,6 @@ class TruthSeekerApp(flask.Flask):
def run_app(self):
self.socketio_app.run(self)
def set_app_secret(self) -> None:
"""
Set the secret used by flask
"""
if os.path.isfile("instance/secret.txt"):
f = open("instance/secret.txt", "r")
self.config["SECRET_KEY"] = f.read()
f.close()
print("Read secret from secret.txt !")
else:
import secrets
self.config["SECRET_KEY"] = secrets.token_hex()
os.makedirs("instance", exist_ok=True)
f = open("instance/secret.txt", "w")
f.write(self.config["SECRET_KEY"])
f.close()
print("Generated secret and wrote to secret.txt !")
def get_discord_bot_token(self) -> str:
"""
Get the token used by the discord bot
"""
if os.path.isfile("instance/discord_bot_token.txt"):
f = open("instance/discord_bot_token.txt", "r")
token = f.read()
f.close()
return token
return None
APP = TruthSeekerApp()
from truthseeker.routes import routes_api, routes_ui, routes_socketio

View File

@ -1,17 +1,18 @@
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
from sqlalchemy import engine as eg
import random
import truthseeker.logic.data_persistance.tables as tables
from truthseeker.logic.data_persistance.secret import HOST, USER, PASS
url_object = eg.URL.create(
"mariadb+pymysql",
username=USER,
password=PASS,
host=HOST,
port=6776,
database="truthInquiry",
username=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
host=os.getenv("DB_HOST"),
port=os.getenv("DB_PORT"),
database=os.getenv("DB_DBNAME"),
)
engine = create_engine(url_object)
session = Session(engine)

View File

@ -1,3 +1,5 @@
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
from sqlalchemy import engine as eg
@ -12,19 +14,17 @@ from data.questions import QUESTIONS
from data.reactions import REACTIONS
from data.traits import TRAITS
from secret import HOST, USER, PASS
url_object = eg.URL.create(
"mariadb+pymysql",
username=USER,
password=PASS,
host=HOST,
port=6776,
database="truthInquiry",
username=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
host=os.getenv("DB_HOST"),
port=os.getenv("DB_PORT"),
database=os.getenv("DB_DBNAME"),
)
engine = create_engine(url_object)
# Reset data tables
with Session(engine) as session:
Base.metadata.drop_all(engine)

View File

@ -1,3 +0,0 @@
HOST = "mariadb.simailadjalim.fr"
USER = "truthInquiry"
PASS = "truthInquiry"