Update rutracker categories

This commit is contained in:
Alexander
2026-05-06 21:27:03 +02:00
parent 2400c6345a
commit b8fcbacb07
32 changed files with 2709 additions and 108 deletions
+5
View File
@@ -0,0 +1,5 @@
package indexer
type Filter interface {
IsKnownCategory(categories []string) bool
}
+1 -1
View File
@@ -32,7 +32,7 @@ func (indexer *JacketIndexer) Search(query string, limit int32, tracker string)
}
url := indexer.cfg.Indexer.Url
uri := fmt.Sprintf("%v/api/v2.0/indexers/%v/results/torznab?apikey=%v&limit=%d&q=%v&t=search", url, searchTracker, indexer.cfg.Indexer.ApiKey, limit, query)
uri := fmt.Sprintf("%v/api/v2.0/indexers/%v/results/torznab?apikey=%v&limit=%d&cat=3010,3040&q=%v&t=search", url, searchTracker, indexer.cfg.Indexer.ApiKey, limit, query)
log.Debug().Str("uri", uri).Msg("Sending search request")
+14 -7
View File
@@ -7,8 +7,6 @@ import (
"homelab.lan/music-agregator/internal/tracker/rutracker"
)
var parserFactory = rutracker.NewParserFactory()
type SearchResult struct {
XMLName xml.Name `xml:"rss"`
Items []Item `xml:"channel>item"`
@@ -37,10 +35,19 @@ type TorznabAttr struct {
Value string `xml:"value,attr"`
}
func (sr *SearchResult) ToProto() *pb.SearchResponse {
pbItems := make([]*pb.SearchItem, len(sr.Items))
var (
parserFactory = rutracker.NewParserFactory()
filter = rutracker.NewFilter()
)
func (sr *SearchResult) ToProto() *pb.SearchResponse {
var pbItems []*pb.SearchItem
for _, item := range sr.Items {
if !filter.IsKnownCategory(item.Categories) {
continue
}
for i, item := range sr.Items {
pbAttrs := make([]*pb.TorznabAttr, len(item.TorznabAttrs))
for j, attr := range item.TorznabAttrs {
pbAttrs[j] = &pb.TorznabAttr{
@@ -51,7 +58,7 @@ func (sr *SearchResult) ToProto() *pb.SearchResponse {
release := parserFactory.GetParser(item.Categories).Parse(item.Title)
pbItems[i] = &pb.SearchItem{
pbItems = append(pbItems, &pb.SearchItem{
Title: item.Title,
DownloadLink: item.Link,
TorrentPageUrl: item.Guid,
@@ -66,7 +73,7 @@ func (sr *SearchResult) ToProto() *pb.SearchResponse {
},
TorznabAttrs: pbAttrs,
Release: release.ToProto(),
}
})
}
return &pb.SearchResponse{