浏览代码

change type all

zu1k 5 年之前
父节点
当前提交
e91c024e7b
共有 3 个文件被更改,包括 19 次插入10 次删除
  1. 8 4
      api/router.go
  2. 4 4
      app/cache/cache.go
  3. 7 2
      app/task.go

+ 8 - 4
api/router.go

@@ -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)

+ 4 - 4
app/cache/cache.go

@@ -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) {

+ 7 - 2
app/task.go

@@ -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())
 }