diff --git a/pkg/metadata/tv.go b/pkg/metadata/tv.go index fe3d2c90..188b56e3 100644 --- a/pkg/metadata/tv.go +++ b/pkg/metadata/tv.go @@ -9,11 +9,11 @@ import ( ) type Metadata struct { - NameEn string - NameCn string - Season int - Episode int - Resolution string + NameEn string + NameCn string + Season int + Episode int + Resolution string IsSeasonPack bool } @@ -158,9 +158,9 @@ func parseChineseName(name string) *Metadata { re3 := regexp.MustCompile(`[^\d\w]\d{1,2}[^\d\w]`) epNums := re3.FindAllString(name, -1) if len(epNums) > 0 { - + re3 := regexp.MustCompile(`\d{1,2}`) - epNum := re3.FindAllString(epNums[0],-1)[0] + epNum := re3.FindAllString(epNums[0], -1)[0] n, err := strconv.Atoi(epNum) if err != nil { panic(fmt.Sprintf("convert %s error: %v", epNum, err)) @@ -203,10 +203,10 @@ func parseChineseName(name string) *Metadata { } } - if meta.IsSeasonPack && meta.Episode != 0{ + if meta.IsSeasonPack && meta.Episode != 0 { meta.Season = meta.Episode meta.Episode = -1 - } + } //tv name title := name diff --git a/pkg/torznab/torznab.go b/pkg/torznab/torznab.go index 166fe766..723a940c 100644 --- a/pkg/torznab/torznab.go +++ b/pkg/torznab/torznab.go @@ -76,7 +76,7 @@ func (r *Response) ToResults() []Result { for _, item := range r.Channel.Item { r := Result{ Name: item.Title, - Magnet: item.Link, + Link: item.Link, Size: mustAtoI(item.Size), Seeders: mustAtoI(item.GetAttr("seeders")), Peers: mustAtoI(item.GetAttr("peers")), @@ -129,7 +129,7 @@ func Search(torznabUrl, api, keyWord string) ([]Result, error) { type Result struct { Name string - Magnet string + Link string Size int Seeders int Peers int diff --git a/pkg/transmission/transmission.go b/pkg/transmission/transmission.go index 3c8192ef..624b879e 100644 --- a/pkg/transmission/transmission.go +++ b/pkg/transmission/transmission.go @@ -38,9 +38,9 @@ type Client struct { cfg Config } -func (c *Client) Download(magnet, dir string) (*Torrent, error) { +func (c *Client) Download(link, dir string) (*Torrent, error) { t, err := c.c.TorrentAdd(context.TODO(), transmissionrpc.TorrentAddPayload{ - Filename: &magnet, + Filename: &link, DownloadDir: &dir, }) log.Infof("get torrent info: %+v", t) diff --git a/server/core/torrent.go b/server/core/torrent.go index 50f32cf6..27966cdf 100644 --- a/server/core/torrent.go +++ b/server/core/torrent.go @@ -31,8 +31,11 @@ func SearchEpisode(db1 *db.Client, seriesId, seasonNum, episodeNum int, checkRes var filtered []torznab.Result for _, r := range res { - log.Infof("torrent resource: %+v", r) + //log.Infof("torrent resource: %+v", r) meta := metadata.ParseTv(r.Name) + if meta == nil { //cannot parse name + continue + } if meta.Season != seasonNum { continue } diff --git a/server/resources.go b/server/resources.go index ae6025ee..0338ec64 100644 --- a/server/resources.go +++ b/server/resources.go @@ -89,7 +89,7 @@ func (s *Server) searchAndDownloadSeasonPackage(seriesId, seasonNum int) (*strin return nil, errors.New("no enough space") } - torrent, err := trc.Download(r1.Magnet, s.db.GetDownloadDir()) + torrent, err := trc.Download(r1.Link, s.db.GetDownloadDir()) if err != nil { return nil, errors.Wrap(err, "downloading") } @@ -144,7 +144,7 @@ func (s *Server) searchAndDownload(seriesId, seasonNum, episodeNum int) (*string } r1 := res[0] log.Infof("found resource to download: %+v", r1) - torrent, err := trc.Download(r1.Magnet, s.db.GetDownloadDir()) + torrent, err := trc.Download(r1.Link, s.db.GetDownloadDir()) if err != nil { return nil, errors.Wrap(err, "downloading") } @@ -195,7 +195,7 @@ func (s *Server) SearchAvailableEpisodeResource(c *gin.Context) (interface{}, er Size: r.Size, Seeders: r.Seeders, Peers: r.Peers, - Link: r.Magnet, + Link: r.Link, }) } if len(searchResults) == 0 { @@ -268,7 +268,7 @@ func (s *Server) SearchAvailableMovies(c *gin.Context) (interface{}, error) { Size: r.Size, Seeders: r.Seeders, Peers: r.Peers, - Link: r.Magnet, + Link: r.Link, }) } if len(searchResults) == 0 { diff --git a/server/scheduler.go b/server/scheduler.go index 3e8b7f70..eb995803 100644 --- a/server/scheduler.go +++ b/server/scheduler.go @@ -294,7 +294,7 @@ func (s *Server) downloadMovieSingleEpisode(ep *ent.Episode) error { } r1 := res[0] log.Infof("begin download torrent resource: %v", r1.Name) - torrent, err := trc.Download(r1.Magnet, s.db.GetDownloadDir()) + torrent, err := trc.Download(r1.Link, s.db.GetDownloadDir()) if err != nil { return errors.Wrap(err, "downloading") }