mirror of
				https://github.com/bestnite/sub2clash.git
				synced 2025-10-25 16:51:01 +00:00 
			
		
		
		
	fix
This commit is contained in:
		| @@ -67,7 +67,7 @@ func BuildSub(clashType model.ClashType, query validator.SubValidator, template | ||||
| 		// 解析订阅 | ||||
| 		err = yaml.Unmarshal(data, &sub) | ||||
| 		if err != nil { | ||||
| 			reg, _ := regexp.Compile("(ssr|ss|vmess|trojan|http|https)://") | ||||
| 			reg, _ := regexp.Compile("(ssr|ss|vmess|trojan|vless)://") | ||||
| 			if reg.Match(data) { | ||||
| 				p := utils.ParseProxy(strings.Split(string(data), "\n")...) | ||||
| 				proxyList = append(proxyList, p...) | ||||
|   | ||||
| @@ -3,10 +3,14 @@ package controller | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"github.com/gin-gonic/gin" | ||||
| 	"go.uber.org/zap" | ||||
| 	"gorm.io/gorm" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sub2clash/config" | ||||
| 	"sub2clash/logger" | ||||
| 	"sub2clash/model" | ||||
| 	"sub2clash/utils" | ||||
| 	"sub2clash/utils/database" | ||||
| @@ -29,7 +33,7 @@ func ShortLinkGenHandler(c *gin.Context) { | ||||
| 	var item model.ShortLink | ||||
| 	result := database.FindShortLinkByUrl(params.Url, &item) | ||||
| 	if result.Error == nil { | ||||
| 		if params.Password != "" && item.Password != params.Password { | ||||
| 		if item.Password != params.Password { | ||||
| 			item.Password = params.Password | ||||
| 			database.SaveShortLink(&item) | ||||
| 			c.String(200, item.Hash+"?password="+params.Password) | ||||
| @@ -88,6 +92,17 @@ func ShortLinkGetHandler(c *gin.Context) { | ||||
| 	// 更新最后访问时间 | ||||
| 	shortLink.LastRequestTime = time.Now().Unix() | ||||
| 	database.SaveShortLink(&shortLink) | ||||
| 	uri := config.Default.BasePath + shortLink.Url | ||||
| 	c.Redirect(http.StatusTemporaryRedirect, uri) | ||||
| 	get, err := utils.Get("http://localhost:" + strconv.Itoa(config.Default.Port) + "/" + shortLink.Url) | ||||
| 	if err != nil { | ||||
| 		logger.Logger.Debug("get short link data failed", zap.Error(err)) | ||||
| 		c.String(500, "请求错误: "+err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	all, err := io.ReadAll(get.Body) | ||||
| 	if err != nil { | ||||
| 		logger.Logger.Debug("read short link data failed", zap.Error(err)) | ||||
| 		c.String(500, "读取错误: "+err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	c.String(http.StatusOK, string(all)) | ||||
| } | ||||
|   | ||||
| @@ -15,39 +15,83 @@ proxy-groups: | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <all> | ||||
|   - name: 微软服务 | ||||
|   - name: 游戏平台(中国) | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <countries> | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: 游戏平台 | ||||
|   - name: 游戏平台(全球) | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <countries> | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: 巴哈姆特 | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <countries> | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: 哔哩哔哩 | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <countries> | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: 全球直连 | ||||
|   - name: Telegram | ||||
|     type: select | ||||
|     proxies: | ||||
|       - DIRECT | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: OpenAI | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: Youtube | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: Microsoft | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: Onedrive | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: Apple | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: Netflix | ||||
|     type: select | ||||
|     proxies: | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
|   - name: 广告拦截 | ||||
|     type: select | ||||
|     proxies: | ||||
| @@ -56,19 +100,26 @@ proxy-groups: | ||||
|   - name: 漏网之鱼 | ||||
|     type: select | ||||
|     proxies: | ||||
|       - <countries> | ||||
|       - 节点选择 | ||||
|       - <countries> | ||||
|       - 手动切换 | ||||
|       - DIRECT | ||||
| rules: | ||||
|   - GEOSITE,private,全球直连,no-resolve | ||||
|   - GEOIP,private,全球直连 | ||||
|   - GEOSITE,private,DIRECT,no-resolve | ||||
|   - GEOIP,private,DIRECT | ||||
|   - GEOSITE,category-ads-all,广告拦截 | ||||
|   - GEOSITE,microsoft,微软服务 | ||||
|   - GEOSITE,microsoft,Microsoft | ||||
|   - GEOSITE,apple,Apple | ||||
|   - GEOSITE,netflix,Netflix | ||||
|   - GEOSITE,onedrive,Onedrive | ||||
|   - GEOSITE,youtube,Youtube | ||||
|   - GEOSITE,telegram,Telegram | ||||
|   - GEOSITE,openai,OpenAI | ||||
|   - GEOSITE,bilibili,哔哩哔哩 | ||||
|   - GEOSITE,bahamut,巴哈姆特 | ||||
|   - GEOSITE,category-games,游戏平台 | ||||
|   - GEOSITE,category-games@cn,游戏平台(中国) | ||||
|   - GEOSITE,category-games,游戏平台(全球) | ||||
|   - GEOSITE,geolocation-!cn,节点选择 | ||||
|   - GEOSITE,CN,全球直连 | ||||
|   - GEOIP,CN,全球直连 | ||||
|   - GEOSITE,CN,DIRECT | ||||
|   - GEOIP,CN,DIRECT | ||||
|   - MATCH,漏网之鱼 | ||||
|   | ||||
| @@ -13,17 +13,13 @@ func Get(url string) (resp *http.Response, err error) { | ||||
| 	retryDelay := time.Second // 延迟1秒再重试 | ||||
| 	for haveTried < retryTimes { | ||||
| 		client := &http.Client{} | ||||
| 		client.Timeout = time.Second * 10 | ||||
| 		//client.Timeout = time.Second * 10 | ||||
| 		req, err := http.NewRequest("GET", url, nil) | ||||
| 		if err != nil { | ||||
| 			haveTried++ | ||||
| 			time.Sleep(retryDelay) | ||||
| 			continue | ||||
| 		} | ||||
| 		req.Header.Set( | ||||
| 			"User-Agent", | ||||
| 			"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", | ||||
| 		) | ||||
| 		get, err := client.Do(req) | ||||
| 		if err != nil { | ||||
| 			haveTried++ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user