@@ -19,6 +19,7 @@ import (
1919 "github.com/eduardooliveira/stLib/core/data/database"
2020 "github.com/eduardooliveira/stLib/core/downloader/tools"
2121 "github.com/eduardooliveira/stLib/core/entities"
22+ "github.com/eduardooliveira/stLib/core/processing/types"
2223 "github.com/eduardooliveira/stLib/core/utils"
2324 "golang.org/x/net/html"
2425)
@@ -73,12 +74,19 @@ func Fetch(urlString string, cookies []*http.Cookie, userAgent string) error {
7374 return err
7475 }
7576
76- assets := make ([]* entities. ProjectAsset , 0 )
77+ assets := make ([]* types. ProcessableAsset , 0 )
7778 as , err := mwc .fetchCover ()
7879 if err != nil {
7980 log .Println ("error fetching cover" )
8081 return err
8182 }
83+
84+ for _ , a := range as {
85+ if a .Asset != nil {
86+ project .DefaultImageID = a .Asset .ID
87+ }
88+ }
89+
8290 assets = append (assets , as ... )
8391
8492 as , err = mwc .fetchModels ()
@@ -88,75 +96,83 @@ func Fetch(urlString string, cookies []*http.Cookie, userAgent string) error {
8896 }
8997 assets = append (assets , as ... )
9098
91- err = mwc .fetchInstances ()
99+ _ , err = mwc .fetchInstances ()
92100 if err != nil {
93101 log .Println ("error fetching models" )
94102 return err
95103 }
96104
97- err = mwc .fetchPictures ()
105+ as , err = mwc .fetchPictures ()
98106 if err != nil {
99107 log .Println ("error fetching pictures" )
100108 return err
101109 }
110+ assets = append (assets , as ... )
111+
112+ if project .DefaultImageID == "" {
113+ for _ , a := range assets {
114+ if a .Asset != nil && a .Asset .AssetType == "image" {
115+ project .DefaultImageID = a .Asset .ID
116+ break
117+ }
118+ }
119+ }
102120
103121 return database .InsertProject (project )
104122}
105123
106- func (mwc * mwClient ) fetchCover () (assets []* entities. ProjectAsset , err error ) {
124+ func (mwc * mwClient ) fetchCover () ([]* types. ProcessableAsset , error ) {
107125 req , err := http .NewRequest ("GET" , mwc .metadata .Props .PageProps .Design .CoverURL , nil )
108126 if err != nil {
109127 return nil , err
110128 }
111129 req .Header .Add ("User-Agent" , mwc .userAgent )
112130
113- assets = make ([]* entities.ProjectAsset , 0 )
114- err = tools .DownloadAsset (path .Base (mwc .metadata .Props .PageProps .Design .CoverURL ), mwc .project , mwc .client , req )
115- if err != nil {
116- log .Println ("Error fetchig cover, skiping: " , err )
117- return
118- }
119-
120- return
131+ return tools .DownloadAsset (path .Base (mwc .metadata .Props .PageProps .Design .CoverURL ), mwc .project , mwc .client , req )
121132}
122133
123- func (mwc * mwClient ) fetchPictures () (err error ) {
134+ func (mwc * mwClient ) fetchPictures () ([]* types.ProcessableAsset , error ) {
135+ assets := make ([]* types.ProcessableAsset , 0 )
124136 for _ , p := range mwc .metadata .Props .PageProps .Design .DesignExtension .DesignPictures {
125137 req , err := http .NewRequest ("GET" , p .URL , nil )
126138 if err != nil {
127- return err
139+ return nil , err
128140 }
129141 req .Header .Add ("User-Agent" , mwc .userAgent )
130142
131- err = tools .DownloadAsset (p .Name , mwc .project , mwc .client , req )
143+ a , err : = tools .DownloadAsset (p .Name , mwc .project , mwc .client , req )
132144 if err != nil {
133145 log .Println ("Error fetchig image, skiping: " , err )
134146 continue
135147 }
148+ assets = append (assets , a ... )
136149 }
137150
138- return
151+ return assets , nil
139152}
140153
141- func (mwc * mwClient ) fetchModels () (assets []* entities.ProjectAsset , err error ) {
154+ func (mwc * mwClient ) fetchModels () ([]* types.ProcessableAsset , error ) {
155+ assets := make ([]* types.ProcessableAsset , 0 )
142156 for _ , m := range mwc .metadata .Props .PageProps .Design .DesignExtension .ModelFiles {
143157 req , err := http .NewRequest ("GET" , m .ModelURL , nil )
144158 if err != nil {
145159 return nil , err
146160 }
147161 req .Header .Add ("User-Agent" , mwc .userAgent )
148162
149- err = tools .DownloadAsset (m .ModelName , mwc .project , mwc .client , req )
163+ a , err : = tools .DownloadAsset (m .ModelName , mwc .project , mwc .client , req )
150164 if err != nil {
151165 log .Println ("Error fetchig model, skiping: " , err )
152166 continue
153167 }
168+ assets = append (assets , a ... )
154169 }
155170
156- return
171+ return assets , nil
157172}
158173
159- func (mwc * mwClient ) fetchInstances () (err error ) {
174+ func (mwc * mwClient ) fetchInstances () ([]* types.ProcessableAsset , error ) {
175+ assets := make ([]* types.ProcessableAsset , 0 )
160176
161177 for _ , m := range mwc .metadata .Props .PageProps .Design .Instances {
162178 sl := rand .Intn (6000 - 3000 ) + 3000
@@ -169,7 +185,7 @@ func (mwc *mwClient) fetchInstances() (err error) {
169185 }
170186 req , err := http .NewRequest ("GET" , mfData .URL , nil )
171187 if err != nil {
172- return err
188+ return nil , err
173189 }
174190 req .Header .Add ("User-Agent" , mwc .userAgent )
175191
@@ -180,14 +196,16 @@ func (mwc *mwClient) fetchInstances() (err error) {
180196 sl = rand .Intn (6000 - 3000 ) + 3000
181197 log .Println ("sleeping: " , sl )
182198 time .Sleep (time .Duration (sl ) * time .Millisecond )
183- err = tools .DownloadAsset (name , mwc .project , mwc .client , req )
199+
200+ a , err := tools .DownloadAsset (name , mwc .project , mwc .client , req )
184201 if err != nil {
185202 log .Println ("Failed to download 3MF File, skipping" )
186203 continue
187204 }
205+ assets = append (assets , a ... )
188206 }
189207
190- return
208+ return assets , nil
191209}
192210
193211func (mwc * mwClient ) fetch3MFData (id int ) (* mf , error ) {
0 commit comments