Вывод присылаемых сообщений клиенту на консоли
Сайт использует matrix и на вход нужно использовать логин, пароль и url сайта. Возникает ошибка client.Events и mautrix.EventTypeRoomMessage undefined. Вопрос можно ли как то сделать вывод сообщений в консоли go. Код ниже.
import (
"bufio"
"fmt"
"log"
"os"
"strings"
//"time"
mautrix "maunium.net/go/mautrix"
//maevent "maunium.net/go/mautrix/event"
//"github.com/google/uuid"
)
func main() {
reader := bufio.NewReader(os.Stdin)
// Read the username
fmt.Print("Enter username: ")
username, _ := reader.ReadString('\n')
username = strings.TrimSpace(username)
// Read the password
fmt.Print("Enter password: ")
password, _ := reader.ReadString('\n')
password = strings.TrimSpace(password)
// Read the homeserver URL
fmt.Print("Enter homeserver URL: ")
homeserverURL, _ := reader.ReadString('\n')
homeserverURL = strings.TrimSpace(homeserverURL)
// Create a new client
client, err := mautrix.NewClient(homeserverURL, "", "")
if err != nil {
log.Fatal(err)
}
// Login
_, err = client.Login(&mautrix.ReqLogin{
Type: "m.login.password",
Identifier: mautrix.UserIdentifier{Type: "m.id.user", User: username},
Password: password,
Token: "",
DeviceID: "",
InitialDeviceDisplayName: "",
StoreCredentials: false,
StoreHomeserverURL: false,
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Successful login!")
// Start message synchronization
err = client.Sync()
if err != nil {
log.Fatal(err)
}
// Handle incoming events
for event := range client.Events {
if event.Type() == mautrix.EventTypeRoomMessage {
// Process the incoming message
messageEvent := event.RoomMessage()
// Extract message details
sender := messageEvent.Sender
content := messageEvent.Content.Body
// Print the message to the console
fmt.Printf("New message from %s: %s\n", sender, content)
}
}
}