awl-ntfy/main.go

74 lines
1.5 KiB
Go
Raw Normal View History

2025-07-01 22:40:05 +02:00
package main
import (
2025-08-23 23:00:46 +02:00
"encoding/json"
2025-07-01 22:40:05 +02:00
"fmt"
"os"
2025-08-23 22:49:22 +02:00
"strings"
2025-07-01 22:40:05 +02:00
arg "github.com/alexflint/go-arg"
)
func main() {
var args struct {
Street string `arg:"positional,required"`
Home int `arg:"positional,required"`
2025-08-12 11:16:40 +02:00
Pink bool `arg:"--pink"`
Yellow bool `arg:"--yellow"`
Blue bool `arg:"--blue"`
Gray bool `arg:"--gray"`
Brown bool `arg:"--brown"`
2025-08-23 23:00:46 +02:00
List bool `arg:"--list"`
2025-07-01 22:40:05 +02:00
}
parser, err := arg.NewParser(arg.Config{}, &args)
if err != nil {
fmt.Println(err)
return
}
parser.MustParse(os.Args[1:])
2025-08-12 11:16:40 +02:00
if !(args.Pink || args.Yellow || args.Blue || args.Gray || args.Brown) {
args.Pink, args.Yellow, args.Blue, args.Gray, args.Brown = true, true, true, true, true
}
2025-08-23 22:49:22 +02:00
replacer := strings.NewReplacer("ö", "oe", "ä", "ae", "ü", "ue", "ß", "ss")
2025-07-07 18:01:22 +02:00
NotifyChannel = fmt.Sprintf("%s-%d", args.Street, args.Home)
2025-08-23 22:49:22 +02:00
NotifyChannel = replacer.Replace(NotifyChannel)
2025-07-07 18:01:22 +02:00
2025-07-01 22:40:05 +02:00
streetNumbers, err := GetStreetNumbers()
if err != nil {
2025-07-07 18:01:22 +02:00
_ = SendErr(err)
2025-07-01 22:40:05 +02:00
return
}
2025-08-23 23:00:46 +02:00
if args.List {
content, err := json.Marshal(streetNumbers)
if err == nil {
fmt.Println(string(content))
}
return
}
2025-07-01 22:40:05 +02:00
streetNumber, ok := streetNumbers[args.Street]
if !ok {
fmt.Println("street could not be found:", args.Street)
}
tomorrow, err := AwlTomorrow(streetNumber, args.Home)
if err != nil {
2025-07-07 18:01:22 +02:00
_ = SendErr(err)
2025-07-01 22:40:05 +02:00
return
}
if len(tomorrow) == 0 {
return
}
2025-08-12 11:16:40 +02:00
err = SendAwlNotification(tomorrow, args.Pink, args.Yellow, args.Blue, args.Gray, args.Brown)
2025-07-01 22:40:05 +02:00
if err != nil {
2025-07-07 18:01:22 +02:00
_ = SendErr(err)
2025-07-01 22:40:05 +02:00
return
}
}