Ver Fonte

更新 'resourceChannel/resourceChannel.go'

url解析额数组越界修改
go_dev há 1 ano atrás
pai
commit
f07b43d856
1 ficheiros alterados com 40 adições e 10 exclusões
  1. 40 10
      resourceChannel/resourceChannel.go

+ 40 - 10
resourceChannel/resourceChannel.go

@@ -88,14 +88,32 @@ func GetChannel(assessment ResourceAssessment) ChannelCategory {
 	if strings.Contains(assessment.URL, "link=") || strings.Contains(assessment.ReferPageURL, "link=") || strings.Contains(assessment.ChatURL, "link=") {
 		log.Printf("解析URL")
 		if strings.Contains(assessment.URL, "link=") {
-			assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[1])
-			assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[2])
+			split := strings.Split(assessment.URL, "link")
+			if strings.Contains(split[1], "form") {
+				assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[1])
+				assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[2])
+			} else {
+				assessment.Channel = 5
+				assessment.Category = 11
+			}
 		} else if strings.Contains(assessment.ReferPageURL, "link=") {
-			assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
-			assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
+			split := strings.Split(assessment.ReferPageURL, "link")
+			if strings.Contains(split[1], "form") {
+				assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
+				assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
+			} else {
+				assessment.Channel = 5
+				assessment.Category = 11
+			}
 		} else {
-			assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[1])
-			assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[2])
+			split := strings.Split(assessment.ChatURL, "link")
+			if strings.Contains(split[1], "form") {
+				assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[1])
+				assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[2])
+			} else {
+				assessment.Channel = 5
+				assessment.Category = 11
+			}
 		}
 		return ChannelCategory{assessment.Channel, assessment.Category}
 	}
@@ -165,11 +183,23 @@ func GetChatChannel(chat SemJsChatRecord) ChannelCategory {
 	if strings.Contains(chat.ChatURL, "link=") || strings.Contains(chat.ReferPage, "link=") {
 		log.Printf("解析URL")
 		if strings.Contains(chat.ChatURL, "link=") {
-			chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[1])
-			chat.CategoryID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[2])
+			split := strings.Split(chat.ChatURL, "link=")
+			if strings.Contains(split[1], "form") {
+				chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[1])
+				chat.CategoryID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[2])
+			} else {
+				chat.ChannleID = 5
+				chat.CategoryID = 11
+			}
 		} else {
-			chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[1])
-			chat.CategoryID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[2])
+			split := strings.Split(chat.ReferPage, "link=")
+			if strings.Contains(split[1], "form") {
+				chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[1])
+				chat.CategoryID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[2])
+			} else {
+				chat.ChannleID = 5
+				chat.CategoryID = 11
+			}
 		}
 		return ChannelCategory{chat.ChannleID, chat.CategoryID}
 	}