Matrix: join room, send dummy message
This commit is contained in:
parent
ce8691e8c0
commit
b3074bee04
1 changed files with 42 additions and 6 deletions
48
main.go
48
main.go
|
@ -6,9 +6,15 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"io/ioutil"
|
||||||
|
"encoding/json"
|
||||||
"github.com/matrix-org/gomatrix"
|
"github.com/matrix-org/gomatrix"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Alert struct {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Initialize logger.
|
// Initialize logger.
|
||||||
var logger *log.Logger = log.New(os.Stdout, "", log.Flags())
|
var logger *log.Logger = log.New(os.Stdout, "", log.Flags())
|
||||||
|
@ -37,14 +43,26 @@ func main() {
|
||||||
logger.Fatalf("Could not log in to Matrix (%v): %v", *homeserver, err)
|
logger.Fatalf("Could not log in to Matrix (%v): %v", *homeserver, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
joinedRooms, err := matrixClient.JoinedRooms()
|
||||||
logger.Printf("Syncing with Matrix homserver (%v)", *homeserver)
|
|
||||||
err = matrixClient.Sync()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatalf("Could not sync with Matrix homeserver (%v): %v", *homeserver, err)
|
logger.Fatalf("Could not fetch joined rooms: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
alreadyJoinedTarget := false
|
||||||
|
for _, roomID := range joinedRooms.JoinedRooms {
|
||||||
|
// FIXME: will only work if target is a roomID, not an alias.
|
||||||
|
if *target == roomID {
|
||||||
|
alreadyJoinedTarget = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !alreadyJoinedTarget {
|
||||||
|
logger.Printf("Trying to join %v...", *target)
|
||||||
|
_, err := matrixClient.JoinRoom(*target, "", nil)
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatalf("Failed to join %v: %v", *target, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
_ = matrixClient
|
|
||||||
|
|
||||||
// Initialize HTTP serve (= listen for incoming requests).
|
// Initialize HTTP serve (= listen for incoming requests).
|
||||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@ -54,6 +72,24 @@ You will find more details on: http://git.sr.ht/~fnux/matrix-prometheus-alertman
|
||||||
})
|
})
|
||||||
|
|
||||||
http.HandleFunc("/alert", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/alert", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if r.Method != http.MethodPost {
|
||||||
|
w.WriteHeader(http.StatusMethodNotAllowed)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var alert Alert
|
||||||
|
reqBody, _ := ioutil.ReadAll(r.Body)
|
||||||
|
json.Unmarshal(reqBody, &alert)
|
||||||
|
|
||||||
|
// Check validity
|
||||||
|
|
||||||
|
logger.Printf("Sending message")
|
||||||
|
_, err := matrixClient.SendText(*target, "spouik spouik spouik")
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatalf("Failed to send message: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
})
|
})
|
||||||
|
|
||||||
var listenAddr = fmt.Sprintf(":%v", *port)
|
var listenAddr = fmt.Sprintf(":%v", *port)
|
||||||
|
|
Loading…
Reference in a new issue