Move mailboxes admin command to a separate file
This commit is contained in:
53
bot/admin_command.go
Normal file
53
bot/admin_command.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package bot
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"maunium.net/go/mautrix/id"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (b *Bot) sendMailboxes(ctx context.Context) {
|
||||||
|
evt := eventFromContext(ctx)
|
||||||
|
mailboxes := map[string]id.RoomID{}
|
||||||
|
b.rooms.Range(func(key any, value any) bool {
|
||||||
|
if key == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if value == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
mailbox, ok := key.(string)
|
||||||
|
if !ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
roomID, ok := value.(id.RoomID)
|
||||||
|
if !ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
mailboxes[mailbox] = roomID
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
|
||||||
|
if len(mailboxes) == 0 {
|
||||||
|
b.SendNotice(ctx, evt.RoomID, "No mailboxes are managed by the bot so far, kupo!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var msg strings.Builder
|
||||||
|
msg.WriteString("The following mailboxes are managed by the bot:\n")
|
||||||
|
for mailbox, roomID := range mailboxes {
|
||||||
|
msg.WriteString("* `")
|
||||||
|
msg.WriteString(mailbox)
|
||||||
|
msg.WriteString("@")
|
||||||
|
msg.WriteString(b.domain)
|
||||||
|
msg.WriteString("` - `")
|
||||||
|
msg.WriteString(roomID.String())
|
||||||
|
msg.WriteString("`")
|
||||||
|
msg.WriteString("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
b.SendNotice(ctx, evt.RoomID, msg.String())
|
||||||
|
}
|
||||||
@@ -224,51 +224,6 @@ func (b *Bot) sendHelp(ctx context.Context, roomID id.RoomID) {
|
|||||||
b.SendNotice(ctx, roomID, msg.String())
|
b.SendNotice(ctx, roomID, msg.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bot) sendMailboxes(ctx context.Context) {
|
|
||||||
evt := eventFromContext(ctx)
|
|
||||||
mailboxes := map[string]id.RoomID{}
|
|
||||||
b.rooms.Range(func(key any, value any) bool {
|
|
||||||
if key == nil {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if value == nil {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
mailbox, ok := key.(string)
|
|
||||||
if !ok {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
roomID, ok := value.(id.RoomID)
|
|
||||||
if !ok {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
mailboxes[mailbox] = roomID
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
|
|
||||||
if len(mailboxes) == 0 {
|
|
||||||
b.SendNotice(ctx, evt.RoomID, "No mailboxes are managed by the bot so far, kupo!")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var msg strings.Builder
|
|
||||||
msg.WriteString("The following mailboxes are managed by the bot:\n")
|
|
||||||
for mailbox, roomID := range mailboxes {
|
|
||||||
msg.WriteString("* `")
|
|
||||||
msg.WriteString(mailbox)
|
|
||||||
msg.WriteString("@")
|
|
||||||
msg.WriteString(b.domain)
|
|
||||||
msg.WriteString("` - `")
|
|
||||||
msg.WriteString(roomID.String())
|
|
||||||
msg.WriteString("`")
|
|
||||||
msg.WriteString("\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
b.SendNotice(ctx, evt.RoomID, msg.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *Bot) runStop(ctx context.Context) {
|
func (b *Bot) runStop(ctx context.Context) {
|
||||||
evt := eventFromContext(ctx)
|
evt := eventFromContext(ctx)
|
||||||
cfg, err := b.getSettings(evt.RoomID)
|
cfg, err := b.getSettings(evt.RoomID)
|
||||||
|
|||||||
Reference in New Issue
Block a user