Merge pull request #30 from ThomasRubini/dotenv
This commit is contained in:
		
						commit
						4a889aa559
					
				
							
								
								
									
										10
									
								
								.env.dist
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.env.dist
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| # Common | ||||
| FLASK_SECRET="" | ||||
| DISCORD_BOT_TOKEN="" | ||||
| 
 | ||||
| # Database | ||||
| DB_HOST="" | ||||
| DB_PORT=3306 | ||||
| DB_USER="" | ||||
| DB_PASSWORD="" | ||||
| DB_DBNAME="" | ||||
							
								
								
									
										7
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							| @ -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
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| **/__pycache__ | ||||
| instance/ | ||||
| data_persistance/secret.py | ||||
| **/.vscode | ||||
| **/.vscode | ||||
| .env | ||||
|  | ||||
							
								
								
									
										4
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								app.py
									
									
									
									
									
								
							| @ -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__": | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -1,3 +0,0 @@ | ||||
| HOST = "mariadb.simailadjalim.fr" | ||||
| USER = "truthInquiry" | ||||
| PASS = "truthInquiry" | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user