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.

type_url.go 624B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package config
  2. import (
  3. "fmt"
  4. "net/url"
  5. )
  6. type TypeURL struct {
  7. value *url.URL
  8. }
  9. func (c *TypeURL) UnmarshalText(data []byte) error {
  10. if len(data) == 0 {
  11. return nil
  12. }
  13. value, err := url.Parse(string(data))
  14. if err != nil {
  15. return fmt.Errorf("incorrect URL: %w", err)
  16. }
  17. c.value = value
  18. return nil
  19. }
  20. func (c *TypeURL) MarshalText() ([]byte, error) {
  21. return []byte(c.String()), nil
  22. }
  23. func (c TypeURL) String() string {
  24. if c.value == nil {
  25. return ""
  26. }
  27. return c.value.String()
  28. }
  29. func (c TypeURL) Value(defaultValue *url.URL) *url.URL {
  30. if c.value == nil {
  31. return defaultValue
  32. }
  33. return c.value
  34. }