-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomfy.go
72 lines (65 loc) · 1.55 KB
/
comfy.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package main
import (
"log"
"strings"
)
func ParseComfy(data []byte) []string {
var lines []string
dstr := string(data)
dstr = strings.ReplaceAll(dstr, "\n", "")
dstr = strings.ReplaceAll(dstr, "\r", "")
spltStr := strings.SplitAfter(dstr, "</tbody>")
if len(spltStr) <= 0 {
log.Println("GetComfy: Not enough data.")
return lines
}
spltStr = strings.SplitAfter(spltStr[0], "<tbody>")
if len(spltStr) <= 0 {
log.Println("GetRedMew: Data not valid.")
return []string{}
}
spltStr = strings.SplitAfter(spltStr[1], "<tr>")
for _, item := range spltStr {
newSplit := strings.SplitAfter(item, "<td>")
for e, element := range newSplit {
if e%2 == 0 {
continue
}
if strings.Contains(element, ":") {
continue
}
name := strings.ReplaceAll(element, " ", "")
name = strings.ReplaceAll(name, "<td>", "")
name = strings.ReplaceAll(name, "</td>", "")
//fmt.Printf("Item: %v\n", name)
if len(name) > 3 {
lines = append(lines, name)
}
}
}
return lines
}
func ScrapeComfy(server serverData, data []byte) []string {
count := 0
var comfyNames []string
var names []string
if server.UseComfyScrape {
if serverConfig.ServerPrefs.VerboseLogging {
log.Println("Scraping Comfy.")
}
comfyNames = ParseComfy(data)
}
if comfyNames != nil {
for _, comfy := range comfyNames {
rLen := len(comfy)
if rLen > 0 && rLen < 128 {
names = append(names, strings.ToLower(comfy))
count++
}
}
if serverConfig.ServerPrefs.VerboseLogging {
log.Printf("Comfy: %v names scraped.\n", count)
}
}
return names
}