change type all

This commit is contained in:
zu1k
2020-08-18 16:18:08 +08:00
parent 32dadde123
commit e91c024e7b
3 changed files with 19 additions and 10 deletions

View File

@@ -22,16 +22,20 @@ func setupRouter() {
router.GET("/clash/proxies", func(c *gin.Context) {
proxyTypes := c.DefaultQuery("type", "")
text := ""
if proxyTypes == "all" || proxyTypes == "" {
if proxyTypes == "" {
text = cache.GetString("clashproxies")
if text == "" {
proxies := cache.GetProxies()
proxies := cache.GetProxies("proxies")
clash := provider.Clash{Proxies: proxies}
text = clash.Provide()
cache.SetString("clashproxies", text)
}
} else if proxyTypes == "all" {
proxies := cache.GetProxies("allproxies")
clash := provider.Clash{Proxies: proxies, Types: proxyTypes}
text = clash.Provide()
} else {
proxies := cache.GetProxies()
proxies := cache.GetProxies("proxies")
clash := provider.Clash{Proxies: proxies, Types: proxyTypes}
text = clash.Provide()
}
@@ -40,7 +44,7 @@ func setupRouter() {
router.GET("/surge/proxies", func(c *gin.Context) {
text := cache.GetString("surgeproxies")
if text == "" {
proxies := cache.GetProxies()
proxies := cache.GetProxies("proxies")
surge := provider.Surge{Proxies: proxies}
text = surge.Provide()
cache.SetString("surgeproxies", text)

8
app/cache/cache.go vendored
View File

@@ -10,8 +10,8 @@ import (
var c = cache.New(cache.NoExpiration, 10*time.Minute)
func GetProxies() proxy.ProxyList {
result, found := c.Get("proxies")
func GetProxies(key string) proxy.ProxyList {
result, found := c.Get(key)
if found {
log.Println(len(result.(proxy.ProxyList)))
return result.(proxy.ProxyList)
@@ -20,8 +20,8 @@ func GetProxies() proxy.ProxyList {
return nil
}
func SetProxies(proxies proxy.ProxyList) {
c.Set("proxies", proxies, cache.NoExpiration)
func SetProxies(key string, proxies proxy.ProxyList) {
c.Set(key, proxies, cache.NoExpiration)
}
func SetString(key, value string) {

View File

@@ -26,7 +26,7 @@ func CrawlGo() {
wg.Add(1)
go g.Get2Chan(pc, wg)
}
proxies := cache.GetProxies()
proxies := cache.GetProxies("proxies")
go func() {
wg.Wait()
close(pc)
@@ -36,15 +36,20 @@ func CrawlGo() {
proxies = append(proxies, node)
}
}
// 节点去重
proxies = proxies.Deduplication()
log.Println("CrawlGo node count:", len(proxies))
proxies.NameAddCounrty().Sort().NameAddIndex()
cache.SetProxies("allproxies", proxies)
// 可用性检测
proxies = proxy.CleanProxies(provider.Clash{Proxies: proxies}.CleanProxies())
log.Println("CrawlGo clash useable node count:", len(proxies))
// 排序和重命名
proxies.NameAddCounrty().Sort().NameAddIndex()
cache.SetProxies("proxies", proxies)
cache.SetProxies(proxies)
cache.SetString("clashproxies", provider.Clash{Proxies: proxies}.Provide())
cache.SetString("surgeproxies", provider.Surge{Proxies: proxies}.Provide())
}