-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinitialize_database.py
More file actions
65 lines (56 loc) · 1.84 KB
/
initialize_database.py
File metadata and controls
65 lines (56 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import sqlite3
import logging
from configparser import ConfigParser
# Logger opsætning
logging.basicConfig(
filename="initialize_database.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger("initialize_database")
DB_PATH = "messages.db"
def load_config(filepath='config.txt'):
"""
Indlæser konfigurationsindstillinger fra config.txt.
"""
cfg = ConfigParser()
cfg.read(filepath)
return cfg
def initialize_database():
"""
Initialiserer SQLite-databasen og opretter `messages`-tabellen.
"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
raw_message TEXT NOT NULL,
parsed_fields TEXT,
sent_to_telegram INTEGER DEFAULT 0
)
""")
conn.commit()
conn.close()
logger.info("Database initialiseret.")
def insert_dummy_data(cfg):
"""
Indsætter dummy-data i databasen, hvis det er aktiveret i config.txt.
"""
if cfg.getboolean("DummyData", "enable_dummy_data", fallback=False):
dummy_messages = cfg.get("DummyData", "dummy_messages", fallback="").split("\n")
dummy_messages = [msg.strip() for msg in dummy_messages if msg.strip()]
with sqlite3.connect(DB_PATH) as conn:
cursor = conn.cursor()
for message in dummy_messages:
cursor.execute("""
INSERT INTO messages (raw_message)
VALUES (?)
""", (message,))
conn.commit()
logger.info(f"{len(dummy_messages)} dummy-beskeder indsat i databasen.")
if __name__ == "__main__":
config = load_config()
initialize_database()
insert_dummy_data(config)