Skip to content

Commit

Permalink
Added execution from any working directory. Ready for v0.9.0.b release
Browse files Browse the repository at this point in the history
  • Loading branch information
MrBeam89 committed Apr 6, 2024
1 parent 055eddf commit bc3c485
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 34 deletions.
36 changes: 19 additions & 17 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@

import yaml
import re
from os.path import basename

CONFIG_FILENAME = "config.yaml"
ECOLEDIRECTE_DIR = __file__.rstrip(basename(__file__))
CONFIG_FILENAME = f"config.yaml"

def get_config():
# Vérification fichier de configuration
try:
print(f'Ouverture du fichier "{CONFIG_FILENAME}"...')
with open(f"{CONFIG_FILENAME}", "r") as config_file:
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{CONFIG_FILENAME}"...')
with open(f"{ECOLEDIRECTE_DIR}{CONFIG_FILENAME}", "r") as config_file:
config = yaml.safe_load(config_file)
print(f'Ouverture de "{CONFIG_FILENAME}" réussie!')
print(f'Ouverture de "{ECOLEDIRECTE_DIR}{CONFIG_FILENAME}" réussie!')
BOT_TOKEN_FILENAME = config["BOT_TOKEN_FILENAME"]
DB_KEY_FILENAME = config['DB_KEY_FILENAME']
DB_FILENAME = config["DB_FILENAME"]
Expand All @@ -43,38 +45,38 @@ def get_config():

# Vérification du fichier de token
try:
print(f'Ouverture du fichier "{BOT_TOKEN_FILENAME}"...')
token_file = open(f"{BOT_TOKEN_FILENAME}", "r")
print(f'Ouverture du fichier "{BOT_TOKEN_FILENAME}" réussie!')
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{BOT_TOKEN_FILENAME}"...')
token_file = open(f"{ECOLEDIRECTE_DIR}{BOT_TOKEN_FILENAME}", "r")
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{BOT_TOKEN_FILENAME}" réussie!')
token_file.close()
except FileNotFoundError:
print(f'Fichier introuvable! Placez le token dans le fichier "{BOT_TOKEN_FILENAME}"')
print(f'Fichier introuvable! Placez le token dans le fichier "{ECOLEDIRECTE_DIR}{BOT_TOKEN_FILENAME}"')
input("Appuyez sur Entree pour quitter...")
exit()

# Vérification du fichier de clé pour la base de données
try:
print(f'Ouverture du fichier "{DB_KEY_FILENAME}"...')
db_key_file = open(f"{DB_KEY_FILENAME}", "r")
print(f'Ouverture du fichier "{DB_KEY_FILENAME}", réussie!')
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}"...')
db_key_file = open(f"{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}", "r")
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}", réussie!')
db_key_file.close()

except FileNotFoundError:
from keygen import getkey
print(f'Fichier introuvable! Création d\'une nouvelle clé dans le fichier "{DB_KEY_FILENAME}"...')
print(f'Fichier introuvable! Création d\'une nouvelle clé dans le fichier "{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}"...')
getkey()
print(f'Création d\'une nouvelle clé dans le fichier "{DB_KEY_FILENAME}" réussie!')
print(f'Création d\'une nouvelle clé dans le fichier "{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}" réussie!')
print("/!\ ATTENTION /!\ La base de données (si non vide) ne fonctionnera pas correctement avec la nouvelle clé.")

# Vérification du fichier de la base de données
try:
print(f'Ouverture du fichier "{DB_FILENAME}"...')
db_key_file = open(f"{DB_FILENAME}", "r")
print(f'Ouverture du fichier "{DB_FILENAME}" réussie!')
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{DB_FILENAME}"...')
db_key_file = open(f"{ECOLEDIRECTE_DIR}{DB_FILENAME}", "r")
print(f'Ouverture du fichier "{ECOLEDIRECTE_DIR}{DB_FILENAME}" réussie!')
db_key_file.close()

except FileNotFoundError:
print(f'Fichier introuvable! Création de la base de données "{DB_FILENAME}"...')
print(f'Fichier introuvable! Création de la base de données "{ECOLEDIRECTE_DIR}{DB_FILENAME}"...')

# Vérification du préfixe du bot
if not isinstance(BOT_COMMAND_PREFIX, str):
Expand Down
16 changes: 9 additions & 7 deletions db_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@

import sqlite3
import yaml

from config import CONFIG_FILENAME
from config import CONFIG_FILENAME, ECOLEDIRECTE_DIR
from os.path import basename

# Obtenir le nom de la base de données
config_file = open(f"{CONFIG_FILENAME}", "r")
config_file = open(f"{ECOLEDIRECTE_DIR}{CONFIG_FILENAME}", "r")
config = yaml.safe_load(config_file)

DB_FILENAME = config["DB_FILENAME"]
DB_ABSOLUTE_PATH = f"{ECOLEDIRECTE_DIR}{DB_FILENAME}"

