60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package util
|
|
|
|
import (
|
|
"bufio"
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestGetOnlineUserAgents(t *testing.T) {
|
|
userAgents, err := getOnlineUserAgents()
|
|
if err != nil {
|
|
t.Fatalf("Failed to get online user agents: %v", err)
|
|
}
|
|
t.Logf("Online user agents: %v", userAgents)
|
|
}
|
|
|
|
func TestTransformUserAgentJsonlToSliceFile(t *testing.T) {
|
|
|
|
jsonlFilePath := filepath.Join("data", "user_agents.jsonl")
|
|
|
|
jsonlFile, err := os.Open(jsonlFilePath)
|
|
if err != nil {
|
|
t.Fatalf("Failed to open JSONL file: %v", err)
|
|
}
|
|
defer jsonlFile.Close()
|
|
|
|
sliceFilePath := filepath.Join("user_agent_list.go")
|
|
sliceFile, err := os.Create(sliceFilePath)
|
|
if err != nil {
|
|
t.Fatalf("Failed to create slice file: %v", err)
|
|
}
|
|
defer sliceFile.Close()
|
|
|
|
sliceFile.WriteString("package util\n\nvar UserAgentList = []string{\n")
|
|
|
|
type UserAgent struct {
|
|
UserAgent string `json:"useragent"`
|
|
}
|
|
|
|
scanner := bufio.NewScanner(jsonlFile)
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
var ua UserAgent
|
|
if err := json.Unmarshal([]byte(line), &ua); err != nil {
|
|
t.Fatalf("Failed to unmarshal line: %v", err)
|
|
}
|
|
sliceFile.WriteString(fmt.Sprintf("\t\"%s\",\n", ua.UserAgent))
|
|
}
|
|
sliceFile.WriteString("}\n")
|
|
|
|
if err := scanner.Err(); err != nil {
|
|
t.Fatalf("Failed to read JSONL file: %v", err)
|
|
}
|
|
|
|
t.Logf("User agent list generated successfully: %s", sliceFilePath)
|
|
}
|