diff --git a/api/router.go b/api/router.go
index b1c69e1..7c20a11 100644
--- a/api/router.go
+++ b/api/router.go
@@ -26,6 +26,10 @@ func setupRouter() {
c.HTML(http.StatusOK, "index.html", gin.H{
"domain": domain,
"all_proxies_count": cache.AllProxiesCount,
+ "ss_proxies_count": cache.SSProxiesCount,
+ "ssr_proxies_count": cache.SSRProxiesCount,
+ "vmess_proxies_count": cache.VmessProxiesCount,
+ "trojan_proxies_count": cache.TrojanProxiesCount,
"useful_proxies_count": cache.UsefullProxiesCount,
})
})
diff --git a/assets/html/index.html b/assets/html/index.html
index e9aa78f..987b9ab 100644
--- a/assets/html/index.html
+++ b/assets/html/index.html
@@ -108,6 +108,10 @@
自动抓取tg频道、订阅地址、公开互联网上的ss、ssr、vmess节点信息,聚合去重后提供节点列表,每15分钟更新
汇总节点数量:{{ .all_proxies_count }}
+
ss节点数量:{{ .ss_proxies_count }}
+
ssr节点数量:{{ .ssr_proxies_count }}
+
vmess节点数量:{{ .vmess_proxies_count }}
+
trojan节点数量:{{ .trojan_proxies_count }}
可用节点数量:{{ .useful_proxies_count }}
diff --git a/internal/app/task.go b/internal/app/task.go
index ffbc4a6..c23c4c4 100644
--- a/internal/app/task.go
+++ b/internal/app/task.go
@@ -41,6 +41,10 @@ func CrawlGo() {
proxies.NameAddCounrty().Sort().NameAddIndex()
cache.SetProxies("allproxies", proxies)
cache.AllProxiesCount = proxies.Len()
+ cache.SSProxiesCount = proxies.TypeLen("ss")
+ cache.SSRProxiesCount = proxies.TypeLen("ssr")
+ cache.VmessProxiesCount = proxies.TypeLen("vmess")
+ cache.TrojanProxiesCount = proxies.TypeLen("trojan")
// 可用性检测
proxies = proxy.CleanBadProxies(proxies)
diff --git a/internal/cache/vars.go b/internal/cache/vars.go
index 01aeece..9d6d453 100644
--- a/internal/cache/vars.go
+++ b/internal/cache/vars.go
@@ -1,6 +1,11 @@
package cache
var (
- AllProxiesCount = 0
+ AllProxiesCount = 0
+ SSRProxiesCount = 0
+ SSProxiesCount = 0
+ VmessProxiesCount = 0
+ TrojanProxiesCount = 0
+
UsefullProxiesCount = 0
)
diff --git a/pkg/proxy/proxies.go b/pkg/proxy/proxies.go
index 34f0d27..ac57dca 100644
--- a/pkg/proxy/proxies.go
+++ b/pkg/proxy/proxies.go
@@ -11,6 +11,16 @@ func (ps ProxyList) Len() int {
return len(ps)
}
+func (ps ProxyList) TypeLen(t string) int {
+ l := 0
+ for _, p := range ps {
+ if p.TypeName() == t {
+ l++
+ }
+ }
+ return l
+}
+
func (ps ProxyList) Less(i, j int) bool {
return ps[i].BaseInfo().Name < ps[j].BaseInfo().Name
}