Files
mautrix-telegram/pkg/gotd/session/telethon_example_test.go
T
2025-06-27 20:03:37 -07:00

62 lines
1.7 KiB
Go

package session_test
import (
"context"
"fmt"
"go.mau.fi/mautrix-telegram/pkg/gotd/session"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram"
)
func ExampleTelethonSession() {
// Get a session from Telethon.
str := `1AsCoAAEBu2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW
FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY
WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=`
data, err := session.TelethonSession(str)
if err != nil {
panic(err)
}
fmt.Println(data.DC, data.Addr)
// Output:
// 2 192.168.0.1:443
}
func ExampleTelethonSession_convert() {
ctx := context.Background()
// Get a session from Telethon.
str := `1AsCoAAEBu2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW
FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY
WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=`
data, err := session.TelethonSession(str)
if err != nil {
panic(err)
}
var (
storage = new(session.StorageMemory)
loader = session.Loader{Storage: storage}
)
// Save decoded Telethon session as gotd session.
if err := loader.Save(ctx, data); err != nil {
panic(err)
}
// Create client.
client := telegram.NewClient(telegram.TestAppID, telegram.TestAppHash, telegram.Options{
SessionStorage: storage,
})
if err := client.Run(ctx, func(ctx context.Context) error {
// Use Telethon session.
return nil
}); err != nil {
panic(err)
}
}