Move settings to settings.py and read from a config file
This commit is contained in:
@ -1,14 +1,12 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
from dhooks import Webhook
|
from dhooks import Webhook
|
||||||
from reader import FeedExistsError, make_reader
|
from reader import FeedExistsError, make_reader
|
||||||
|
|
||||||
reader = make_reader("db.sqlite")
|
from discord_rss_bot.settings import Settings
|
||||||
|
|
||||||
app = typer.Typer()
|
app = typer.Typer() # For CLI (https://typer.tiangolo.com/)
|
||||||
hook = Webhook("")
|
hook = Webhook(Settings.webhook_url) # For Webhooks (https://github.com/kyb3r/dhooks)
|
||||||
|
reader = make_reader(Settings.db_file) # For RSS (https://github.com/lemon24/reader)
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
|
44
discord_rss_bot/settings.py
Normal file
44
discord_rss_bot/settings.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import configparser
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from platformdirs import user_data_dir
|
||||||
|
|
||||||
|
|
||||||
|
class Settings:
|
||||||
|
data_dir = user_data_dir(
|
||||||
|
appname="discord-rss-bot", # The name of application.
|
||||||
|
appauthor="TheLovinator", # The name of the app author or distributing body for this application
|
||||||
|
roaming=True, # Whether to use the roaming appdata directory on Windows
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create the data directory if it doesn't exist
|
||||||
|
os.makedirs(data_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# Store the database file in the data directory
|
||||||
|
db_file = os.path.join(data_dir, "db.sqlite")
|
||||||
|
|
||||||
|
# Store the config in the data directory
|
||||||
|
config_location = os.path.join(data_dir, "config.conf")
|
||||||
|
|
||||||
|
if not os.path.isfile(config_location):
|
||||||
|
# TODO: Add config for db_file and config_location
|
||||||
|
print("No config file found, creating one...")
|
||||||
|
with open(config_location, "w") as config_file:
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.add_section("config")
|
||||||
|
config.set(
|
||||||
|
"config",
|
||||||
|
"webhook_url",
|
||||||
|
"https://discord.com/api/webhooks/1234/567890/ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",
|
||||||
|
)
|
||||||
|
|
||||||
|
config.write(config_file)
|
||||||
|
sys.exit(f"Please edit the config file at {config_location}")
|
||||||
|
|
||||||
|
# Read the config file
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(config_location)
|
||||||
|
|
||||||
|
# Get the webhook url from the config file
|
||||||
|
webhook_url = config.get("config", "webhook_url")
|
4
poetry.lock
generated
4
poetry.lock
generated
@ -323,7 +323,7 @@ python-versions = ">=2.6"
|
|||||||
name = "platformdirs"
|
name = "platformdirs"
|
||||||
version = "2.4.0"
|
version = "2.4.0"
|
||||||
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||||
category = "dev"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
@ -560,7 +560,7 @@ multidict = ">=4.0"
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = "^3.9"
|
python-versions = "^3.9"
|
||||||
content-hash = "dc5257dac12ba191e440acf7ab8ee7ce0f0f4b6ad421f0a8f7b618544f7c616a"
|
content-hash = "7c241013c8d3fb868ab328cb15e7e1a20908ffae5f455d90286135f89170dcfa"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
aiohttp = [
|
aiohttp = [
|
||||||
|
@ -9,6 +9,7 @@ python = "^3.9"
|
|||||||
reader = "^2.6"
|
reader = "^2.6"
|
||||||
typer = "^0.4.0"
|
typer = "^0.4.0"
|
||||||
dhooks = "^1.1.4"
|
dhooks = "^1.1.4"
|
||||||
|
platformdirs = "^2.4.0"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
pytest = "^5.2"
|
pytest = "^5.2"
|
||||||
|
Reference in New Issue
Block a user