Add logging with loguru

This commit is contained in:
2023-01-18 22:56:29 +01:00
parent cbad4e4430
commit ae7a10892d
11 changed files with 327 additions and 15 deletions

View File

@ -1,15 +1,15 @@
import logging
import os
from loguru import logger
from platformdirs import user_data_dir
from reader import Entry, Reader, TagNotFoundError, make_reader # type: ignore
logging_format: str = "[%(asctime)s] [%(funcName)s:%(lineno)d] %(message)s"
logging.basicConfig(level=logging.INFO, format=logging_format)
data_dir: str = user_data_dir(appname="discord_rss_bot", appauthor="TheLovinator", roaming=True)
os.makedirs(data_dir, exist_ok=True)
logger.info(f"Data directory: {data_dir}")
default_custom_message: str = "{{entry_title}}\n{{entry_link}}"
logger.debug(f"Default custom message: {default_custom_message}")
def get_webhook_for_entry(custom_reader: Reader, entry: Entry) -> str:
@ -28,11 +28,12 @@ def get_webhook_for_entry(custom_reader: Reader, entry: Entry) -> str:
# Get the webhook from the feed.
# Is None if not found or error.
webhook_url: str
try:
webhook_url = str(reader.get_tag(entry.feed_url, "webhook"))
webhook_url: str = str(reader.get_tag(entry.feed_url, "webhook"))
logger.debug(f"Webhook for {entry.title}: {webhook_url}")
except TagNotFoundError:
webhook_url = ""
logger.error(f"Could not find webhook for {entry.title}.")
return webhook_url
@ -47,7 +48,11 @@ def get_db_location(custom_location: str = "") -> str:
The database location.
"""
# Use the custom location if it is provided.
return custom_location or os.path.join(data_dir, "db.sqlite")
logger.debug(f"Custom location: {custom_location}")
db_loc: str = custom_location or os.path.join(data_dir, "db.sqlite")
logger.debug(f"Database location: {db_loc}")
return db_loc
def get_reader(custom_location: str = "") -> Reader:
@ -57,7 +62,15 @@ def get_reader(custom_location: str = "") -> Reader:
custom_location: The location of the database file.
"""
logger.debug(f"Custom location: {custom_location}")
db_location: str = get_db_location(custom_location)
logger.debug(f"Database location: {db_location}")
if not os.path.exists(db_location):
logger.error("Database does not exist.")
raise FileNotFoundError("Database does not exist.")
return make_reader(url=db_location)
@ -79,5 +92,9 @@ def list_webhooks(reader: Reader) -> list[dict[str, str]]:
# Check if the tag is named webhooks
if tag == "webhooks":
webhooks = reader.get_tag((), "webhooks") # type: ignore
else:
logger.debug(f"Tag {tag} is not webhooks.")
break
logger.debug(f"Webhooks: {webhooks}")
return webhooks