add userlist/whois commands
This commit is contained in:
parent
246d2f12c8
commit
dd5fa7f900
48
NTFServer.go
48
NTFServer.go
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"html"
|
"html"
|
||||||
"log"
|
"log"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -542,6 +543,51 @@ func (this *NTFServer) HandleDirectMessage(update telegram.Update) error {
|
|||||||
return respond("You are either already joined (try /quit first), or not yet registered (try /join first).")
|
return respond("You are either already joined (try /quit first), or not yet registered (try /join first).")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if strings.HasPrefix(msg, "/userlist") {
|
||||||
|
conn, ok := this.conns[hubNick]
|
||||||
|
if !ok {
|
||||||
|
return respond("Can't get userlist for you (No upstream hub connection)")
|
||||||
|
}
|
||||||
|
|
||||||
|
usernames := make([]string, 0)
|
||||||
|
err := conn.Users(func(umap *map[string]libnmdc.UserInfo) error {
|
||||||
|
for k, _ := range *umap {
|
||||||
|
usernames = append(usernames, k)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error retrieving userlist: %s", err.Error())
|
||||||
|
return respond("Can't get userlist for you (internal error)")
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Strings(usernames)
|
||||||
|
return respond("Online users: " + strings.Join(usernames, " "))
|
||||||
|
|
||||||
|
} else if strings.HasPrefix(msg, "/whois ") {
|
||||||
|
target := msg[7:]
|
||||||
|
conn, ok := this.conns[hubNick]
|
||||||
|
if !ok {
|
||||||
|
return respond("Can't get user details for you (No upstream hub connection)")
|
||||||
|
}
|
||||||
|
|
||||||
|
var userinfo libnmdc.UserInfo
|
||||||
|
var exists bool
|
||||||
|
err := conn.Users(func(umap *map[string]libnmdc.UserInfo) error {
|
||||||
|
userinfo, exists = (*umap)[target]
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error retrieving userlist: %s", err.Error())
|
||||||
|
return respond("Can't get user details for you (internal error)")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !exists {
|
||||||
|
return respond(fmt.Sprintf("There is no online user '%s'.", target))
|
||||||
|
}
|
||||||
|
|
||||||
|
return respond(fmt.Sprintf("Description: %s\nShare size: %d\nClient: %s %s", userinfo.Description, userinfo.ShareSize, userinfo.ClientTag, userinfo.ClientVersion))
|
||||||
|
|
||||||
} else if strings.HasPrefix(msg, "/quit") {
|
} else if strings.HasPrefix(msg, "/quit") {
|
||||||
|
|
||||||
this.kickAndDrop(userID)
|
this.kickAndDrop(userID)
|
||||||
@ -568,6 +614,8 @@ Available commands:
|
|||||||
/join [hubnick] - Register as 'hubnick' and join ` + this.config.HubDescription + `
|
/join [hubnick] - Register as 'hubnick' and join ` + this.config.HubDescription + `
|
||||||
/rejoin - Re-invite if you are already registered
|
/rejoin - Re-invite if you are already registered
|
||||||
/pm [recipient] [message] - Send a native PM (if connected)
|
/pm [recipient] [message] - Send a native PM (if connected)
|
||||||
|
/userlist - List native online users
|
||||||
|
/whois [hubnick] - Check if native user is online, and read their description
|
||||||
/quit - Unregister your nick and leave the group chat
|
/quit - Unregister your nick and leave the group chat
|
||||||
`
|
`
|
||||||
|
|
||||||
|
@ -14,6 +14,13 @@ Written in Go
|
|||||||
Create a new telegram bot
|
Create a new telegram bot
|
||||||
- Use BotFather to create a new bot
|
- Use BotFather to create a new bot
|
||||||
- Use BotFather to disable its privacy mode for group chats
|
- Use BotFather to disable its privacy mode for group chats
|
||||||
|
- Use BotFather to add commands. Recommendation:
|
||||||
|
|
||||||
|
`
|
||||||
|
setup - List available commands
|
||||||
|
userlist - List native online users
|
||||||
|
quit - Leave the group chat
|
||||||
|
`
|
||||||
|
|
||||||
Create a telegram group
|
Create a telegram group
|
||||||
- Manually create a group chat and add the bot to it
|
- Manually create a group chat and add the bot to it
|
||||||
|
8
TODO.txt
8
TODO.txt
@ -32,9 +32,9 @@
|
|||||||
|
|
||||||
[ ] Editing Messages support
|
[ ] Editing Messages support
|
||||||
|
|
||||||
[ ] Extra DM commands
|
[X] Extra DM commands
|
||||||
[ ] Get native userlist
|
[X] Get native userlist
|
||||||
[ ] Check if native user is online
|
[X] Check if native user is online
|
||||||
[ ] Get native user description / sharesize / ...
|
[X] Get native user description / sharesize / ...
|
||||||
|
|
||||||
[ ] Publish
|
[ ] Publish
|
||||||
|
Loading…
Reference in New Issue
Block a user