diff --git a/api/bludv.go b/api/bludv.go index 74986d7..8382f4d 100644 --- a/api/bludv.go +++ b/api/bludv.go @@ -80,10 +80,10 @@ func (i *Indexer) HandlerBluDVIndexer(w http.ResponseWriter, r *http.Request) { } w.Header().Set("Content-Type", "application/json") - if len(indexedTorrents) == 0 { - w.WriteHeader(http.StatusNotFound) - } - json.NewEncoder(w).Encode(indexedTorrents) + json.NewEncoder(w).Encode(Response{ + Results: indexedTorrents, + Count: len(indexedTorrents), + }) } func getTorrentsBluDV(ctx context.Context, i *Indexer, link string) ([]IndexedTorrent, error) { @@ -146,6 +146,17 @@ func getTorrentsBluDV(ctx context.Context, i *Indexer, link string) ([]IndexedTo size = append(size, findSizesFromText(text)...) }) + // find any link from imdb + imdbLink := "" + article.Find("div.content a").Each(func(i int, s *goquery.Selection) { + link, _ := s.Attr("href") + re := regexp.MustCompile(`https://www.imdb.com/title/(tt\d+)`) + matches := re.FindStringSubmatch(link) + if len(matches) > 0 { + imdbLink = matches[0] + } + }) + size = stableUniq(size) var chanIndexedTorrent = make(chan IndexedTorrent) @@ -193,6 +204,7 @@ func getTorrentsBluDV(ctx context.Context, i *Indexer, link string) ([]IndexedTo OriginalTitle: title, Details: link, Year: year, + IMDB: imdbLink, Audio: magnetAudio, MagnetLink: magnetLink, Date: date, diff --git a/api/comando_torrents.go b/api/comando_torrents.go index 08e5923..580c81c 100644 --- a/api/comando_torrents.go +++ b/api/comando_torrents.go @@ -97,10 +97,10 @@ func (i *Indexer) HandlerComandoIndexer(w http.ResponseWriter, r *http.Request) } w.Header().Set("Content-Type", "application/json") - if len(indexedTorrents) == 0 { - w.WriteHeader(http.StatusNotFound) - } - json.NewEncoder(w).Encode(indexedTorrents) + json.NewEncoder(w).Encode(Response{ + Results: indexedTorrents, + Count: len(indexedTorrents), + }) } func getTorrents(ctx context.Context, i *Indexer, link string) ([]IndexedTorrent, error) { @@ -163,6 +163,17 @@ func getTorrents(ctx context.Context, i *Indexer, link string) ([]IndexedTorrent size = append(size, findSizesFromText(text)...) }) + // find any link from imdb + imdbLink := "" + article.Find("div.content a").Each(func(i int, s *goquery.Selection) { + link, _ := s.Attr("href") + re := regexp.MustCompile(`https://www.imdb.com/title/(tt\d+)`) + matches := re.FindStringSubmatch(link) + if len(matches) > 0 { + imdbLink = matches[0] + } + }) + size = stableUniq(size) var chanIndexedTorrent = make(chan IndexedTorrent) @@ -210,6 +221,7 @@ func getTorrents(ctx context.Context, i *Indexer, link string) ([]IndexedTorrent OriginalTitle: title, Details: link, Year: year, + IMDB: imdbLink, Audio: magnetAudio, MagnetLink: magnetLink, Date: date, diff --git a/api/index.go b/api/index.go index d30702a..554d196 100644 --- a/api/index.go +++ b/api/index.go @@ -18,11 +18,17 @@ type IndexerMeta struct { SearchURL string } +type Response struct { + Results []IndexedTorrent `json:"results"` + Count int `json:"count"` +} + type IndexedTorrent struct { Title string `json:"title"` OriginalTitle string `json:"original_title"` Details string `json:"details"` Year string `json:"year"` + IMDB string `json:"imdb"` Audio []schema.Audio `json:"audio"` MagnetLink string `json:"magnet_link"` Date time.Time `json:"date"`