Subscribe.go 752 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "fmt"
  4. "io"
  5. "net/http"
  6. "time"
  7. )
  8. func Subscribe(url string) string {
  9. resp, err := http.Get(url)
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. return ""
  13. }
  14. defer resp.Body.Close()
  15. readAll, err := io.ReadAll(resp.Body)
  16. if err != nil {
  17. fmt.Println("Error:", err)
  18. return ""
  19. }
  20. return string(readAll)
  21. }
  22. func subscribeUpdate(url string) {
  23. defer func() {
  24. if r := recover(); r != nil {
  25. go subscribeUpdate(url)
  26. }
  27. }()
  28. for {
  29. time.Sleep(30 * time.Second)
  30. subUrl := Subscribe(url)
  31. if len(subUrl) > 0 {
  32. if *detectLocation {
  33. location := GetHttpLocation(subUrl)
  34. if len(location) > 0 {
  35. TargetUrl = location
  36. } else {
  37. TargetUrl = subUrl
  38. }
  39. } else {
  40. TargetUrl = subUrl
  41. }
  42. }
  43. }
  44. }