added log (console logs)
This commit is contained in:
parent
84381325f1
commit
c238b15a6c
4 changed files with 38 additions and 4 deletions
|
@ -11,3 +11,4 @@ SIGNAL_RECIPIENTS = os.environ.get("SIGNAL_RECIPIENTS", default=SIGNAL_SENDER).s
|
||||||
","
|
","
|
||||||
)
|
)
|
||||||
SIGNAL_API_URL = os.environ.get("SIGNAL_API_URL")
|
SIGNAL_API_URL = os.environ.get("SIGNAL_API_URL")
|
||||||
|
LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO")
|
||||||
|
|
18
logging_conf.py
Normal file
18
logging_conf.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from config import LOG_LEVEL
|
||||||
|
|
||||||
|
|
||||||
|
def get_logger(name: str) -> logging.Logger:
|
||||||
|
logger = logging.getLogger(name)
|
||||||
|
|
||||||
|
if not logger.handlers:
|
||||||
|
logger.setLevel(LOG_LEVEL)
|
||||||
|
formatter = logging.Formatter(
|
||||||
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||||
|
)
|
||||||
|
console_handler = logging.StreamHandler()
|
||||||
|
console_handler.setFormatter(formatter)
|
||||||
|
logger.addHandler(console_handler)
|
||||||
|
|
||||||
|
return logger
|
22
main.py
22
main.py
|
@ -1,7 +1,7 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from jinja2 import Environment, PackageLoader, select_autoescape, FileSystemLoader
|
from jinja2 import Environment, select_autoescape, FileSystemLoader
|
||||||
from pdfminer.pdfdocument import PDFDocument
|
from pdfminer.pdfdocument import PDFDocument
|
||||||
from pdfminer.pdfparser import PDFParser
|
from pdfminer.pdfparser import PDFParser
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ from config import (
|
||||||
SIGNAL_RECIPIENTS,
|
SIGNAL_RECIPIENTS,
|
||||||
SIGNAL_API_URL,
|
SIGNAL_API_URL,
|
||||||
)
|
)
|
||||||
|
from logging_conf import get_logger
|
||||||
from menus import Menus, MenuMessageFormatter
|
from menus import Menus, MenuMessageFormatter
|
||||||
from message_sender import SignalMessager
|
from message_sender import SignalMessager
|
||||||
from pdf_downloader import download
|
from pdf_downloader import download
|
||||||
|
@ -19,6 +20,8 @@ from result_file import ResultFile
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def read_pdf_metadata(pdf_file: Path):
|
def read_pdf_metadata(pdf_file: Path):
|
||||||
fp = open(pdf_file, "rb")
|
fp = open(pdf_file, "rb")
|
||||||
|
@ -28,26 +31,39 @@ def read_pdf_metadata(pdf_file: Path):
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
logger.info(f"Téléchargement du menu à l'adresse {MENU_CRECHE_PDF_URL}...")
|
||||||
menu_pdf_file = download(MENU_CRECHE_PDF_URL, file_name="menu.pdf")
|
menu_pdf_file = download(MENU_CRECHE_PDF_URL, file_name="menu.pdf")
|
||||||
|
|
||||||
menus = Menus(menu_pdf_file)
|
menus = Menus(menu_pdf_file)
|
||||||
|
|
||||||
|
logger.info("Extraction des métadonnées du PDF")
|
||||||
pdf_metadata = read_pdf_metadata(menu_pdf_file)
|
pdf_metadata = read_pdf_metadata(menu_pdf_file)
|
||||||
creation_date = pdf_metadata[0]["CreationDate"].decode("utf-8").removeprefix("D:")
|
creation_date = pdf_metadata[0]["CreationDate"].decode("utf-8").removeprefix("D:")
|
||||||
modification_date = pdf_metadata[0]["ModDate"].decode("utf-8").removeprefix("D:")
|
modification_date = pdf_metadata[0]["ModDate"].decode("utf-8").removeprefix("D:")
|
||||||
|
logger.debug(
|
||||||
|
f"Le PDF a été créé le {creation_date} et modifié le {modification_date}"
|
||||||
|
)
|
||||||
|
|
||||||
result_file = ResultFile(Path.home() / ".cache" / "menu_creche.txt")
|
result_file = ResultFile(Path.home() / ".cache" / "menu_creche.txt")
|
||||||
|
|
||||||
templates_path = Path(__file__).parent / "templates"
|
templates_path = Path(__file__).parent / "templates"
|
||||||
env = Environment(loader=FileSystemLoader(templates_path), autoescape=select_autoescape())
|
env = Environment(
|
||||||
|
loader=FileSystemLoader(templates_path), autoescape=select_autoescape()
|
||||||
|
)
|
||||||
message_formatter = MenuMessageFormatter(env)
|
message_formatter = MenuMessageFormatter(env)
|
||||||
|
|
||||||
for menu_type in MENU_TYPES:
|
for menu_type in MENU_TYPES:
|
||||||
if result_file.was_already_sent(creation_date, modification_date, menu_type):
|
if result_file.was_already_sent(creation_date, modification_date, menu_type):
|
||||||
return
|
logger.info(f"Le menu {menu_type} du PDF a déjà été envoyé par le passé.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
logger.debug(f"Création du message à envoyer pour le menu {menu_type}")
|
||||||
message = message_formatter.create_message(menus, menu_type)
|
message = message_formatter.create_message(menus, menu_type)
|
||||||
|
|
||||||
|
logger.info(
|
||||||
|
f"Envoi du message aux numéros {SIGNAL_RECIPIENTS} de la part de {SIGNAL_SENDER}"
|
||||||
|
)
|
||||||
|
logger.debug(f"Le message envoyé a pour contenu :\n\n{message}")
|
||||||
signal_messager = SignalMessager(SIGNAL_API_URL, SIGNAL_SENDER)
|
signal_messager = SignalMessager(SIGNAL_API_URL, SIGNAL_SENDER)
|
||||||
signal_messager.send_message(message, menu_pdf_file, SIGNAL_RECIPIENTS)
|
signal_messager.send_message(message, menu_pdf_file, SIGNAL_RECIPIENTS)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ from pathlib import Path
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SignalMessager:
|
class SignalMessager:
|
||||||
def __init__(self, api_url: str, user_number: str):
|
def __init__(self, api_url: str, user_number: str):
|
||||||
self.api_url = api_url
|
self.api_url = api_url
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue