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
+1 -1
View File
@@ -20,7 +20,7 @@ import (
"context"
"fmt"
"github.com/gotd/td/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
type hasUserUpdates interface {
+3 -2
View File
@@ -23,13 +23,14 @@ import (
"sync"
"time"
"github.com/gotd/td/tg"
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/database"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+2 -1
View File
@@ -23,7 +23,6 @@ import (
"slices"
"time"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"go.mau.fi/util/ptr"
"maunium.net/go/mautrix/bridgev2"
@@ -31,6 +30,8 @@ import (
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/event"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+5 -4
View File
@@ -29,10 +29,6 @@ import (
"syscall"
"time"
"github.com/gotd/td/telegram"
"github.com/gotd/td/telegram/auth"
"github.com/gotd/td/telegram/updates"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"go.mau.fi/util/exsync"
"go.mau.fi/zerozap"
@@ -45,6 +41,11 @@ import (
"maunium.net/go/mautrix/bridgev2/status"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/auth"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/updates"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/humanise"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/matrixfmt"
+2 -1
View File
@@ -20,8 +20,9 @@ import (
"slices"
"sync"
"github.com/gotd/td/tg"
"maunium.net/go/mautrix/bridgev2/commands"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
var cmdSync = &commands.FullHandler{
+2 -1
View File
@@ -21,13 +21,14 @@ import (
"fmt"
"io"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"maunium.net/go/mautrix"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/mediaproxy"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/media"
)
+1 -1
View File
@@ -1,6 +1,6 @@
package humanise
import "github.com/gotd/td/tgerr"
import "go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
func Error(err error) string {
switch {
+2 -1
View File
@@ -17,9 +17,10 @@
package connector
import (
"github.com/gotd/td/tg"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+2 -1
View File
@@ -21,8 +21,9 @@ import (
"strconv"
"strings"
"github.com/gotd/td/tg"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
func MakeUserID(userID int64) networkid.UserID {
+2 -1
View File
@@ -21,11 +21,12 @@ import (
"fmt"
"strings"
"github.com/gotd/td/tg"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/database"
"maunium.net/go/mautrix/bridgev2/status"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/util"
)
+4 -3
View File
@@ -22,13 +22,14 @@ import (
"fmt"
"time"
"github.com/gotd/td/telegram"
"github.com/gotd/td/telegram/auth"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"go.mau.fi/zerozap"
"go.uber.org/zap"
"maunium.net/go/mautrix/bridgev2"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/auth"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
const (
+6 -5
View File
@@ -22,15 +22,16 @@ import (
"fmt"
"time"
"github.com/gotd/td/telegram"
"github.com/gotd/td/telegram/auth/qrlogin"
"github.com/gotd/td/telegram/updates"
"github.com/gotd/td/tg"
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"go.mau.fi/zerozap"
"go.uber.org/zap"
"maunium.net/go/mautrix/bridgev2"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/auth/qrlogin"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/updates"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
type qrAuthResult struct {
+4 -3
View File
@@ -32,9 +32,6 @@ import (
"sync"
"time"
"github.com/gotd/td/telegram/message"
"github.com/gotd/td/telegram/uploader"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"go.mau.fi/util/ffmpeg"
"go.mau.fi/util/variationselector"
@@ -45,6 +42,10 @@ import (
"maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/message"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/uploader"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/emojis"
"go.mau.fi/mautrix-telegram/pkg/connector/humanise"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
+2 -1
View File
@@ -20,9 +20,10 @@ import (
"context"
"fmt"
"github.com/gotd/td/tg"
"maunium.net/go/mautrix/event"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/telegramfmt"
)
+3 -2
View File
@@ -23,13 +23,14 @@ import (
"io"
"net/http"
"github.com/gotd/td/telegram/downloader"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/downloader"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/util/gnuzip"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
+3 -2
View File
@@ -19,11 +19,12 @@ package connector
import (
"context"
"github.com/gotd/td/crypto"
"github.com/gotd/td/session"
"maunium.net/go/mautrix/bridgev2/database"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/crypto"
"go.mau.fi/mautrix-telegram/pkg/gotd/session"
)
func (tg *TelegramConnector) GetDBMetaTypes() database.MetaTypes {
+4 -3
View File
@@ -26,9 +26,6 @@ import (
"strings"
"time"
"github.com/gotd/td/bin"
"github.com/gotd/td/crypto"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"github.com/tidwall/gjson"
"go.mau.fi/util/exslices"
@@ -36,6 +33,10 @@ import (
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/crypto"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+2 -1
View File
@@ -21,12 +21,13 @@ import (
"fmt"
"time"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/bridgev2/simplevent"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/emojis"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+6 -3
View File
@@ -23,12 +23,13 @@ import (
"strconv"
"strings"
"github.com/gotd/td/telegram/query/hasher"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/query/hasher"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
@@ -114,7 +115,9 @@ func (t *TelegramClient) ResolveIdentifier(ctx context.Context, identifier strin
// We don't know this username, try to resolve the username from
// Telegram.
resolved, err := APICallWithUpdates(ctx, t, func() (*tg.ContactsResolvedPeer, error) {
return t.client.API().ContactsResolveUsername(ctx, match[1])
return t.client.API().ContactsResolveUsername(ctx, &tg.ContactsResolveUsernameRequest{
Username: match[1],
})
})
if err != nil {
if tg.IsUsernameNotOccupied(err) {
+2 -1
View File
@@ -23,9 +23,10 @@ import (
"fmt"
"strings"
"github.com/gotd/td/telegram/updates"
"go.mau.fi/util/dbutil"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/updates"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+2 -1
View File
@@ -22,7 +22,6 @@ import (
"math"
"time"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"go.mau.fi/util/ptr"
"maunium.net/go/mautrix/bridgev2"
@@ -31,6 +30,8 @@ import (
"maunium.net/go/mautrix/bridgev2/simplevent"
"maunium.net/go/mautrix/event"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+6 -18
View File
@@ -1,4 +1,4 @@
// mautrix-telegram - A Matrix-Telegram puppeting bridge.
// mautrix - A Matrix-Telegram puppeting bridge.
// Copyright (C) 2025 Sumner Evans
//
// This program is free software: you can redistribute it and/or modify
@@ -25,8 +25,6 @@ import (
"strings"
"time"
"github.com/gotd/td/tg"
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"go.mau.fi/util/exfmt"
"go.mau.fi/util/ptr"
@@ -38,6 +36,9 @@ import (
"maunium.net/go/mautrix/bridgev2/status"
"maunium.net/go/mautrix/event"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
"go.mau.fi/mautrix-telegram/pkg/connector/emojis"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/media"
@@ -116,10 +117,7 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, entities tg.Ent
switch peer := msg.PeerID.(type) {
case *tg.PeerChannel:
log := log.With().Int64("channel_id", peer.ChannelID).Logger()
if _, ok := entities.ChannelsForbidden[peer.ChannelID]; ok {
log.Debug().Msg("Received message in forbidden channel, ignoring")
return nil
} else if c, ok := entities.Channels[peer.ChannelID]; ok && c.Left {
if c, ok := entities.Channels[peer.ChannelID]; ok && c.Left {
log.Debug().Msg("Received message in left channel, ignoring")
return nil
} else if ok && !c.GetMegagroup() {
@@ -127,10 +125,7 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, entities tg.Ent
}
case *tg.PeerChat:
log := log.With().Int64("chat_id", peer.ChatID).Logger()
if _, ok := entities.ChatsForbidden[peer.ChatID]; ok {
log.Debug().Msg("Received message in forbidden chat, ignoring")
return nil
} else if c, ok := entities.Chats[peer.ChatID]; ok && c.Left {
if c, ok := entities.Chats[peer.ChatID]; ok && c.Left {
log.Debug().Msg("Received message in left chat, ignoring")
return nil
}
@@ -803,9 +798,6 @@ func (t *TelegramClient) onEntityUpdate(ctx context.Context, e tg.Entities) erro
return err
}
}
for channelID := range e.ChannelsForbidden {
t.selfLeaveChat(t.makePortalKeyFromID(ids.PeerTypeChannel, channelID))
}
return nil
}
@@ -1261,10 +1253,6 @@ func (t *TelegramClient) onPeerBlocked(ctx context.Context, e tg.Entities, updat
}
func (t *TelegramClient) onChat(ctx context.Context, e tg.Entities, update *tg.UpdateChat) error {
if _, ok := e.ChatsForbidden[update.ChatID]; ok {
// The chat is now forbidden, we should leave it.
t.selfLeaveChat(t.makePortalKeyFromID(ids.PeerTypeChat, update.ChatID))
}
return nil
}
+2 -1
View File
@@ -20,13 +20,14 @@ import (
"context"
"html"
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"golang.org/x/exp/maps"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/emojis"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
)
+2 -1
View File
@@ -21,12 +21,13 @@ import (
"fmt"
"testing"
"github.com/gotd/td/tg"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/connector/telegramfmt"
)
+1 -1
View File
@@ -19,7 +19,7 @@ package tljson
import (
"fmt"
"github.com/gotd/td/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
func Parse(v tg.JSONValueClass) (out any, err error) {
+3 -2
View File
@@ -25,8 +25,6 @@ import (
"strings"
"time"
"github.com/gotd/td/tg"
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"go.mau.fi/util/exmime"
"go.mau.fi/util/ptr"
@@ -36,6 +34,9 @@ import (
"maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
"go.mau.fi/mautrix-telegram/pkg/connector/media"
"go.mau.fi/mautrix-telegram/pkg/connector/telegramfmt"
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Aleksandr Razumov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+26
View File
@@ -0,0 +1,26 @@
generate:
go generate
go generate ./...
.PHONY: generate
download_schema:
go run ./cmd/dltl -base https://raw.githubusercontent.com/tdlib/td -branch master -dir td/generate/scheme -f telegram_api.tl -o _schema/tdlib.tl
go run ./cmd/dltl -base https://raw.githubusercontent.com/telegramdesktop/tdesktop -branch dev -dir Telegram/SourceFiles/mtproto/scheme -f api.tl -o _schema/tdesktop.tl
go run ./cmd/dltl -base https://raw.githubusercontent.com/telegramdesktop/tdesktop -branch dev -dir Telegram/SourceFiles/mtproto/scheme -f api.tl -merge _schema/legacy.tl -o _schema/telegram.tl
.PHONY: download_schema
download_public_keys:
go run ./cmd/dlkey -o internal/mtproto/_data/public_keys.pem
.PHONY: download_public_keys
download_e2e_schema:
go run ./cmd/dltl -f secret_api.tl -o _schema/encrypted.tl
.PHONY: download_e2e_schema
download_tdlib_schema:
go run ./cmd/dltl -f td_api.tl -o _schema/tdapi.tl
.PHONY: download_tdlib_schema
check_generated: generate
git diff --exit-code
.PHONY: check_generated
+1
View File
@@ -0,0 +1 @@
forked from github.com/beeper/td which is forked from github.com/gotd/td
@@ -0,0 +1 @@
!R
@@ -0,0 +1 @@
@@ -0,0 +1 @@
@@ -0,0 +1 @@
@@ -0,0 +1,8 @@
@B®tĵå7îl†2åݽ
B®rĵ@½O®îl†2åݽ
l†tĵe½O®îl†2åݽ
l†tĵenO®îl†2åݽ
l†tĵe½O®îl†2åݽ
B®rĵ@½O®îl†2åݽ
l†tĵe½O®îl†2åݽ
l†t
@@ -0,0 +1 @@
'iH\oヨ
@@ -0,0 +1 @@
cwΥ¦Δµr’O®»εΠΊ8+g
@@ -0,0 +1 @@
@B®tĵ—é iÙºbÉ9®Xèör’O®»åк8+ 67cö¢²ñ˜^¬ú(A½-89¬«Ñ; ~02
@@ -0,0 +1 @@
@B╝tд╣≈И─≈д╣ь©О≈д╣513DсX└⌠%и<ё+и
@@ -0,0 +1 @@
^ا^اO=
@@ -0,0 +1 @@
@B╝tд╣≈И═O▒5
@@ -0,0 +1,2 @@
@B®tĵå5PÀT2åݽ
QÄŸ
@@ -0,0 +1 @@
@B®tĵ‚åO"Kj$2åݽﹽïµur™"Kj$2åݽﹽµur™"Kj$2åݽﹽïµur™"Kj$2åݽd¹½ïµur™"Kj$2åݽµur™"Kj$2åݽﹽïµur™"Kj$2åݽﹽïµur™"Kj$2åݽµur™"Kj$2åݽﹽïµur™
@@ -0,0 +1 @@
^c‰= ‰tPhotoEmpty#Ο†ΉΟ†ΉΟ†Ή
@@ -0,0 +1 @@
@B®tĵ—é iŮşbÉ9®X€čfr’O®»ĺĐş8+ 67@cö˘˛B®tĵÄ0~NśˇĎrÄ0~NśGo-h—Ä0~NśGo-http-~Nśnttp-Ä0~Nśˇ‹~N
@@ -0,0 +1 @@
@B®tĵ—Õ´iÙºbÉ9®X€èfr’O®»åк8+ 67@cö¢²B®tĵª0XÊ-589423932399XÊ-5'9¡Ïr2Tt0XÊ-5894239932399XÊ-5' of type ÄXÊ-510wßO<ÒÜ÷;0XÊ-58ºbÉ94ª0XÊ-589423932399XÊ-5'9¡Ïr2Tt0XÊ-5894239932399XÊ-5' of type ÄXÊ-5

Some files were not shown because too many files have changed in this diff Show More