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
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

api.go 807B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package api
  2. import (
  3. "context"
  4. "fmt"
  5. "io"
  6. "net/http"
  7. "time"
  8. )
  9. const (
  10. apiUserAgent = "github.com/9seconds/mtg"
  11. apiHTTPTimeout = 30 * time.Second
  12. )
  13. var httpClient = http.Client{
  14. Timeout: apiHTTPTimeout,
  15. }
  16. func request(url string) (io.ReadCloser, error) {
  17. ctx, cancel := context.WithTimeout(context.Background(), apiHTTPTimeout)
  18. defer cancel()
  19. req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
  20. if err != nil {
  21. panic(err)
  22. }
  23. req.Header.Set("Accept", "text/plan")
  24. req.Header.Set("User-Agent", apiUserAgent)
  25. resp, err := httpClient.Do(req)
  26. if err != nil {
  27. if resp != nil {
  28. io.Copy(io.Discard, resp.Body) //nolint: errcheck
  29. resp.Body.Close()
  30. }
  31. return nil, fmt.Errorf("cannot perform a request: %w", err)
  32. }
  33. return resp.Body, err //nolint: wrapcheck
  34. }