소스 검색

更新 'resourceChannel/resourceChannel.go'

url解析额数组越界修改
go_dev 1 년 전
부모
커밋
f07b43d856
1개의 변경된 파일40개의 추가작업 그리고 10개의 파일을 삭제
  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}
 	}