This commit is contained in:
kodjomoustapha 2024-03-14 17:46:53 +01:00
parent d168b6ddcd
commit d49de188a4
29 changed files with 68 additions and 68 deletions

View file

@ -6,7 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/eval/dart/bridge/m_source.dart';
import 'package:mangayomi/eval/dart/model/m_bridge.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
/// dart_eval wrapper for [InterceptedClient]
class $Client implements $Instance {
@ -218,7 +218,7 @@ class $Client implements $Instance {
: (jsonDecode(args[1]!.$value) as Map)
.map((key, value) => MapEntry(key.toString(), value));
return $Client.wrap(
MInterceptor.init(source: args[0]?.$value, reqcopyWith: reqcopyWith),
MClient.init(source: args[0]?.$value, reqcopyWith: reqcopyWith),
);
}

View file

@ -1,7 +1,7 @@
import 'dart:convert';
import 'package:flutter_qjs/flutter_qjs.dart';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
class JsHttpClient {
late JavascriptRuntime runtime;
@ -9,7 +9,7 @@ class JsHttpClient {
init() {
runtime.onMessage('http_get', (dynamic args) async {
return jsonEncode((await MInterceptor.init(
return jsonEncode((await MClient.init(
source: null,
reqcopyWith: (args[1] as Map?)?.toMapStringDynamic)
.get(Uri.parse(args[2]),
@ -17,7 +17,7 @@ class JsHttpClient {
.toJson());
});
runtime.onMessage('http_post', (dynamic args) async {
return jsonEncode((await MInterceptor.init(
return jsonEncode((await MClient.init(
source: null,
reqcopyWith: (args[1] as Map?)?.toMapStringDynamic)
.post(Uri.parse(args[2]),
@ -25,7 +25,7 @@ class JsHttpClient {
.toJson());
});
runtime.onMessage('http_put', (dynamic args) async {
return (await MInterceptor.init(
return (await MClient.init(
source: null,
reqcopyWith: (args[1] as Map?)?.toMapStringDynamic)
.put(Uri.parse(args[2]),
@ -33,7 +33,7 @@ class JsHttpClient {
.toJson();
});
runtime.onMessage('http_delete', (dynamic args) async {
return jsonEncode((await MInterceptor.init(
return jsonEncode((await MClient.init(
source: null,
reqcopyWith: (args[1] as Map?)?.map(
(key, value) => MapEntry(key.toString(), value))).delete(
@ -44,7 +44,7 @@ class JsHttpClient {
.toJson());
});
runtime.onMessage('http_patch', (dynamic args) async {
return jsonEncode((await MInterceptor.init(
return jsonEncode((await MClient.init(
source: null,
reqcopyWith: (args[1] as Map?)?.toMapStringDynamic)
.patch(Uri.parse(args[2]),

View file

@ -3,7 +3,7 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/modules/browse/extension/providers/fetch_manga_sources.dart';
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'fetch_anime_sources.g.dart';
@ -11,10 +11,10 @@ part 'fetch_anime_sources.g.dart';
@riverpod
Future fetchAnimeSourcesList(FetchAnimeSourcesListRef ref,
{int? id, required bool reFresh}) async {
final http = MInterceptor.init();
final http = MClient.init();
if (ref.watch(checkForExtensionsUpdateStateProvider) || reFresh) {
final info = await PackageInfo.fromPlatform();
final req = await MInterceptor.init().get(Uri.parse(
final req = await MClient.init().get(Uri.parse(
"https://kodjodevf.github.io/mangayomi-extensions/anime_index.json"));
final res = jsonDecode(req.body) as List;

View file

@ -5,7 +5,7 @@ import 'package:mangayomi/eval/dart/runtime/runtime.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'fetch_manga_sources.g.dart';
@ -13,7 +13,7 @@ part 'fetch_manga_sources.g.dart';
@riverpod
Future fetchMangaSourcesList(FetchMangaSourcesListRef ref,
{int? id, required reFresh}) async {
final http = MInterceptor.init();
final http = MClient.init();
if (ref.watch(checkForExtensionsUpdateStateProvider) || reFresh) {
final info = await PackageInfo.fromPlatform();
final req = await http.get(Uri.parse(

View file

@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:mangayomi/modules/browse/extension/providers/fetch_manga_sources.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@ -80,7 +80,7 @@ Future<void> _launchInBrowser(Uri url) async {
}
Future<(String, String, String)> _checkUpdate() async {
final http = MInterceptor.init();
final http = MClient.init();
try {
final res = await http.get(Uri.parse(
"https://api.github.com/repos/kodjodevf/Mangayomi/releases?page=1&per_page=10"));

View file

@ -6,7 +6,7 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_windows_webview/flutter_windows_webview.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/global_style.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:share_plus/share_plus.dart';
@ -57,7 +57,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
..launch(widget.url)
..addOnWebMessageReceivedCallback((s) {
if (s.substring(0, 2) == "UA") {
MInterceptor.setCookie(_url, s.replaceFirst("UA", ""));
MClient.setCookie(_url, s.replaceFirst("UA", ""));
}
})
..addScriptToExecuteOnDocumentCreated(
@ -68,7 +68,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
for (var c in cookieList) {
final cookie =
c.entries.map((e) => "${e.key}=${e.value}").join(";");
await MInterceptor.setCookie(_url, "", cookie: cookie);
await MClient.setCookie(_url, "", cookie: cookie);
}
}
if (mounted) {
@ -82,7 +82,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
widget.url,
WebviewOptions(messageReceiver: (s) {
if (s.substring(0, 2) == "UA") {
MInterceptor.setCookie(_url, s.replaceFirst("UA", ""));
MClient.setCookie(_url, s.replaceFirst("UA", ""));
}
}, onTitleChange: (_) {
_windowsWebview.runScript(
@ -90,7 +90,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
_windowsWebview.getCookies(widget.url).then((cookies) {
final cookie =
cookies.entries.map((e) => "${e.key}=${e.value}").join("; ");
MInterceptor.setCookie(_url, "", cookie: cookie);
MClient.setCookie(_url, "", cookie: cookie);
});
}));
}
@ -264,7 +264,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
final ua = await controller.evaluateJavascript(
source: "navigator.userAgent") ??
"";
await MInterceptor.setCookie(url.toString(), ua);
await MClient.setCookie(url.toString(), ua);
final canGoback = await controller.canGoBack();
final canGoForward = await controller.canGoForward();
final title = await controller.getTitle();

View file

@ -7,7 +7,7 @@ import 'package:extended_image_library/src/platform.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:http_client_helper/http_client_helper.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:extended_image_library/src/network/extended_network_image_provider.dart'
@ -278,7 +278,7 @@ class CustomExtendedNetworkImageProvider
var request = Request('GET', resolved);
request.headers.addAll(headers ?? {});
StreamedResponse response = await MInterceptor.init().send(request);
StreamedResponse response = await MClient.init().send(request);
return response;
}

View file

@ -1,7 +1,7 @@
import 'dart:math';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class DoodExtractor {
@ -10,7 +10,7 @@ class DoodExtractor {
String? quality,
bool redirect = true,
}) async {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
final newQuality = quality ?? ('Doodstream ${redirect ? ' mirror' : ''}');
try {

View file

@ -1,12 +1,12 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:js_packer/js_packer.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.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 FilemoonExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(
String url, String prefix, String suffix) async {

View file

@ -4,11 +4,11 @@ import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/eval/dart/model/m_bridge.dart';
import 'package:mangayomi/models/video.dart';
import 'package:html/parser.dart' as parser;
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class GogoCdnExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
final JsonCodec json = const JsonCodec();
Future<List<Video>> videosFromUrl(String serverUrl) async {

View file

@ -1,14 +1,14 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:js_packer/js_packer.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.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 Mp4uploadExtractor {
static final RegExp qualityRegex = RegExp(r'\WHEIGHT=(\d+)');
static const String referer = "https://mp4upload.com/";
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url, Map<String, String> headers,
{String prefix = '', String suffix = ''}) async {
final newHeaders = Map<String, String>.from(headers)

View file

@ -1,7 +1,7 @@
import 'dart:async';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class MyStreamExtractor {
@ -9,7 +9,7 @@ class MyStreamExtractor {
String url, Map<String, String> headers) async {
final host = url.substringBefore("/watch");
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
try {
final response = await client.get(Uri.parse(url), headers: headers);

View file

@ -1,11 +1,11 @@
import 'package:html/parser.dart' show parse;
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class MytvExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url) async {
try {

View file

@ -1,11 +1,11 @@
import 'package:html/parser.dart' show parse;
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class OkruExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
String fixQuality(String quality) {
final qualities = {

View file

@ -1,11 +1,11 @@
import 'package:html/parser.dart' as parser;
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class SendvidExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
final Map<String, String> headers;
SendvidExtractor(this.headers);

View file

@ -1,10 +1,10 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class SibnetExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url, {String prefix = ""}) async {
List<Video> videoList = [];

View file

@ -1,11 +1,11 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/others.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class StreamlareExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url,
{String prefix = "", String suffix = ""}) async {

View file

@ -1,13 +1,13 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:html/parser.dart' show parse;
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
class StreamTapeExtractor {
Future<List<Video>> videosFromUrl(String url,
{String quality = "StreamTape"}) async {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
try {
const baseUrl = "https://streamtape.com/e/";
final newUrl =

View file

@ -1,13 +1,13 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:js_packer/js_packer.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/others.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/utils/xpath_selector.dart';
class StreamWishExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
final Map<String, String> headers = {};
Future<List<Video>> videosFromUrl(String url, String prefix) async {

View file

@ -1,11 +1,11 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.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 = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url) async {
try {

View file

@ -1,11 +1,11 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.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 VoeExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url, String? quality) async {
try {

View file

@ -1,11 +1,11 @@
import 'package:http_interceptor/http_interceptor.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/services/http/interceptor.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 YourUploadExtractor {
final InterceptedClient client = MInterceptor.init();
final InterceptedClient client = MClient.init();
Future<List<Video>> videosFromUrl(String url, Map<String, String> headers,
{String name = "YourUpload", String prefix = ""}) async {

View file

@ -1,12 +1,12 @@
import 'dart:convert';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'aniskip.g.dart';
// credits: https://github.com/aniyomiorg/aniyomi/blob/master/app/src/main/java/eu/kanade/tachiyomi/util/AniSkipApi.kt
@riverpod
class AniSkip extends _$AniSkip {
final http = MInterceptor.init();
final http = MClient.init();
@override
void build() {}

View file

@ -13,11 +13,11 @@ import 'package:mangayomi/models/settings.dart';
import 'package:cronet_http/cronet_http.dart';
import 'package:http/io_client.dart';
class MInterceptor {
class MClient {
static final flutter_inappwebview.CookieManager _cookieManager =
flutter_inappwebview.CookieManager.instance();
MInterceptor();
MClient();
static Client httpClient() {
if (Platform.isAndroid) {
if (playStoreAvailability == GooglePlayServicesAvailability.unknown) {
@ -104,7 +104,7 @@ class MCookieManager extends InterceptorContract {
Future<BaseRequest> interceptRequest({
required BaseRequest request,
}) async {
final cookie = MInterceptor.getCookiesPref(request.url.toString());
final cookie = MClient.getCookiesPref(request.url.toString());
if (cookie.isNotEmpty) {
final userAgent = isar.settings.getSync(227)!.userAgent!;
request.headers.addAll(cookie);

View file

@ -7,7 +7,7 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/providers/storage_provider.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/ffi/torrent_server_ffi.dart' as libmtorrentserver_ffi;
import 'package:riverpod_annotation/riverpod_annotation.dart';
@ -45,7 +45,7 @@ class MTorrentServer {
Future<String> getInfohash(String url) async {
try {
final torrentByte =
(await MInterceptor.init().get(Uri.parse(url))).bodyBytes;
(await MClient.init().get(Uri.parse(url))).bodyBytes;
var request =
MultipartRequest('POST', Uri.parse('$_baseUrl/torrent/add'));

View file

@ -8,13 +8,13 @@ import 'dart:convert';
import 'package:mangayomi/models/track_search.dart';
import 'package:mangayomi/modules/more/settings/track/myanimelist/model.dart';
import 'package:mangayomi/modules/more/settings/track/providers/track_providers.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'anilist.g.dart';
@riverpod
class Anilist extends _$Anilist {
final http = MInterceptor.init();
final http = MClient.init();
final String _clientId =
(Platform.isWindows || Platform.isLinux) ? '13587' : '13588';
static const String _baseApiUrl = "https://graphql.anilist.co/";

View file

@ -8,13 +8,13 @@ import 'dart:convert';
import 'package:mangayomi/models/track_search.dart';
import 'package:mangayomi/modules/more/settings/track/myanimelist/model.dart';
import 'package:mangayomi/modules/more/settings/track/providers/track_providers.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'kitsu.g.dart';
@riverpod
class Kitsu extends _$Kitsu {
final http = MInterceptor.init();
final http = MClient.init();
final String _clientId =
'dd031b32d2f56c990b1425efe6c42ad847e7fe3ab46bf1299f05ecd856bdb7dd';
final String _clientSecret =

View file

@ -9,13 +9,13 @@ import 'package:mangayomi/models/track_preference.dart';
import 'package:mangayomi/models/track_search.dart';
import 'package:mangayomi/modules/more/settings/track/myanimelist/model.dart';
import 'package:mangayomi/modules/more/settings/track/providers/track_providers.dart';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'myanimelist.g.dart';
@riverpod
class MyAnimeList extends _$MyAnimeList {
final http = MInterceptor.init();
final http = MClient.init();
String baseOAuthUrl = 'https://myanimelist.net/v1/oauth2';
String baseApiUrl = 'https://api.myanimelist.net/v2';
String codeVerifier = "";

View file

@ -1,5 +1,5 @@
import 'dart:convert';
import 'package:mangayomi/services/http/interceptor.dart';
import 'package:mangayomi/services/http/m_client.dart';
import 'package:mangayomi/sources/utils/utils.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'headers.g.dart';
@ -15,7 +15,7 @@ Map<String, String> headers(HeadersRef ref,
.map((key, value) => MapEntry(key.toString(), value.toString()));
}
final cookies = MInterceptor.getCookiesPref(mSource.baseUrl!);
final cookies = MClient.getCookiesPref(mSource.baseUrl!);
headers.addAll(cookies);
return headers;