11package downloader
22
33import (
4+ "fmt"
45 "log"
56 "os"
67 "path"
7- << << << < HEAD
8- "log"
9- "strings"
108 "regexp"
11- "fmt"
9+ "strings"
10+
1211 "golang.org/x/sync/errgroup"
13- == == == =
14- >> >> >> > 3 f855d8 (Implement initial support for Lidarr downloader )
1512
1613 cfg "explo/src/config"
1714 "explo/src/models"
@@ -35,53 +32,48 @@ func NewDownloader(cfg *cfg.DownloadConfig, httpClient *util.HttpClient) *Downlo
3532 switch service {
3633 case "youtube" :
3734 downloader = append (downloader , NewYoutube (cfg .Youtube , cfg .Discovery , cfg .DownloadDir , httpClient ))
38- << << << < HEAD
3935 case "slskd" :
4036 slskdClient := NewSlskd (cfg .Slskd )
4137 slskdClient .AddHeader ()
4238 downloader = append (downloader , slskdClient )
4339 default :
4440 log .Fatalf ("downloader '%s' not supported" , service )
45- == == == =
46- case "lidarr" :
47- downloader = append (downloader , NewLidarr (cfg .Lidarr , cfg .Discovery , cfg .DownloadDir , httpClient ))
48- >> >> >> > 3 f855d8 (Implement initial support for Lidarr downloader )
4941 }
5042 }
5143 return & DownloadClient {
5244 Cfg : cfg ,
5345 Downloaders : downloader }
5446}
5547
56- func (c * DownloadClient ) StartDownload (tracks * []* models.Track ) {
57- for _ , d := range c .Downloaders {
58- var g errgroup.Group
59- g .SetLimit (5 )
60-
61- for _ , track := range * tracks {
62- if track .Present {
63- continue
48+ func (c * DownloadClient ) StartDownload (tracks * []* models.Track ) {
49+ for _ , d := range c .Downloaders {
50+ var g errgroup.Group
51+ g .SetLimit (5 )
52+
53+ for _ , track := range * tracks {
54+ if track .Present {
55+ continue
56+ }
57+
58+ g .Go (func () error {
59+
60+ if err := d .QueryTrack (track ); err != nil {
61+ log .Println (err .Error ())
62+ return nil
6463 }
65-
66- g .Go (func () error {
67-
68- if err := d .QueryTrack (track ); err != nil {
69- log .Println (err .Error ())
70- return nil
71- }
72- if err := d .GetTrack (track ); err != nil {
73- log .Println (err .Error ())
74- return nil
75- }
64+ if err := d .GetTrack (track ); err != nil {
65+ log .Println (err .Error ())
7666 return nil
77- })
67+ }
68+ return nil
69+ })
7870 }
7971 if err := g .Wait (); err != nil {
8072 return
8173 }
82-
74+
8375 if err := d .MonitorDownloads (* tracks ); err != nil {
84- log .Printf ("track monitoring failed: %s" , err .Error ())
76+ log .Printf ("track monitoring failed: %s" , err .Error ())
8577 }
8678 }
8779 filterTracks (tracks )
@@ -113,14 +105,13 @@ func filterTracks(tracks *[]*models.Track) { // only keep tracks that were downl
113105 }
114106 * tracks = filteredTracks
115107}
116- << << << < HEAD
117108
118109func containsLower (str string , substr string ) bool {
119110
120111 return strings .Contains (
121- strings .ToLower (str ),
122- strings .ToLower (substr ),
123- )
112+ strings .ToLower (str ),
113+ strings .ToLower (substr ),
114+ )
124115}
125116
126117func sanitizeName (s string ) string { // return string with only letters and digits
@@ -135,7 +126,5 @@ func getFilename(title, artist string) string {
135126 t := re .ReplaceAllString (title , "_" )
136127 a := re .ReplaceAllString (artist , "_" )
137128
138- return fmt .Sprintf ("%s-%s" ,t , a )
129+ return fmt .Sprintf ("%s-%s" , t , a )
139130}
140- == == == =
141- >> >> >> > 3 f855d8 (Implement initial support for Lidarr downloader )
0 commit comments