This commit is contained in:
2024-08-02 14:19:57 +08:00
parent c178e1672b
commit 527c7aa372
18 changed files with 904 additions and 0 deletions

92
core/fmm.go Normal file
View File

@@ -0,0 +1,92 @@
package core
import (
"fmt"
"net/http"
"time"
)
func UpdateFmmIpv6M3u() {
filename := "./ipv6.m3u"
// 确保文件存在
if exists, err := EnsureFileExists(filename); err != nil {
fmt.Printf("检查或创建文件ipv6.m3u失败%s\n", err.Error())
return
} else if !exists {
fmt.Printf("缓存文件ipv6.m3u不存在\n")
return
}
URL := "https://mirror.ghproxy.com/https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u"
statusCode, responseBody, err := FetchURL(URL, 10*time.Second)
if err != nil {
fmt.Printf("HTTP请求失败%s\n", err.Error())
return
}
if statusCode != http.StatusOK {
fmt.Printf("HTTP状态码为%d\n", statusCode)
return
}
fileContent, err := ReadFile(filename)
if err != nil {
fmt.Printf("读取本地文件ipv6.m3u失败%s\n", err.Error())
return
}
if Md5(fileContent) != Md5(responseBody) {
file, err := WriteFile(filename, responseBody)
if err != nil {
fmt.Printf("写入文件ipv6.m3u失败%s\n", err.Error())
return
}
if !file {
fmt.Printf("写入文件ipv6.m3u失败\n")
return
}
fmt.Printf("ipv6.m3u本地更新云端数据成功\n")
} else {
fmt.Printf("ipv6.m3u本地与云端数据一致无需同步\n")
}
}
func UpdateFmmIpv6ToTxtM3u() {
ipv6TxtFilename := "./ipv6-txt.m3u"
if exists, err := EnsureFileExists(ipv6TxtFilename); err != nil {
fmt.Printf("检查或创建ipv6-txt.m3u文件失败%s\n", err.Error())
return
} else if !exists {
fmt.Printf("缓存文件ipv6-txt.m3u不存在\n")
return
}
URL := "https://fanmingming.com/txt?url=http://82.156.99.49:6677"
statusCode, responseBody, err := FetchURL(URL+"/ipv6-iptv.m3u", 10*time.Second)
if err != nil {
fmt.Printf("HTTP请求失败%s\n", err.Error())
return
}
if statusCode != http.StatusOK {
fmt.Printf("HTTP状态码为%d\n", statusCode)
return
}
fileContent, err := ReadFile(ipv6TxtFilename)
if err != nil {
fmt.Printf("读取本地文件ipv6-txt.m3u失败%s\n", err.Error())
return
}
if Md5(fileContent) != Md5(responseBody) {
file, err := WriteFile(ipv6TxtFilename, responseBody)
if err != nil {
fmt.Printf("写入文件ipv6-txt.m3u失败%s\n", err.Error())
return
}
if !file {
fmt.Printf("写入文件ipv6-txt.m3u失败\n")
return
}
fmt.Printf("ipv6-txt.m3u本地更新云端数据成功\n")
} else {
fmt.Printf("ipv6-txt.m3u本地与云端数据一致无需同步\n")
}
}