Files
Sillyv2/core/plugin_ptr.go
T
2023-09-24 08:50:43 +08:00

53 lines
1.5 KiB
Go

package core
import "regexp"
func getPaterner(uuid, path string) (string, string, bool) {
var ss = regexp.MustCompile(`\S+`).FindAllString(path, -1)
path = ss[0]
var data []byte
var address = ""
ls := plugin_list
for _, f := range ls {
if f.UUID == uuid {
address = f.Address
break
}
}
for _, f := range ls { //同源
if f.Address == address && (f.Title == path || f.UUID == path) {
data = plugins.GetBytes(f.UUID)
if data != nil {
return string(data), f.UUID, true //本地取
}
data = fetchScript(f.Address, f.UUID)
if data == nil {
console.Warn("无法从订阅源获取 %s 的协作脚本 %s ", GetScriptNameByUUID(uuid), path)
return "", f.UUID, false
} else {
console.Log("已从订阅源获取 %s 的协作脚本 %s", GetScriptNameByUUID(uuid), path)
plugins.Set(f.UUID, string(data))
return string(data), f.UUID, true
}
}
}
for _, f := range ls { //异源
if f.Address != address && (f.Title == path || f.UUID == path) {
data = plugins.GetBytes(f.UUID)
if data != nil {
return string(data), f.UUID, true //本地取
}
data = fetchScript(f.Address, f.UUID)
if data == nil {
console.Warn("无法从订阅源获取 %s 的协作脚本 %s ", GetScriptNameByUUID(uuid), path)
return "", f.UUID, false
} else {
console.Log("已从订阅源获取 %s 的协作脚本 %s", GetScriptNameByUUID(uuid), path)
plugins.Set(f.UUID, string(data))
return string(data), f.UUID, true
}
}
}
return "", "", false
}