modified: src/planner.c

modified:   src/ui.c
bugfixMaster
ketrptr 2024-12-15 13:16:02 +01:00
parent 5e3d89fb57
commit 809239492d
2 changed files with 51 additions and 21 deletions

View File

@ -270,6 +270,17 @@ llist *genPlan(llist *head, time_t timeAvail) {
return events_ll; return events_ll;
} }
const char *iCalHeader = "BEGIN:VCALENDAR\r\n"
"VERSION:2.0\r\n"
"PRODID:-//hacksw/handcal//NONSGML v1.0//EN\r\n";
const char *iCalEvent = "BEGIN:VEVENT\r\n"
"UID:%s%d\r\n"
"DTSTAMP:%s\r\n"
"DTSTART:%s\r\n"
"DTEND:%s\r\n"
"SUMMARY:%s\r\n"
"END:VEVENT\r\n";
int exportiCal(llist *events_ll) { int exportiCal(llist *events_ll) {
llist *ev_ll = events_ll; llist *ev_ll = events_ll;

View File

@ -13,6 +13,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
const char *dbName = "db.csv";
int main(void) { int main(void) {
char taskname[256]; // taskName Buffer char taskname[256]; // taskName Buffer
int taskcreation_date = 0; int taskcreation_date = 0;
@ -20,14 +22,16 @@ int main(void) {
int taskpriority = 0; int taskpriority = 0;
int taskspare = 0; int taskspare = 0;
llist *list = NULL; llist *listT = NULL;
llist *listE = NULL;
int choice = 0, i = 0; int choice = 0, i = 0;
do { do {
printf(" -1- Neues Fach eingeben\n"); printf(" -1- Neues Fach eingeben\n");
printf(" -2- Verfuegbare Zeit eingeben\n"); printf(" -2- Verfuegbare Zeit eingeben\n");
printf(" -3- Alle vorhandenen Faecher aufliesten\n"); printf(" -3- Alle vorhandenen Faecher aufliesten\n");
printf(" -4- Kalenderlink ausgeben\n"); printf(" -4- Kalenderlink ausgeben\n");
printf(" -5- Planer beenden\n"); printf(" -5- Faecher Importieren\n");
printf(" -6- Planer beenden\n");
printf(" Wähle die gewünschte Option aus\n"); printf(" Wähle die gewünschte Option aus\n");
if (scanf("%d", &choice) != 1) { if (scanf("%d", &choice) != 1) {
printf("Falsche Eingabe\n"); printf("Falsche Eingabe\n");
@ -57,20 +61,20 @@ int main(void) {
return -1; return -1;
} }
printf(" Wie viel Zeit habe Sie für dieses Fach: \n"); // printf(" Wie viel Zeit habe Sie für dieses Fach: \n");
if (scanf("%d", &taskspare) != 1) { // if (scanf("%d", &taskspare) != 1) {
printf("Ungültige Eingabe.\n"); // printf("Ungültige Eingabe.\n");
return -1; // return -1;
} // }
// create deadline timestamp // create deadline timestamp
lc.tm_yday += taskdeadline_date; lc.tm_yday += taskdeadline_date;
time_t deadline = mktime(&lc); time_t deadline = mktime(&lc);
Task *newT = newTask(taskname, now, deadline, taskpriority, 0); Task *newT = newTask(taskname, now, deadline, taskpriority, 0);
if (list == NULL) { if (listT == NULL) {
list = llistNew(newT, cmpTaskN); listT = llistNew(newT, cmpTaskN);
} else { } else {
llistAppend(list, newT); llistAppend(listT, newT);
} }
break; break;
@ -79,8 +83,9 @@ int main(void) {
"Geben Sie die zur verfuegung stehende Zeit für die Fächer an: \n"); "Geben Sie die zur verfuegung stehende Zeit für die Fächer an: \n");
scanf("%d", &taskspare); scanf("%d", &taskspare);
// if list exists use it to generate plan // if list exists use it to generate plan
if (list != NULL) { if (listT != NULL) {
genPlan(list, taskspare); listE = genPlan(listT, taskspare);
write_linkedlist_to_csv(listT, dbName);
} else { } else {
printf("list is empty!"); printf("list is empty!");
return -1; return -1;
@ -88,10 +93,10 @@ int main(void) {
break; break;
case 3: case 3:
if (list == NULL) { if (listT == NULL) {
printf("Die Liste ist leer"); printf("Die Liste ist leer");
} else { } else {
llistPrintT(list); llistPrintT(listT);
// llist *iterator = list; // llist *iterator = list;
// while (iterator != NULL) { // while (iterator != NULL) {
// Task *currentTask = (Task *)(iterator->data); // Cast zu Task // Task *currentTask = (Task *)(iterator->data); // Cast zu Task
@ -123,13 +128,28 @@ int main(void) {
// } // }
// break; // break;
case 4: case 4:
printf( if (listE == NULL || taskspare <= 0) {
"Geben Sie die zur verfuegung stehende Zeit für die Fächer an: \n"); printf("vor Export erst task list erstellen, dann verfuegbare zeit "
scanf("%d", &taskspare); "eingeben!\n");
break;
}
exportiCal(listE);
// printf(
// "Geben Sie die zur verfuegung stehende Zeit für die Fächer an:
// \n");
// scanf("%d", &taskspare);
break; break;
case 5: case 5:
listT = write_csv_to_llist(dbName);
break;
case 6:
printf("Goodbye!\n");
if (listE != NULL)
llistFreeE(listE);
if (listT != NULL)
llistPrintT(listT);
// if (task == NULL) {//task? // if (task == NULL) {//task?
// printf("Die Liste ist leer"); // printf("Die Liste ist leer");
// } else { // } else {
@ -142,9 +162,8 @@ int main(void) {
// iterator = iterator->next; // Gehe zum nächsten Listenelement // iterator = iterator->next; // Gehe zum nächsten Listenelement
// } // }
// } // }
break; return EXIT_SUCCESS;
// case 4: iCAl();break; // case 4: iCAl();break;
} }
} while (choice != 5); } while (choice < 6);
return EXIT_SUCCESS;
} }