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 655B

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