commit c565207560b8b8adce7cbd0dc8529fac2c33b186 Author: pro100ton Date: Fri Dec 20 21:51:53 2024 +0300 Add miniApp for calculating duration of tasks in obsidian diff --git a/nvim_parsers/taduca/example.txt b/nvim_parsers/taduca/example.txt new file mode 100644 index 0000000..ae6627c --- /dev/null +++ b/nvim_parsers/taduca/example.txt @@ -0,0 +1,7 @@ +20.12.2024 08:30 || Продолжил работу с 2826 +20.12.2024 11:00 || Начали встречу с Дашей по поводу хз чего +20.12.2024 11:27 || Закончили всетречу +20.12.2024 11:27 || Смотрю что сделал Владимир (задача про закрытие доступов к API фаерволов) +20.12.2024 11:39 || Посмотрел, дополнил и переместил в спринт на оценку эту задачу +20.12.2024 12:52 || Закончили встречу с Лешей +20.12.2024 14:20 || Вернулся к работе над задачей 2826закончил на сегодня с 2826 diff --git a/nvim_parsers/taduca/go.mod b/nvim_parsers/taduca/go.mod new file mode 100644 index 0000000..06c835a --- /dev/null +++ b/nvim_parsers/taduca/go.mod @@ -0,0 +1,3 @@ +module parser + +go 1.23.3 diff --git a/nvim_parsers/taduca/mini_parse.go b/nvim_parsers/taduca/mini_parse.go new file mode 100644 index 0000000..1b8ef4f --- /dev/null +++ b/nvim_parsers/taduca/mini_parse.go @@ -0,0 +1,63 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "regexp" + "time" +) + +func ParseData(pointer *[]string) { + re := regexp.MustCompile(`\d+:\d+`) + timeStringLayout := "15:04" + dataLen := len(*pointer) + for i := 0; i < dataLen; i++ { + // address := &(*pointer)[i] + // fmt.Printf("Element %d: Value = %s, Address = %p\n", i, *address, address) + if i == 0 { + continue + } + + // fmt.Println((*pointer)[i]) + startTime := re.Find([]byte((*pointer)[i-1])) + startTimeString := string(startTime) + startTimeParsed, err := time.Parse(timeStringLayout, startTimeString) + if err != nil { + fmt.Println("Error parsing date:", err) + } + endTime := re.Find([]byte((*pointer)[i])) + endTimeString := string(endTime) + // fmt.Printf("%s - %s\n", startTime, endTime) + endTimeParsed, err := time.Parse(timeStringLayout, endTimeString) + if err != nil { + fmt.Println("Error parsing date:", err) + } + duration := endTimeParsed.Sub(startTimeParsed) + fmt.Printf("%s\t%s\n", duration, (*pointer)[i]) + } +} + +func main() { + // Create a new scanner to read from standard input + scanner := bufio.NewScanner(os.Stdin) + + // Create var for string array with received data + var dataToParse []string + + // Read each line from stdin + for scanner.Scan() { + line := scanner.Text() + // Process the line (for example, print it) + dataToParse = append(dataToParse, line) + } + + // Check for errors during scanning + if err := scanner.Err(); err != nil { + fmt.Fprintln(os.Stderr, "Error reading from stdin:", err) + } + // for i := 0; i < len(dataToParse); i++ { + // fmt.Println(dataToParse[i]) + // } + ParseData(&dataToParse) +}