mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-06 10:07:45 +08:00
fix: name cannot parsed
This commit is contained in:
@@ -9,11 +9,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Metadata struct {
|
type Metadata struct {
|
||||||
NameEn string
|
NameEn string
|
||||||
NameCn string
|
NameCn string
|
||||||
Season int
|
Season int
|
||||||
Episode int
|
Episode int
|
||||||
Resolution string
|
Resolution string
|
||||||
IsSeasonPack bool
|
IsSeasonPack bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,9 +158,9 @@ func parseChineseName(name string) *Metadata {
|
|||||||
re3 := regexp.MustCompile(`[^\d\w]\d{1,2}[^\d\w]`)
|
re3 := regexp.MustCompile(`[^\d\w]\d{1,2}[^\d\w]`)
|
||||||
epNums := re3.FindAllString(name, -1)
|
epNums := re3.FindAllString(name, -1)
|
||||||
if len(epNums) > 0 {
|
if len(epNums) > 0 {
|
||||||
|
|
||||||
re3 := regexp.MustCompile(`\d{1,2}`)
|
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)
|
n, err := strconv.Atoi(epNum)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("convert %s error: %v", epNum, err))
|
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.Season = meta.Episode
|
||||||
meta.Episode = -1
|
meta.Episode = -1
|
||||||
}
|
}
|
||||||
|
|
||||||
//tv name
|
//tv name
|
||||||
title := name
|
title := name
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ func (r *Response) ToResults() []Result {
|
|||||||
for _, item := range r.Channel.Item {
|
for _, item := range r.Channel.Item {
|
||||||
r := Result{
|
r := Result{
|
||||||
Name: item.Title,
|
Name: item.Title,
|
||||||
Magnet: item.Link,
|
Link: item.Link,
|
||||||
Size: mustAtoI(item.Size),
|
Size: mustAtoI(item.Size),
|
||||||
Seeders: mustAtoI(item.GetAttr("seeders")),
|
Seeders: mustAtoI(item.GetAttr("seeders")),
|
||||||
Peers: mustAtoI(item.GetAttr("peers")),
|
Peers: mustAtoI(item.GetAttr("peers")),
|
||||||
@@ -129,7 +129,7 @@ func Search(torznabUrl, api, keyWord string) ([]Result, error) {
|
|||||||
|
|
||||||
type Result struct {
|
type Result struct {
|
||||||
Name string
|
Name string
|
||||||
Magnet string
|
Link string
|
||||||
Size int
|
Size int
|
||||||
Seeders int
|
Seeders int
|
||||||
Peers int
|
Peers int
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ type Client struct {
|
|||||||
cfg Config
|
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{
|
t, err := c.c.TorrentAdd(context.TODO(), transmissionrpc.TorrentAddPayload{
|
||||||
Filename: &magnet,
|
Filename: &link,
|
||||||
DownloadDir: &dir,
|
DownloadDir: &dir,
|
||||||
})
|
})
|
||||||
log.Infof("get torrent info: %+v", t)
|
log.Infof("get torrent info: %+v", t)
|
||||||
|
|||||||
@@ -31,8 +31,11 @@ func SearchEpisode(db1 *db.Client, seriesId, seasonNum, episodeNum int, checkRes
|
|||||||
|
|
||||||
var filtered []torznab.Result
|
var filtered []torznab.Result
|
||||||
for _, r := range res {
|
for _, r := range res {
|
||||||
log.Infof("torrent resource: %+v", r)
|
//log.Infof("torrent resource: %+v", r)
|
||||||
meta := metadata.ParseTv(r.Name)
|
meta := metadata.ParseTv(r.Name)
|
||||||
|
if meta == nil { //cannot parse name
|
||||||
|
continue
|
||||||
|
}
|
||||||
if meta.Season != seasonNum {
|
if meta.Season != seasonNum {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ func (s *Server) searchAndDownloadSeasonPackage(seriesId, seasonNum int) (*strin
|
|||||||
return nil, errors.New("no enough space")
|
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 {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "downloading")
|
return nil, errors.Wrap(err, "downloading")
|
||||||
}
|
}
|
||||||
@@ -144,7 +144,7 @@ func (s *Server) searchAndDownload(seriesId, seasonNum, episodeNum int) (*string
|
|||||||
}
|
}
|
||||||
r1 := res[0]
|
r1 := res[0]
|
||||||
log.Infof("found resource to download: %+v", r1)
|
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 {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "downloading")
|
return nil, errors.Wrap(err, "downloading")
|
||||||
}
|
}
|
||||||
@@ -195,7 +195,7 @@ func (s *Server) SearchAvailableEpisodeResource(c *gin.Context) (interface{}, er
|
|||||||
Size: r.Size,
|
Size: r.Size,
|
||||||
Seeders: r.Seeders,
|
Seeders: r.Seeders,
|
||||||
Peers: r.Peers,
|
Peers: r.Peers,
|
||||||
Link: r.Magnet,
|
Link: r.Link,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if len(searchResults) == 0 {
|
if len(searchResults) == 0 {
|
||||||
@@ -268,7 +268,7 @@ func (s *Server) SearchAvailableMovies(c *gin.Context) (interface{}, error) {
|
|||||||
Size: r.Size,
|
Size: r.Size,
|
||||||
Seeders: r.Seeders,
|
Seeders: r.Seeders,
|
||||||
Peers: r.Peers,
|
Peers: r.Peers,
|
||||||
Link: r.Magnet,
|
Link: r.Link,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if len(searchResults) == 0 {
|
if len(searchResults) == 0 {
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ func (s *Server) downloadMovieSingleEpisode(ep *ent.Episode) error {
|
|||||||
}
|
}
|
||||||
r1 := res[0]
|
r1 := res[0]
|
||||||
log.Infof("begin download torrent resource: %v", r1.Name)
|
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 {
|
if err != nil {
|
||||||
return errors.Wrap(err, "downloading")
|
return errors.Wrap(err, "downloading")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user