From 7e994b220f3a2b430864025ccc2849aa903056d6 Mon Sep 17 00:00:00 2001 From: Ione 15 <ione15@ione15.com> Date: Tue, 26 Mar 2024 00:07:22 +0100 Subject: [PATCH] Inital Commit. --- commands.sql | 3 ++ create_db.sh | 2 ++ create_db.sql | 10 +++++++ db_to_csv.sh | 2 ++ dump.txt | 3 ++ fresh_db.sh | 30 ++++++++++++++++++++ main.py | 68 +++++++++++++++++++++++++++++++++++++++++++++ sample.py | 16 +++++++++++ todo.db | Bin 0 -> 28672 bytes txt_to_cmd.sh | 25 +++++++++++++++++ write_cmd_to_db.sh | 3 ++ 11 files changed, 162 insertions(+) create mode 100644 commands.sql create mode 100755 create_db.sh create mode 100644 create_db.sql create mode 100755 db_to_csv.sh create mode 100644 dump.txt create mode 100755 fresh_db.sh create mode 100644 main.py create mode 100644 sample.py create mode 100644 todo.db create mode 100755 txt_to_cmd.sh create mode 100755 write_cmd_to_db.sh diff --git a/commands.sql b/commands.sql new file mode 100644 index 0000000..5200618 --- /dev/null +++ b/commands.sql @@ -0,0 +1,3 @@ +INSERT INTO "main"."todo"("ID","TODO","CREATION_DATE","DUE_DATE","PRIO","IMP") VALUES (NULL,'example task 1','1711408035','1711408095',100,0); +INSERT INTO "main"."todo"("ID","TODO","CREATION_DATE","DUE_DATE","PRIO","IMP") VALUES (NULL,'example task 2','1711408035','1711408095',100,0); +INSERT INTO "main"."todo"("ID","TODO","CREATION_DATE","DUE_DATE","PRIO","IMP") VALUES (NULL,'example task 3','1711408035','1711408095',100,0); diff --git a/create_db.sh b/create_db.sh new file mode 100755 index 0000000..4e20d6a --- /dev/null +++ b/create_db.sh @@ -0,0 +1,2 @@ +sqlite3 todo.db ".read create_db.sql" +echo created database diff --git a/create_db.sql b/create_db.sql new file mode 100644 index 0000000..588a557 --- /dev/null +++ b/create_db.sql @@ -0,0 +1,10 @@ +CREATE TABLE "todo" ( + "ID" INTEGER UNIQUE, + "TODO" TEXT NOT NULL, + "CREATION_DATE" INTEGER NOT NULL, + "DUE_DATE" INTEGER NOT NULL, + "PRIO" INTEGER NOT NULL, +"IMP" INTEGER NOT NULL, + + PRIMARY KEY("ID" AUTOINCREMENT) +); diff --git a/db_to_csv.sh b/db_to_csv.sh new file mode 100755 index 0000000..cf9fdd5 --- /dev/null +++ b/db_to_csv.sh @@ -0,0 +1,2 @@ +rm -v input.csv +sqlite3 todo.db 'SELECT * FROM todo;' -csv> db.csv diff --git a/dump.txt b/dump.txt new file mode 100644 index 0000000..4e41967 --- /dev/null +++ b/dump.txt @@ -0,0 +1,3 @@ +example task 1 +example task 2 +example task 3 diff --git a/fresh_db.sh b/fresh_db.sh new file mode 100755 index 0000000..9421208 --- /dev/null +++ b/fresh_db.sh @@ -0,0 +1,30 @@ +sqlite3 todo.db "DROP TABLE todo;" +sqlite3 todo.db ".read create_db.sql" +echo created database +#!/bin/bash +rm commands.sql -v +# File to read +file="dump.txt" + +# Counter for line number +line_number=1 + +# Read each line of the file +while IFS= read -r line; do + # Store the line in a variable + variable_name="line_$line_number" + declare "$variable_name"="$line" + + # Increment the line number counter + ((line_number++)) +done < "$file" + +# Print the variables to verify +for ((i=1; i<line_number; i++)); do + var="line_$i" + date=$(date +%s) + echo "INSERT INTO \"main\".\"todo\"(\"ID\",\"TODO\",\"CREATION_DATE\",\"DUE_DATE\",\"PRIO\",\"IMP\") VALUES (NULL,'${!var}','$date','$(($date+60))',100,0);" >> commands.sql +done +echo converted $file to sql statements +sqlite3 todo.db ".read commands.sql" +echo inserted sql statements to database diff --git a/main.py b/main.py new file mode 100644 index 0000000..43677ca --- /dev/null +++ b/main.py @@ -0,0 +1,68 @@ +import sqlite3 +from datetime import datetime +import time +import tkinter as tk + +con = sqlite3.connect("todo.db") +cur = con.cursor() + + +def add_item(): + item = entry.get() + if item: + listbox.insert(tk.END, item) + entry.delete(0, tk.END) # deletes input + + +def remove_item(): + selected_index = listbox.curselection() + if selected_index: + listbox.delete(selected_index) + + +def update_list(): + cur_time = (datetime.now() - datetime(1970, 1, 1)).total_seconds() + time.timezone + + total_time = [] + remaining_time = [] + importance = [] + + res = cur.execute("SELECT * FROM todo").fetchall() + for i, tmp1 in enumerate(res): + total_time.append(res[i][3] - res[i][2]) + remaining_time.append(res[i][3] - cur_time) + importance.append(total_time[i] / remaining_time[i] * res[i][4]) + if int(importance[i]) == 0: + importance[i] = 1 + print("UPDATE todo SET IMP = %s WHERE ID = %s" % (int(importance[i]), i + 1)) + cur.execute("UPDATE todo SET IMP = %s WHERE ID = %s" % (int(importance[i]), i + 1)) + print(i) + listbox.insert(tk.END, res[i][0]) + con.commit() + + +# Create the main window +root = tk.Tk() +root.title("Ion-Todo-Planner") + +# Create a listbox to display the items +listbox = tk.Listbox(root, width=100) +listbox.pack(padx=5, pady=5) + + +# Create an entry for adding items +entry = tk.Entry(root, width=50) +entry.pack(padx=10, pady=5) + +# Create buttons to add and remove items +add_button = tk.Button(root, text="Add", command=add_item) +add_button.pack(side=tk.LEFT, padx=5, pady=5) + +remove_button = tk.Button(root, text="Remove", command=remove_item) +remove_button.pack(side=tk.LEFT, padx=5, pady=5) + +update_button = tk.Button(root, text="Update", command=update_list) +update_button.pack(padx=5, pady=5) + +# Run the Tkinter event loop +root.mainloop() diff --git a/sample.py b/sample.py new file mode 100644 index 0000000..68aa93d --- /dev/null +++ b/sample.py @@ -0,0 +1,16 @@ +# This is a sample Python script. + +# Press Shift+F10 to execute it or replace it with your code. +# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. + + +def print_hi(name): + # Use a breakpoint in the code line below to debug your script. + print(f'Hi, {name}') # Press Ctrl+8 to toggle the breakpoint. + + +# Press the green button in the gutter to run the script. +if __name__ == '__main__': + print_hi('PyCharm') + +# See PyCharm help at https://www.jetbrains.com/help/pycharm/ diff --git a/todo.db b/todo.db new file mode 100644 index 0000000000000000000000000000000000000000..5913516e6617b9e336c4588d64da4ca5caf7cd15 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/txt_to_cmd.sh b/txt_to_cmd.sh new file mode 100755 index 0000000..2714da2 --- /dev/null +++ b/txt_to_cmd.sh @@ -0,0 +1,25 @@ +#!/bin/bash +rm commands.sql -v +# File to read +file="dump.txt" + +# Counter for line number +line_number=1 + +# Read each line of the file +while IFS= read -r line; do + # Store the line in a variable + variable_name="line_$line_number" + declare "$variable_name"="$line" + + # Increment the line number counter + ((line_number++)) +done < "$file" + +# Print the variables to verify +for ((i=1; i<line_number; i++)); do + var="line_$i" + date=$(date +%s) + echo "INSERT INTO \"main\".\"todo\"(\"ID\",\"TODO\",\"CREATION_DATE\",\"DUE_DATE\",\"PRIO\",\"IMP\") VALUES (NULL,'${!var}','$date','$(($date+60))',100,0);" >> commands.sql +done +echo converted $file to sql statements diff --git a/write_cmd_to_db.sh b/write_cmd_to_db.sh new file mode 100755 index 0000000..50a356f --- /dev/null +++ b/write_cmd_to_db.sh @@ -0,0 +1,3 @@ +sqlite3 todo.db ".read commands.sql" +echo inserted sql statements to database +rm commands.sql -v