Author: LakeFox
Email: [email protected]
Date: Tue, 15 Apr 2025 15:21:35 -0600
test/c49c91f08e0175c574cb0d141813b19c529acc06/search/main.go.html
Changes
Commits
Diff
diff --git a/test/c49c91f08e0175c574cb0d141813b19c529acc06/search/main.go.html b/test/c49c91f08e0175c574cb0d141813b19c529acc06/search/main.go.html
deleted file mode 100644
index 44cce23..0000000
--- a/test/c49c91f08e0175c574cb0d141813b19c529acc06/search/main.go.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
-	search/main.go
-	
-	
-
-
-
-	
-
search/main.go
-
-
- Author: LakeFox -
-
- Email: [email protected] -
-
- Date: Thu, 20 Feb 2025 16:49:25 -0700 -
-
-
-
- c49c91f08e0175c574cb0d141813b19c529acc06 -
-
- Init -
-
-
-
-
-		
-		package search
-
-import (
-	"logc/parser"
-	"strings"
-)
-
-func Text(comments []parser.Comment, headers, query string) []parser.Comment {
-	headerFilter := []parser.Comment{}
-
-	headerList := strings.Split(headers, ",")
-
-	if headers == "" {
-		for _, v := range comments {
-			for i, h := range v.Headers {
-				if h[0] == '[' {
-					v.Headers[i] = h[strings.Index(h, "]")+1:]
-
-				}
-			}
-		}
-		headerFilter = comments
-	} else {
-		for j, v := range comments {
-			match := false
-			headersAndTags := v.Headers
-			headersAndTags = append(headersAndTags, v.Tags...)
-			for _, h := range headersAndTags {
-				// !DEVMAN: This is the logic for pulling out optional headers
-				if len(h) > 0 && h[0] == '[' {
-					tags := strings.Split(h[1:strings.Index(h, "]")], ",")
-					m := false
-					for _, s := range tags {
-						b := false
-						for _, t := range headerList {
-							if s[0] == '!' {
-								if t == s[1:] {
-									m = true
-									b = true
-									break
-								} else {
-									m = false
-								}
-							} else if t == s {
-								m = true
-							} else if t == headersAndTags[0] {
-								m = true
-							}
-						}
-						if b {
-							break
-						}
-					}
-
-					if !m {
-						for i, k := range v.Headers {
-							if k == h {
-								comments[j].Headers[i] = ""
-								comments[j].Data[i] = ""
-							}
-						}
-					} else {
-						// Remove the brackets if it matches
-						for i, k := range v.Headers {
-							if k == h {
-								comments[j].Headers[i] = h[strings.Index(h, "]")+1:]
-							}
-						}
-					}
-
-					match = m
-				} else {
-					for _, t := range headerList {
-						if t == h && !match {
-							match = true
-						}
-					}
-
-				}
-
-			}
-			if match {
-				v.Headers = removeEmpty(v.Headers)
-				v.Data = removeEmpty(v.Data)
-				headerFilter = append(headerFilter, v)
-			}
-		}
-	}
-
-	queryFilter := []parser.Comment{}
-
-	if query == "" {
-		return headerFilter
-	} else {
-		lowerQuery := strings.ToLower(query)
-		for _, v := range headerFilter {
-			text := strings.Join(v.Data, " ")
-			text += strings.Join(v.Headers, " ")
-
-			text = strings.ToLower(text)
-
-			if strings.Contains(text, lowerQuery) {
-				queryFilter = append(queryFilter, v)
-			}
-		}
-	}
-	return queryFilter
-}
-
-func removeEmpty(input []string) []string {
-	// Create a new slice to hold non-empty strings
-	nonEmpty := []string{}
-	for _, str := range input {
-		if str != "" { // Check if the string is not empty
-			nonEmpty = append(nonEmpty, str)
-		}
-	}
-	return nonEmpty
-}
-
-		
-		
-
-		
-		
-		
-		
-
- - -



	search/main.go
	
	



	
search/main.go
Author: LakeFox
Date: Thu, 20 Feb 2025 16:49:25 -0700
c49c91f08e0175c574cb0d141813b19c529acc06
Init
		
		package search

import (
	"logc/parser"
	"strings"
)

func Text(comments []parser.Comment, headers, query string) []parser.Comment {
	headerFilter := []parser.Comment{}

	headerList := strings.Split(headers, ",")

	if headers == "" {
		for _, v := range comments {
			for i, h := range v.Headers {
				if h[0] == '[' {
					v.Headers[i] = h[strings.Index(h, "]")+1:]

				}
			}
		}
		headerFilter = comments
	} else {
		for j, v := range comments {
			match := false
			headersAndTags := v.Headers
			headersAndTags = append(headersAndTags, v.Tags...)
			for _, h := range headersAndTags {
				// !DEVMAN: This is the logic for pulling out optional headers
				if len(h) > 0 && h[0] == '[' {
					tags := strings.Split(h[1:strings.Index(h, "]")], ",")
					m := false
					for _, s := range tags {
						b := false
						for _, t := range headerList {
							if s[0] == '!' {
								if t == s[1:] {
									m = true
									b = true
									break
								} else {
									m = false
								}
							} else if t == s {
								m = true
							} else if t == headersAndTags[0] {
								m = true
							}
						}
						if b {
							break
						}
					}

					if !m {
						for i, k := range v.Headers {
							if k == h {
								comments[j].Headers[i] = ""
								comments[j].Data[i] = ""
							}
						}
					} else {
						// Remove the brackets if it matches
						for i, k := range v.Headers {
							if k == h {
								comments[j].Headers[i] = h[strings.Index(h, "]")+1:]
							}
						}
					}

					match = m
				} else {
					for _, t := range headerList {
						if t == h && !match {
							match = true
						}
					}

				}

			}
			if match {
				v.Headers = removeEmpty(v.Headers)
				v.Data = removeEmpty(v.Data)
				headerFilter = append(headerFilter, v)
			}
		}
	}

	queryFilter := []parser.Comment{}

	if query == "" {
		return headerFilter
	} else {
		lowerQuery := strings.ToLower(query)
		for _, v := range headerFilter {
			text := strings.Join(v.Data, " ")
			text += strings.Join(v.Headers, " ")

			text = strings.ToLower(text)

			if strings.Contains(text, lowerQuery) {
				queryFilter = append(queryFilter, v)
			}
		}
	}
	return queryFilter
}

func removeEmpty(input []string) []string {
	// Create a new slice to hold non-empty strings
	nonEmpty := []string{}
	for _, str := range input {
		if str != "" { // Check if the string is not empty
			nonEmpty = append(nonEmpty, str)
		}
	}
	return nonEmpty
}