diff options
| author | Niclas Dobbertin <niclas.dobbertin@mailbox.org> | 2026-07-09 23:06:00 +0200 |
|---|---|---|
| committer | Niclas Dobbertin <niclas.dobbertin@mailbox.org> | 2026-07-09 23:06:00 +0200 |
| commit | 67252d3e64d871c6dab21e4697d3d26f55bbc519 (patch) | |
| tree | fd7be1522e4718ec2a076c4ea174e3da2a9c6a97 | |
init basic sqlite functions
| -rw-r--r-- | add_participant.py | 57 | ||||
| -rw-r--r-- | create_meeting.py | 43 | ||||
| -rw-r--r-- | init_sqlite.py | 17 | ||||
| -rw-r--r-- | view_meeting.py | 28 |
4 files changed, 145 insertions, 0 deletions
diff --git a/add_participant.py b/add_participant.py new file mode 100644 index 0000000..da79fab --- /dev/null +++ b/add_participant.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +import os +import sqlite3 + +db_path = "terminfinder_db.sqlite" + +if not os.path.exists(db_path): + print(f"DB named {db_path} does not exist!") + exit(1) + +con = sqlite3.connect(db_path) +cur = con.cursor() + +meeting_id = "meet1" +part_name = "niklas" +data = [ + ("2026-01-01_12-00", True), + ("2026-01-01_13-00", False), + ("2026-01-02_14-00", True), +] + + +def add_participant(meeting_id, part_name, data): + for datum in data: + if datum[1]: + select = cur.execute( + f"SELECT confirming FROM meeting_dates_{meeting_id} WHERE date = ?;", + (datum[0],), + ) + result = select.fetchone() + new_confirming = result[0] + "," + part_name + cur.execute( + f"UPDATE meeting_dates_{meeting_id} SET confirming = ? WHERE date = ?;", + ( + new_confirming, + datum[0], + ), + ) + else: + select = cur.execute( + f"SELECT declining FROM meeting_dates_{meeting_id} WHERE date = ?;", + (datum[0],), + ) + result = select.fetchone() + new_declining = result[0] + "," + part_name + cur.execute( + f"UPDATE meeting_dates_{meeting_id} SET declining = ? WHERE date = ?;", + ( + new_declining, + datum[0], + ), + ) + con.commit() + + +add_participant(meeting_id, part_name, data) diff --git a/create_meeting.py b/create_meeting.py new file mode 100644 index 0000000..489067d --- /dev/null +++ b/create_meeting.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +import os +import sqlite3 + +db_path = "terminfinder_db.sqlite" + +if not os.path.exists(db_path): + print(f"DB named {db_path} does not exist!") + exit(1) + +con = sqlite3.connect(db_path) +cur = con.cursor() + +meeting_id = "meet1" +meeting_name = "My first meeting" +meeting_description = "This is a test meeting description" +meeting_dates = "2026-01-01_12-00,2026-01-01_13-00,2026-01-02_14-00" + + +def create_meeting(meeting_id, meeting_name, meeting_description, meeting_dates): + cur.execute( + "INSERT INTO meeting (meeting_id, title, description, possible_dates) VALUES (?, ?, ?, ?);", + ( + meeting_id, + meeting_name, + meeting_description, + meeting_dates, + ), + ) + cur.execute( + f"CREATE TABLE meeting_dates_{meeting_id}(date, confirming, declining, meeting_id, PRIMARY KEY (date) FOREIGN KEY (meeting_id) REFERENCES meeting(meeting_id))" + ) + + for date in meeting_dates.split(","): + cur.execute( + f"INSERT INTO meeting_dates_{meeting_id} (date, confirming, declining, meeting_id) VALUES (?, ?, ?, ?);", + (date, "", "", meeting_id), + ) + con.commit() + + +create_meeting(meeting_id, meeting_name, meeting_description, meeting_dates) diff --git a/init_sqlite.py b/init_sqlite.py new file mode 100644 index 0000000..acc6153 --- /dev/null +++ b/init_sqlite.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import os +import sqlite3 + +db_path = "terminfinder_db.sqlite" + +if os.path.exists(db_path): + print(f"DB named {db_path} already exists") + exit(1) + +con = sqlite3.connect(db_path) +cur = con.cursor() + +cur.execute( + "CREATE TABLE meeting(meeting_id, title, description, possible_dates, participants, PRIMARY KEY (meeting_id))" +) diff --git a/view_meeting.py b/view_meeting.py new file mode 100644 index 0000000..00f6ae4 --- /dev/null +++ b/view_meeting.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + + +import os +import sqlite3 + +db_path = "terminfinder_db.sqlite" + +if not os.path.exists(db_path): + print(f"DB named {db_path} does not exist!") + exit(1) + +con = sqlite3.connect(db_path) +cur = con.cursor() + +meeting_id = "meet1" + + +def extract_meeting(meeting_id): + select = cur.execute(f"SELECT * FROM meeting WHERE meeting_id = ?;", (meeting_id,)) + result = select.fetchall() + print(result) + select = cur.execute(f"SELECT * FROM meeting_dates_{meeting_id};") + result = select.fetchall() + print(result) + + +extract_meeting(meeting_id) |
