| 123456789101112131415161718192021222324252627 |
- package sessionimport
- import (
- "fmt"
- "github.com/gotd/td/session"
- "github.com/gotd/td/session/tdesktop"
- )
- // ConvertTdataSession reads a Telegram Desktop tdata/ folder and builds a
- // gotd session.Data. localPassword is the local-storage password used to decrypt
- // the tdata blob; pass an empty string when the desktop client did not set a
- // local password (the common case for 协议号).
- func ConvertTdataSession(tdataDir, localPassword string) (*session.Data, error) {
- accounts, err := tdesktop.Read(tdataDir, []byte(localPassword))
- if err != nil {
- return nil, fmt.Errorf("read tdata: %w", err)
- }
- if len(accounts) == 0 {
- return nil, fmt.Errorf("no accounts found in tdata")
- }
- data, err := session.TDesktopSession(accounts[0])
- if err != nil {
- return nil, fmt.Errorf("convert tdesktop account: %w", err)
- }
- return data, nil
- }
|