@@ -162,52 +162,43 @@ class AnnasArchieve {
162162 Future <BookInfoData ?> _bookInfoParser (resData, url) async {
163163 var document = parse (resData.toString ());
164164 var main = document.querySelector ('main[class="main"]' );
165- var ul = main? .querySelectorAll ('ul[class="list-inside mb-4 ml-1"]' );
165+ var ul = main? .querySelectorAll ('ul[class="list-inside mb-4 ml-1"]>li>a' );
166+ var externalUrlAnchorTags = main
167+ ? .querySelector (
168+ 'ul[class="list-inside mb-4 ml-1 js-show-external hidden"]' )
169+ ? .querySelectorAll ('li>a' );
166170
167171 // List<String> mirrors = [];
168-
169- // if (ul != null) {
170- // var anchorTags = [];
171-
172- // for (var e in ul) {
173- // anchorTags.insertAll(0, e.querySelectorAll('a'));
174- // }
175-
176- // for (var element in anchorTags) {
177- // if (element.attributes['href'] != null &&
178- // element.attributes['href']!.startsWith('/slow_download') &&
179- // element.attributes['href']!.endsWith('/2')) {
180- // String? url =
181- // await _getMirrorLink('$baseUrl${element.attributes['href']!}');
182- // if (url != null && url.isNotEmpty) {
183- // mirrors.add(url);
184- // }
185- // } else if (element.attributes['href']!.startsWith('https://')) {
186- // if (element.attributes['href'] != null &&
187- // element.attributes['href'].contains('ipfs') == true) {
188- // mirrors.add(element.attributes['href']!);
189- // }
190- // }
191- // }
192- // }
193172 String ? mirror;
194173 var anchorTags = [];
195174
196175 if (ul != null ) {
197- for (var e in ul) {
198- anchorTags.insertAll (0 , e.querySelectorAll ('a' ));
176+ for (var element in ul) {
177+ if (element.attributes['href' ] != null &&
178+ element.attributes['href' ]! .startsWith ('/slow_download' ) &&
179+ element.attributes['href' ]! .endsWith ('/2' )) {
180+ mirror = '$baseUrl ${element .attributes ['href' ]}' ;
181+ }
199182 }
200183 }
201184
202- for (var element in anchorTags) {
203- if (element.attributes['href' ] != null &&
204- element.attributes['href' ]! .startsWith ('/slow_download' ) &&
205- element.attributes['href' ]! .endsWith ('/2' )) {
206- mirror = '$baseUrl ${element .attributes ['href' ]}' ;
185+ if (mirror == null ) {
186+ if (externalUrlAnchorTags != null ) {
187+ for (var e in externalUrlAnchorTags) {
188+ if (e.attributes['href' ] != null ) {
189+ anchorTags.add (e.attributes['href' ]);
190+ }
191+ }
192+ }
193+
194+ for (var element in anchorTags) {
195+ if (element.startsWith ('/ipfs_downloads' )) {
196+ mirror = '$baseUrl $element ' ;
197+ }
207198 }
208199 }
209200
210- // print(mirrors );
201+ // print(mirror );
211202
212203 var data = {
213204 'title' : main? .querySelector ('div[class="text-3xl font-bold"]' )? .text,
0 commit comments