Search/node-request-search.go

82 lines
1.8 KiB
Go
Raw Normal View History

2024-08-08 19:59:10 +00:00
package main
import (
"encoding/json"
2024-08-08 21:09:07 +00:00
"log"
2024-08-08 19:59:10 +00:00
)
2024-08-08 21:09:07 +00:00
////// FORUMS /////
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
var resultsChan = make(chan []ForumSearchResult)
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
func sendForumResults(responseAddr string, results []ForumSearchResult) {
resultsMsg := Message{
ID: hostID,
Type: "forum-results",
Content: marshalResults(results),
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
err := sendMessage(responseAddr, resultsMsg)
if err != nil {
log.Printf("Error sending forum search results to %s: %v", responseAddr, err)
} else {
log.Printf("Forum search results sent successfully to %s", responseAddr)
}
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
func marshalResults(results []ForumSearchResult) string {
content, err := json.Marshal(results)
if err != nil {
log.Printf("Error marshalling forum results: %v", err)
return ""
}
return string(content)
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
func handleForumResultsMessage(msg Message) {
var results []ForumSearchResult
err := json.Unmarshal([]byte(msg.Content), &results)
if err != nil {
log.Printf("Error unmarshalling forum results: %v", err)
return
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
log.Printf("Received forum results: %+v", results)
// Send results to resultsChan
go func() {
resultsChan <- results
}()
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
func fetchForumResults(query, safe, lang string, page int) []ForumSearchResult {
results, err := PerformRedditSearch(query, safe, page)
if err != nil {
log.Printf("Error fetching forum results: %v", err)
return nil
}
return results
}
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
////// FORUMS //////
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
////// IMAGES /////
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
var imageResultsChan = make(chan []ImageSearchResult)
2024-08-08 19:59:10 +00:00
2024-08-08 21:09:07 +00:00
func handleImageResultsMessage(msg Message) {
var results []ImageSearchResult
err := json.Unmarshal([]byte(msg.Content), &results)
2024-08-08 19:59:10 +00:00
if err != nil {
2024-08-08 21:09:07 +00:00
log.Printf("Error unmarshalling image results: %v", err)
return
2024-08-08 19:59:10 +00:00
}
2024-08-08 21:09:07 +00:00
log.Printf("Received image results: %+v", results)
// Send results to imageResultsChan
go func() {
imageResultsChan <- results
}()
2024-08-08 19:59:10 +00:00
}
2024-08-08 21:09:07 +00:00
////// IMAGES /////