/d / /s / /search commands refactoring
This commit is contained in:
parent
570601d1b8
commit
ee6653c0c6
|
@ -328,7 +328,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
|
||||
cmd, args := parseCommand(cmdline)
|
||||
switch cmd {
|
||||
// delete last message(s)
|
||||
// delete message
|
||||
case "d":
|
||||
if c.me == nil {
|
||||
return "@me is not initialized", true
|
||||
|
@ -345,12 +345,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
limit = 1
|
||||
}
|
||||
|
||||
messages, err := c.client.SearchChatMessages(&client.SearchChatMessagesRequest{
|
||||
ChatID: chatID,
|
||||
Limit: limit,
|
||||
Sender: &client.MessageSenderUser{UserID: c.me.ID},
|
||||
Filter: &client.SearchMessagesFilterEmpty{},
|
||||
})
|
||||
messages, err := c.getLastMessages(chatID, "", c.me.ID, limit)
|
||||
if err != nil {
|
||||
return err.Error(), true
|
||||
}
|
||||
|
@ -371,7 +366,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
if err != nil {
|
||||
return err.Error(), true
|
||||
}
|
||||
// edit last message
|
||||
// edit message
|
||||
case "s":
|
||||
if c.me == nil {
|
||||
return "@me is not initialized", true
|
||||
|
@ -384,12 +379,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
return err.Error(), true
|
||||
}
|
||||
|
||||
messages, err := c.client.SearchChatMessages(&client.SearchChatMessagesRequest{
|
||||
ChatID: chatID,
|
||||
Limit: 1,
|
||||
Sender: &client.MessageSenderUser{UserID: c.me.ID},
|
||||
Filter: &client.SearchMessagesFilterEmpty{},
|
||||
})
|
||||
messages, err := c.getLastMessages(chatID, "", c.me.ID, 1)
|
||||
if err != nil {
|
||||
return err.Error(), true
|
||||
}
|
||||
|
@ -640,7 +630,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
}
|
||||
|
||||
c.unsubscribe(chatID)
|
||||
// search messages within current chat
|
||||
// message search
|
||||
case "search":
|
||||
var limit int32 = 10
|
||||
if len(args) > 1 {
|
||||
|
@ -655,12 +645,7 @@ func (c *Client) ProcessChatCommand(chatID int64, cmdline string) (string, bool)
|
|||
query = args[0]
|
||||
}
|
||||
|
||||
messages, err := c.client.SearchChatMessages(&client.SearchChatMessagesRequest{
|
||||
ChatID: chatID,
|
||||
Query: query,
|
||||
Limit: limit,
|
||||
Filter: &client.SearchMessagesFilterEmpty{},
|
||||
})
|
||||
messages, err := c.getLastMessages(chatID, query, 0, limit)
|
||||
if err != nil {
|
||||
return err.Error(), true
|
||||
}
|
||||
|
|
|
@ -616,3 +616,13 @@ func (c *Client) roster(resource string) {
|
|||
|
||||
c.addResource(resource)
|
||||
}
|
||||
|
||||
func (c *Client) getLastMessages(id int64, query string, from int64, count int32) (*client.Messages, error) {
|
||||
return c.client.SearchChatMessages(&client.SearchChatMessagesRequest{
|
||||
ChatID: id,
|
||||
Query: query,
|
||||
Sender: &client.MessageSenderUser{UserID: from},
|
||||
Filter: &client.SearchMessagesFilterEmpty{},
|
||||
Limit: count,
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue