super basic

This commit is contained in:
Karmanyaah Malhotra
2021-02-21 00:58:50 -05:00
parent eafc18099d
commit 7cb9983da8
17 changed files with 965 additions and 926 deletions

52
groupmeExt/client.go Normal file
View File

@ -0,0 +1,52 @@
package groupmeExt
import (
"context"
"fmt"
"github.com/karmanyaahm/groupme"
)
type Client struct {
*groupme.Client
}
// NewClient creates a new GroupMe API Client
func NewClient(authToken string) *Client {
n := Client{
Client: groupme.NewClient(authToken),
}
return &n
}
func (c Client) IndexAllGroups() ([]*groupme.Group, error) {
return c.IndexGroups(context.TODO(), &groupme.GroupsQuery{
Omit: "memberships",
PerPage: 100, //TODO: Configurable and add multipage support
})
}
func (c Client) LoadMessagesAfter(groupID, lastMessageID string, lastMessageFromMe bool, num int) ([]*groupme.Message, error) {
//TODO: limit max 100
i, e := c.IndexMessages(context.TODO(), groupme.ID(groupID), &groupme.IndexMessagesQuery{
AfterID: groupme.ID(lastMessageID),
Limit: num,
})
if e != nil {
return nil, e
}
return i.Messages, nil
}
func (c Client) LoadMessagesBefore(groupID, lastMessageID string, num int) ([]*groupme.Message, error) {
//TODO: limit max 100
i, e := c.IndexMessages(context.TODO(), groupme.ID(groupID), &groupme.IndexMessagesQuery{
BeforeID: groupme.ID(lastMessageID),
Limit: num,
})
fmt.Println(groupID, lastMessageID, num, i.Count, e)
if e != nil {
return nil, e
}
return i.Messages, nil
}

33
groupmeExt/message.go Normal file
View File

@ -0,0 +1,33 @@
package groupmeExt
import (
"database/sql/driver"
"encoding/json"
"errors"
"fmt"
"github.com/karmanyaahm/groupme"
)
type Message struct{ groupme.Message }
func (m *Message) Scan(value interface{}) error {
bytes, ok := value.([]byte)
if !ok {
return errors.New(fmt.Sprint("Failed to unmarshal JSONB value:", value))
}
message := Message{}
err := json.Unmarshal(bytes, &message)
*m = Message(message)
return err
}
func (m *Message) Value() (driver.Value, error) {
e, err := json.Marshal(m)
if err != nil {
return nil, err
}
return e, nil
}

6
groupmeExt/user.go Normal file
View File

@ -0,0 +1,6 @@
package groupmeExt
const (
OldUserSuffix = "@c.groupme.com"
NewUserSuffix = "@groupme.com"
)