mangayomi-mirror/lib/services/anime_extractors/vidbom_extractor.dart
Moustapha Kodjo Amadou 3e401c8af2 dart format
2025-02-23 15:31:49 +01:00

37 lines
1.2 KiB
Dart

import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/utils/xpath_selector.dart';
class VidBomExtractor {
final InterceptedClient client = MClient.init(
reqcopyWith: {'useDartHttpClient': true},
);
Future<List<Video>> videosFromUrl(String url) async {
try {
final response = await client.get(Uri.parse(url));
final script =
xpathSelector(
response.body,
).queryXPath('//script[contains(text(), "sources")]/text()').attrs;
final data = script.first!
.substringAfter('sources: [')
.substringBefore('],');
return data.split('file:"').skip(1).map((source) {
final src = source.substringBefore('"');
var quality =
'Vidbom - ${source.substringAfter('label:"').substringBefore('"')}';
if (quality.length > 15) {
quality = 'Vidshare - 480p';
}
return Video(src, quality, src);
}).toList();
} catch (_) {
return [];
}
}
}