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
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package telegram
  2. import (
  3. "context"
  4. "net"
  5. "github.com/9seconds/mtg/conntypes"
  6. "github.com/9seconds/mtg/wrappers"
  7. )
  8. var Direct = newDirectTelegram()
  9. const (
  10. directV4DefaultIdx conntypes.DC = 1
  11. directV6DefaultIdx conntypes.DC = 1
  12. )
  13. var (
  14. directV4Addresses = map[conntypes.DC][]string{
  15. 0: {"149.154.175.50:443"},
  16. 1: {"149.154.167.51:443"},
  17. 2: {"149.154.175.100:443"},
  18. 3: {"149.154.167.91:443"},
  19. 4: {"149.154.171.5:443"},
  20. }
  21. directV6Addresses = map[conntypes.DC][]string{
  22. 0: {"[2001:b28:f23d:f001::a]:443"},
  23. 1: {"[2001:67c:04e8:f002::a]:443"},
  24. 2: {"[2001:b28:f23d:f003::a]:443"},
  25. 3: {"[2001:67c:04e8:f004::a]:443"},
  26. 4: {"[2001:b28:f23f:f005::a]:443"},
  27. }
  28. )
  29. type directTelegram struct {
  30. baseTelegram
  31. }
  32. func (d *directTelegram) Dial(ctx context.Context,
  33. cancel context.CancelFunc,
  34. dc conntypes.DC,
  35. protocol conntypes.ConnectionProtocol) (wrappers.StreamReadWriteCloser, error) {
  36. switch {
  37. case dc < 0:
  38. dc = -dc
  39. case dc == 0:
  40. dc = conntypes.DCDefaultIdx
  41. }
  42. return d.baseTelegram.dial(ctx, cancel, dc-1, protocol)
  43. }
  44. func newDirectTelegram() Telegram {
  45. return &directTelegram{
  46. baseTelegram: baseTelegram{
  47. dialer: net.Dialer{Timeout: telegramDialTimeout},
  48. v4DefaultDC: directV4DefaultIdx,
  49. V6DefaultDC: directV6DefaultIdx,
  50. v4Addresses: directV4Addresses,
  51. v6Addresses: directV6Addresses,
  52. },
  53. }
  54. }