move gotd fork into repo. (#111)

- update to latest telegram layer
- remove some references to fields in tg.Entities that don't exist in
the schema
- originally added here:
https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e
  - referenced here
-
https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3
-
https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
This commit is contained in:
Adam Van Ymeren
2025-06-27 20:03:37 -07:00
committed by GitHub
parent 0952df0244
commit 7a04f298d2
19264 changed files with 1539697 additions and 84 deletions
+70
View File
@@ -0,0 +1,70 @@
package message
import (
"context"
"github.com/go-faster/errors"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
// ForwardBuilder is a forward request builder.
type ForwardBuilder struct {
builder *Builder
from tg.InputPeerClass
ids []int
withMyScore bool
}
// WithMyScore sets flag to include your score in the forwarded game.
func (b *ForwardBuilder) WithMyScore() *ForwardBuilder {
b.withMyScore = true
return b
}
// Send sends forwarded messages.
func (b *ForwardBuilder) Send(ctx context.Context) (tg.UpdatesClass, error) {
p, err := b.builder.peer(ctx)
if err != nil {
return nil, errors.Wrap(err, "peer")
}
upd, err := b.builder.sender.forwardMessages(ctx, &tg.MessagesForwardMessagesRequest{
Silent: b.builder.silent,
Background: b.builder.background,
WithMyScore: b.withMyScore,
FromPeer: b.from,
ID: b.ids,
ToPeer: p,
ScheduleDate: b.builder.scheduleDate,
})
if err != nil {
return nil, errors.Wrap(err, "send inline bot result")
}
return upd, nil
}
// ForwardIDs creates builder to forward messages by ID.
func (b *Builder) ForwardIDs(from tg.InputPeerClass, id int, ids ...int) *ForwardBuilder {
return &ForwardBuilder{
builder: b,
from: from,
ids: append([]int{id}, ids...),
}
}
// ForwardMessages creates builder to forward messages.
func (b *Builder) ForwardMessages(from tg.InputPeerClass, msg tg.MessageClass, m ...tg.MessageClass) *ForwardBuilder {
r := make([]int, 1+len(m))
r[0] = msg.GetID()
for i := range m {
r[i+1] = m[i].GetID()
}
return &ForwardBuilder{
builder: b,
from: from,
ids: r,
}
}