# Créer la base de données et ajouter la table si elle n'existe pas
connection = sqlite3.connect(f"{DB_FILENAME}")
connection = sqlite3.connect(f"{DB_ABSOLUTE_PATH}")
cursor = connection.cursor()
create_table_sql = '''
CREATE TABLE IF NOT EXISTS users (
Expand All @@ -43,7 +45,7 @@

# Ajouter les informations d'un nouvel utilisateur
def add_user_info(user_id:int, identifiant:str, motdepasse:str, cn:str, cv:str)->bool:
connection = sqlite3.connect(f"{DB_FILENAME}")
connection = sqlite3.connect(f"{DB_ABSOLUTE_PATH}")
cursor = connection.cursor()
try:
new_user = (cursor.lastrowid, user_id, identifiant, motdepasse, cn, cv)
Expand All @@ -58,7 +60,7 @@ def add_user_info(user_id:int, identifiant:str, motdepasse:str, cn:str, cv:str)-

# Obtenir les informations d'un utilisateur
def fetch_user_info(user_id:int):
connection = sqlite3.connect(f"{DB_FILENAME}")
connection = sqlite3.connect(f"{DB_ABSOLUTE_PATH}")
cursor = connection.cursor()
cursor.execute("SELECT * FROM users WHERE user_id = ?", (user_id,))
user_data = cursor.fetchone()
Expand All @@ -72,7 +74,7 @@ def fetch_user_info(user_id:int):
# Supprimer l'utilisateur
def delete_user(user_id:int)->bool:
if fetch_user_info(user_id):
connection = sqlite3.connect(f"{DB_FILENAME}")
connection = sqlite3.connect(f"{DB_ABSOLUTE_PATH}")
cursor = connection.cursor()
cursor.execute("DELETE FROM users WHERE user_id = ?", (user_id,))
connection.commit()
Expand Down
8 changes: 4 additions & 4 deletions keygen.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,22 @@
import yaml
from secrets import token_bytes

from config import CONFIG_FILENAME
from config import CONFIG_FILENAME, ECOLEDIRECTE_DIR

def getkey()->bytes:
# Obtenir le nom du fichier de la clé dans la config
DB_KEY_FILENAME = None
with open(f"{CONFIG_FILENAME}", "r") as config_file:
with open(f"{ECOLEDIRECTE_DIR}{CONFIG_FILENAME}", "r") as config_file:
config = yaml.safe_load(config_file)
DB_KEY_FILENAME = config["DB_KEY_FILENAME"]

# Création/récupération de la clé
try:
# Ne modifie pas la clé si elle existe déjà
keyfile = open(f"{DB_KEY_FILENAME}", "rb")
keyfile = open(f"{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}", "rb")
except FileNotFoundError:
# Si la clé n'existe pas
keyfile = open(f"{DB_KEY_FILENAME}", "wb+")
keyfile = open(f"{ECOLEDIRECTE_DIR}{DB_KEY_FILENAME}", "wb+")
keyfile.write(token_bytes(32))
keyfile.seek(0)
finally:
Expand Down
12 changes: 6 additions & 6 deletions main.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import b64
import str_clean

print(f"{'-'*30}\nEcoleDirecte Bot par MrBeam89_\n{'-'*30}")
print(f"{'-'*40}\nEcoleDirecte Bot (v0.9.0b) par MrBeam89_\n{'-'*40}")

# Récupération de la configuration
BOT_CONFIG = config.get_config()
Expand All @@ -45,15 +45,14 @@
# Journalisation
year, month, day, hour, minute, second = datetime.datetime.now().timetuple()[:6]
log_filename = f"log_{year}-{month}-{day}_{hour}-{minute}-{second}.log" # Format du nom de fichier
log_directory_name = "logs"
log_directory_path = os.path.join(os.getcwd(), log_directory_name)
log_directory_path = os.path.join(config.ECOLEDIRECTE_DIR, "logs")

if not os.path.exists(log_directory_path):
print(f'Création du répertoire "{log_directory_name}"...')
print(f'Création du répertoire "{log_directory_path}"...')
os.mkdir(log_directory_path)
print(f'Répertoire "{log_directory_name}" créé!')
print(f'Répertoire "{log_directory_path}" créé!')
else:
print(f'Répertoire "{log_directory_name}" existe déjà!')
print(f'Répertoire "{log_directory_path}" existe déjà!')

log_path = os.path.join(log_directory_path, log_filename)

Expand Down Expand Up @@ -583,6 +582,7 @@ async def notes(contexte):
await contexte.send(message)

# Démarrer le bot
BOT_TOKEN_FILENAME = __file__.rstrip(os.path.basename(__file__)) + BOT_TOKEN_FILENAME
with open(f"{BOT_TOKEN_FILENAME}") as BOT_TOKEN_FILE:
bot_token = BOT_TOKEN_FILE.read()

Expand Down

0 comments on commit bc3c485

Please sign in to comment.