mangayomi/lib/services/anime_extractors/vidbom_extractor.dart
2023-07-30 21:10:44 +01:00

28 lines
936 B
Dart

import 'package:http/http.dart' as http;
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/utils/extensions.dart';
import 'package:mangayomi/utils/xpath_selector.dart';
class VidBomExtractor {
final http.Client client = http.Client();
Future<List<Video>> videosFromUrl(String url) async {
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();
}
}