@@ -6,34 +6,34 @@ import (
6
6
"path"
7
7
8
8
"github.com/go-phie/gophie/engine"
9
- "github.com/iawia002/annie/config"
10
9
"github.com/iawia002/annie/downloader"
10
+ "github.com/iawia002/annie/extractors/types"
11
11
"github.com/iawia002/annie/request"
12
12
"github.com/iawia002/annie/utils"
13
13
log "github.com/sirupsen/logrus"
14
14
"github.com/spf13/viper"
15
15
)
16
16
17
17
// Extract is the main function for extracting data before passing to Annie
18
- func Extract (url , source string ) ([]downloader .Data , error ) {
18
+ func Extract (url , source string ) ([]* types .Data , error ) {
19
19
20
20
filename , ext , err := utils .GetNameAndExt (url )
21
21
if err != nil {
22
22
return nil , err
23
23
}
24
24
size , err := request .Size (url , url )
25
- log .Debug (size )
26
25
if err != nil {
27
26
return nil , err
28
27
}
29
- urlData := downloader.URL {
30
- URL : url ,
31
- Size : size ,
32
- Ext : ext ,
33
- }
34
- streams := map [string ]downloader.Stream {
28
+ streams := map [string ]* types.Stream {
35
29
"default" : {
36
- URLs : []downloader.URL {urlData },
30
+ Parts : []* types.Part {
31
+ {
32
+ URL : url ,
33
+ Size : size ,
34
+ Ext : ext ,
35
+ },
36
+ },
37
37
Size : size ,
38
38
},
39
39
}
@@ -42,11 +42,11 @@ func Extract(url, source string) ([]downloader.Data, error) {
42
42
return nil , err
43
43
}
44
44
45
- return []downloader .Data {
45
+ return []* types .Data {
46
46
{
47
47
Site : source ,
48
48
Title : filename ,
49
- Type : contentType ,
49
+ Type : types . DataType ( contentType ) ,
50
50
Streams : streams ,
51
51
URL : url ,
52
52
},
@@ -69,7 +69,7 @@ type Downloader struct {
69
69
func (f * Downloader ) DownloadFile () error {
70
70
var (
71
71
err error
72
- data []downloader .Data
72
+ data []* types .Data
73
73
)
74
74
75
75
// Extract data to be downloaded with the streams
@@ -90,14 +90,17 @@ func (f *Downloader) DownloadFile() error {
90
90
}
91
91
}
92
92
93
- config .OutputPath = f .Dir
94
93
for _ , item := range data {
95
94
if item .Err != nil {
96
95
// if this error occurs, the preparation step is normal, but the data extraction is wrong.
97
96
// the data is an empty struct.
98
97
return item .Err
99
98
}
100
- err = downloader .Download (item , f .URL , config .ChunkSizeMB )
99
+ movieDownloader := downloader .New (downloader.Options {
100
+ OutputPath : f .Dir ,
101
+ Stream : "default" ,
102
+ })
103
+ err = movieDownloader .Download (item )
101
104
if err != nil {
102
105
return err
103
106
}
0 commit comments