receive from enabled

master
Bel LaPointe 2022-01-11 09:42:42 -05:00
parent aef22d0a8b
commit 22b8e0fb70
3 changed files with 62 additions and 17 deletions

View File

@ -1,12 +1,14 @@
{
"Name": "pa",
"Interval": {
"OK": "6h0m0s",
"Error": "6h",
"Email": "15m"
"Email": "15m0s..15m0s",
"OK": "6h0m0s..6h0m0s",
"Error": "6h0m0s..6h0m0s"
},
"States": [
"GA"
"FL",
"GA",
"NC"
],
"Storage": [
"map"
@ -14,8 +16,9 @@
"Client": "breellocaldev@gmail.com",
"Message": {
"Matrix": {
"Mock": true,
"ReceiveEnabled": true,
"Client": "@belandbroc:matrix.org",
"Mock": true,
"Homeserver": "https://matrix-client.matrix.org",
"Username": "@breellocaldev:matrix.org",
"Token": "syt_YnJlZWxsb2NhbGRldg_HTewKMMePdEcLvceAKEz_2fHsHa",

View File

@ -21,6 +21,7 @@ type Config struct {
Client string
Message struct {
Matrix struct {
ReceiveEnabled bool
Client string
Mock bool
Homeserver string

41
main.go
View File

@ -23,6 +23,9 @@ func main() {
go func() {
for {
time.Sleep(config.Get().Interval.Email.Get())
if err := config.Refresh(); err != nil {
log.Println(err)
} else {
if config.Get().EmailerEnabled {
lock.Lock()
if err := email(); err != nil {
@ -30,6 +33,14 @@ func main() {
}
lock.Unlock()
}
if config.Get().Message.Matrix.ReceiveEnabled {
lock.Lock()
if err := matrixrecv(); err != nil {
log.Print(err)
}
lock.Unlock()
}
}
}
}()
if err := _main(); err != nil {
@ -38,6 +49,36 @@ func main() {
lock.Lock()
}
func matrixrecv() error {
log.Printf("checking matrix...")
defer log.Printf("/checking matrix...")
sender := message.NewMatrix()
messages, err := sender.Receive()
if err != nil {
return err
}
states := map[config.State]struct{}{}
for _, msg := range messages {
if len(states) > 0 {
continue
}
for _, state := range parseOutStates([]byte(msg)) {
states[state] = struct{}{}
}
}
if len(states) == 0 {
return nil
}
conf := *config.Get()
conf.States = []config.State{}
for k := range states {
conf.States = append(conf.States, k)
}
log.Printf("%+v, %+v", states, conf)
config.Set(conf)
return nil
}
func email() error {
log.Printf("checking email...")
ch, err := config.Get().Emailer.ReadIMAP()