53 lines
1016 B
Go
53 lines
1016 B
Go
package laniakea
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
|
|
"git.nix13.pw/scuroneko/laniakea/tgapi"
|
|
)
|
|
|
|
func (b *Bot) Updates() ([]*tgapi.Update, error) {
|
|
offset := b.GetUpdateOffset()
|
|
params := tgapi.UpdateParams{
|
|
Offset: offset,
|
|
Timeout: 30,
|
|
AllowedUpdates: b.GetUpdateTypes(),
|
|
}
|
|
|
|
req := tgapi.NewRequest[[]*tgapi.Update]("getUpdates", params)
|
|
res, err := req.Do(b.api)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
for _, u := range *res {
|
|
b.SetUpdateOffset(u.UpdateID + 1)
|
|
err = b.GetQueue().Enqueue(u)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if b.RequestLogger != nil {
|
|
j, err := json.Marshal(u)
|
|
if err != nil {
|
|
b.Logger().Error(err)
|
|
}
|
|
b.RequestLogger.Debugf("UPDATE %s\n", j)
|
|
}
|
|
}
|
|
return *res, err
|
|
}
|
|
|
|
func (b *Bot) GetFileByLink(link string) ([]byte, error) {
|
|
u := fmt.Sprintf("https://api.telegram.org/file/bot%s/%s", b.token, link)
|
|
res, err := http.Get(u)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer res.Body.Close()
|
|
return io.ReadAll(res.Body)
|
|
}
|