1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package main
- import (
- "fmt"
- "io"
- "net/http"
- "time"
- )
- func Subscribe(url string) string {
- resp, err := http.Get(url)
- if err != nil {
- fmt.Println("Error:", err)
- return ""
- }
- defer resp.Body.Close()
- readAll, err := io.ReadAll(resp.Body)
- if err != nil {
- fmt.Println("Error:", err)
- return ""
- }
- return string(readAll)
- }
- func subscribeUpdate(url string) {
- defer func() {
- if r := recover(); r != nil {
- go subscribeUpdate(url)
- }
- }()
- for {
- time.Sleep(30 * time.Second)
- subUrl := Subscribe(url)
- if len(subUrl) > 0 {
- if *detectLocation {
- location := GetHttpLocation(subUrl)
- if len(location) > 0 {
- TargetUrl = location
- } else {
- TargetUrl = subUrl
- }
- } else {
- TargetUrl = subUrl
- }
- }
- }
- }
|