diff --git a/notification/ntfy.go b/notification/ntfy.go index 91a5a55..3f1b2ef 100644 --- a/notification/ntfy.go +++ b/notification/ntfy.go @@ -44,8 +44,6 @@ func (ntfy NTFY) Send(uuid string, msg []byte) (err error) { ackURL := fmt.Sprintf("http, OK, %s/notification/ack?uuid=%s", ntfy.AcknowledgeURL, uuid) req.Header.Add("X-Actions", ackURL) - req.Header.Add("X-Priority", "5") - req.Header.Add("X-Tags", "calendar") res, err = http.DefaultClient.Do(req) if err != nil { diff --git a/schedule.go b/schedule.go index 27c16db..a09c41a 100644 --- a/schedule.go +++ b/schedule.go @@ -8,7 +8,6 @@ import ( "encoding/json" "fmt" "regexp" - "strconv" "strings" "time" ) @@ -18,20 +17,19 @@ func init() { } type Schedule struct { - ID int - UserID int `json:"user_id" db:"user_id"` - Node Node - ScheduleUUID string `db:"schedule_uuid"` - Time time.Time - RemindMinutes int `db:"remind_minutes"` - Description string - Acknowledged bool + ID int + UserID int `json:"user_id" db:"user_id"` + Node Node + ScheduleUUID string `db:"schedule_uuid"` + Time time.Time + Description string + Acknowledged bool } -func ScanForSchedules(timeOffset int, content string) (schedules []Schedule) { // {{{ +func ScanForSchedules(timeOffset int, content string) (schedules []Schedule) {// {{{ schedules = []Schedule{} - rxp := regexp.MustCompile(`\{\s*([0-9]{4}-[0-9]{2}-[0-9]{2}\s+[0-9]{2}:[0-9]{2}(?::[0-9]{2})?)\s*\,\s*(?:(\d+)\s*(h|min)\s*,)?\s*([^\]]+?)\s*\}`) + rxp := regexp.MustCompile(`\{\s*([0-9]{4}-[0-9]{2}-[0-9]{2}\s+[0-9]{2}:[0-9]{2}(?::[0-9]{2})?)\s*\,\s*([^\]]+?)\s*\}`) foundSchedules := rxp.FindAllStringSubmatch(content, -1) for _, data := range foundSchedules { @@ -40,7 +38,6 @@ func ScanForSchedules(timeOffset int, content string) (schedules []Schedule) { / data[1] = data[1] + ":00" } - // Timezone calculations var timeTZ string if timeOffset < 0 { hours := (-timeOffset) / 60 @@ -57,30 +54,16 @@ func ScanForSchedules(timeOffset int, content string) (schedules []Schedule) { / continue } - // Reminder - var remindMinutes int - if data[2] != "" && data[3] != "" { - value, _ := strconv.Atoi(data[2]) - unit := strings.ToLower(data[3]) - switch unit { - case "min": - remindMinutes = value - case "h": - remindMinutes = value * 60 - } - } - schedule := Schedule{ - Time: timestamp, - RemindMinutes: remindMinutes, - Description: data[4], + Time: timestamp, + Description: data[2], } schedules = append(schedules, schedule) } return -} // }}} -func RetrieveSchedules(userID int, nodeID int) (schedules []Schedule, err error) { // {{{ +}// }}} +func RetrieveSchedules(userID int, nodeID int) (schedules []Schedule, err error) {// {{{ schedules = []Schedule{} res := service.Db.Conn.QueryRow(` @@ -90,7 +73,7 @@ func RetrieveSchedules(userID int, nodeID int) (schedules []Schedule, err error) user_id, json_build_object('id', node_id) AS node, schedule_uuid, - time - MAKE_INTERVAL(mins => remind_minutes) AS time, + time, description, acknowledged FROM schedule @@ -117,30 +100,29 @@ func RetrieveSchedules(userID int, nodeID int) (schedules []Schedule, err error) err = json.Unmarshal(data, &schedules) return -} // }}} +}// }}} -func (a Schedule) IsEqual(b Schedule) bool { // {{{ +func (a Schedule) IsEqual(b Schedule) bool {// {{{ return a.UserID == b.UserID && a.Node.ID == b.Node.ID && a.Time.Equal(b.Time) && a.Description == b.Description -} // }}} -func (s *Schedule) Insert(queryable Queryable) error { // {{{ +}// }}} +func (s *Schedule) Insert(queryable Queryable) error {// {{{ res := queryable.QueryRow(` - INSERT INTO schedule(user_id, node_id, time, remind_minutes, description) - VALUES($1, $2, $3, $4, $5) + INSERT INTO schedule(user_id, node_id, time, description) + VALUES($1, $2, $3, $4) RETURNING id `, s.UserID, s.Node.ID, s.Time, - s.RemindMinutes, s.Description, ) return res.Scan(&s.ID) -} // }}} -func (s *Schedule) Delete(queryable Queryable) error { // {{{ +}// }}} +func (s *Schedule) Delete(queryable Queryable) error {// {{{ _, err := queryable.Exec(` DELETE FROM schedule WHERE @@ -151,9 +133,9 @@ func (s *Schedule) Delete(queryable Queryable) error { // {{{ s.ID, ) return err -} // }}} +}// }}} -func ExpiredSchedules() (schedules []Schedule) { // {{{ +func ExpiredSchedules() (schedules []Schedule) {// {{{ schedules = []Schedule{} res, err := service.Db.Conn.Queryx(` @@ -162,11 +144,11 @@ func ExpiredSchedules() (schedules []Schedule) { // {{{ user_id, node_id, schedule_uuid, - time - MAKE_INTERVAL(mins => remind_minutes) AS time, + time, description FROM schedule WHERE - (time - MAKE_INTERVAL(mins => remind_minutes)) < NOW() AND + time < NOW() AND NOT acknowledged ORDER BY time ASC @@ -186,4 +168,4 @@ func ExpiredSchedules() (schedules []Schedule) { // {{{ schedules = append(schedules, s) } return -} // }}} +}// }}} diff --git a/sql/00019.sql b/sql/00019.sql deleted file mode 100644 index 6b170a3..0000000 --- a/sql/00019.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE public.schedule ADD COLUMN remind_minutes int NOT NULL DEFAULT 0; diff --git a/version b/version index a682cfb..54c6511 100644 --- a/version +++ b/version @@ -1 +1 @@ -v25 +v24