Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

middle.go 886B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package telegram
  2. import (
  3. "net"
  4. "net/http"
  5. "sync"
  6. "go.uber.org/zap"
  7. "github.com/9seconds/mtg/config"
  8. "github.com/9seconds/mtg/mtproto"
  9. "github.com/9seconds/mtg/wrappers"
  10. )
  11. type middleTelegram struct {
  12. middleTelegramCaller
  13. }
  14. func NewMiddleTelegram(conf *config.Config, logger *zap.SugaredLogger) Telegram {
  15. tg := &middleTelegram{
  16. middleTelegramCaller: middleTelegramCaller{
  17. baseTelegram: baseTelegram{
  18. dialer: tgDialer{net.Dialer{Timeout: telegramDialTimeout}},
  19. },
  20. logger: logger,
  21. httpClient: &http.Client{
  22. Timeout: middleTelegramHTTPClientTimeout,
  23. },
  24. dialerMutex: &sync.RWMutex{},
  25. },
  26. }
  27. if err := tg.update(); err != nil {
  28. panic(err)
  29. }
  30. go tg.autoUpdate()
  31. return tg
  32. }
  33. func (t *middleTelegram) Init(connOpts *mtproto.ConnectionOpts, conn wrappers.ReadWriteCloserWithAddr) (wrappers.ReadWriteCloserWithAddr, error) {
  34. return nil, nil
  35. }