added config loading from .env

This commit is contained in:
2026-08-16 15:51:35 +02:00
parent 72937d8f5f
commit 88f057bb36
6 changed files with 35 additions and 8 deletions
+4
View File
@@ -0,0 +1,4 @@
CARDDAV_URL=
CARDDAV_USER=
CARDDAV_PASSWORD=
CARDDAV_IGNORE_STR=
-1
View File
@@ -2,4 +2,3 @@
**/venv
**/.env
**/*.pyc
key
+8 -6
View File
@@ -1,17 +1,19 @@
import logging
logging.basicConfig(level=logging.INFO)
from flask import Flask, render_template
import sys, os
from src.carddav import print_contacts, get_contacts
from src.person import Person
from src import config
app = Flask(__name__)
if __name__ == "__main__":
if len(sys.argv) != 4:
print(f"Usage: {sys.argv[0]} <url> <user> <password>")
sys.exit(1)
contacts = get_contacts(sys.argv[1], sys.argv[2], sys.argv[3])
contacts = get_contacts(config.CARDDAV_URL, config.CARDDAV_USER, config.CARDDAV_PASSWORD)
print_contacts(contacts)
app.run(host="0.0.0.0", port=8080, debug=True, use_reloader=False)
#app.run(host="0.0.0.0", port=8080, debug=True, use_reloader=False)
+3
View File
@@ -2,12 +2,15 @@ blinker==1.9.0
certifi==2026.7.22
charset-normalizer==3.5.1
click==8.4.2
dotenv==0.9.9
Flask==3.1.3
idna==3.18
itsdangerous==2.2.0
Jinja2==3.1.6
logging==0.4.9.6
MarkupSafe==3.0.3
python-dateutil==2.9.0.post0
python-dotenv==1.2.2
pytz==2026.3.post1
requests==2.34.2
six==1.17.0
+17
View File
@@ -0,0 +1,17 @@
import sys, os, logging
from dotenv import load_dotenv
logger = logging.getLogger(__name__)
try:
load_dotenv()
CARDDAV_URL = os.environ["CARDDAV_URL"]
CARDDAV_USER = os.environ["CARDDAV_USER"]
CARDDAV_PASSWORD = os.environ["CARDDAV_PASSWORD"]
CARDDAV_IGNORE_STR = os.environ["CARDDAV_IGNORE_STR"]
logger.info("Config loaded!")
except Exception:
logger.exception("Failed to load config from .env!")
sys.exit(1)
+3 -1
View File
@@ -1,6 +1,8 @@
import vobject
from datetime import date, datetime
from src import config
class Person:
def __init__(self, vcard):
self.vcard = vcard
@@ -37,7 +39,7 @@ class Person:
# check if we should ignore this contact
# ignore when no name was found or an explicit tag is found in its notes
if hasattr(self.vcard, "note") and ("<ignore>" in self.vcard.note.value):
if hasattr(self.vcard, "note") and (config.CARDDAV_IGNORE_STR in self.vcard.note.value):
return False
if (not self.name):