mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-01-11 22:40:36 +00:00
add show btn to resolve cloudflare challenge
This commit is contained in:
parent
c1fe2b6c95
commit
d6f4c99ea1
6 changed files with 33 additions and 23 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -44,5 +44,4 @@ app.*.map.json
|
|||
/android/app/profile
|
||||
/android/app/release
|
||||
|
||||
# FVM Version Cache
|
||||
.fvm/
|
||||
untranslated_messages.txt
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
# Run with `flutter gen-l10n`.
|
||||
arb-dir: lib/l10n
|
||||
template-arb-file: app_en.arb
|
||||
# untranslated-messages-file: untranslated_messages.txt
|
||||
untranslated-messages-file: untranslated_messages.txt
|
||||
output-localization-file: app_localizations.dart
|
||||
|
|
@ -3,6 +3,7 @@ import 'package:bot_toast/bot_toast.dart';
|
|||
import 'package:dart_eval/dart_eval_bridge.dart';
|
||||
import 'package:dart_eval/stdlib/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:html/dom.dart' hide Text;
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
|
@ -11,6 +12,7 @@ import 'package:json_path/json_path.dart';
|
|||
import 'package:mangayomi/eval/dart/model/document.dart';
|
||||
import 'package:mangayomi/eval/javascript/http.dart';
|
||||
import 'package:mangayomi/models/manga.dart';
|
||||
import 'package:mangayomi/router/router.dart';
|
||||
import 'package:mangayomi/services/anime_extractors/dood_extractor.dart';
|
||||
import 'package:mangayomi/services/anime_extractors/filemoon.dart';
|
||||
import 'package:mangayomi/services/anime_extractors/gogocdn_extractor.dart';
|
||||
|
|
@ -29,6 +31,7 @@ import 'package:mangayomi/services/anime_extractors/your_upload_extractor.dart';
|
|||
import 'package:mangayomi/utils/cryptoaes/crypto_aes.dart';
|
||||
import 'package:mangayomi/utils/cryptoaes/deobfuscator.dart';
|
||||
import 'package:mangayomi/utils/cryptoaes/js_unpacker.dart';
|
||||
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
|
||||
import 'package:mangayomi/utils/extensions/string_extensions.dart';
|
||||
import 'package:mangayomi/utils/reg_exp_matcher.dart';
|
||||
import 'package:xpath_selector_html_parser/xpath_selector_html_parser.dart';
|
||||
|
|
@ -667,7 +670,10 @@ void botToast(String title,
|
|||
{int second = 10,
|
||||
double? fontSize,
|
||||
double alignX = 0,
|
||||
double alignY = 0.99}) {
|
||||
double alignY = 0.99,
|
||||
bool hasCloudFlare = false,
|
||||
String? url}) {
|
||||
final context = navigatorKey.currentState?.context;
|
||||
final assets = [
|
||||
'assets/app_icons/icon-black.png',
|
||||
'assets/app_icons/icon-red.png'
|
||||
|
|
@ -680,10 +686,19 @@ void botToast(String title,
|
|||
animationDuration: const Duration(milliseconds: 200),
|
||||
animationReverseDuration: const Duration(milliseconds: 200),
|
||||
leading: (_) => Image.asset((assets..shuffle()).first, height: 25),
|
||||
title: (_) => Text(
|
||||
title,
|
||||
style: TextStyle(fontSize: fontSize),
|
||||
),
|
||||
title: (_) => Text(title, style: TextStyle(fontSize: fontSize)),
|
||||
trailing: hasCloudFlare
|
||||
? (_) => OutlinedButton.icon(
|
||||
style: OutlinedButton.styleFrom(elevation: 10),
|
||||
onPressed: () {
|
||||
context
|
||||
?.push("/mangawebview", extra: {'url': url, 'title': ''});
|
||||
},
|
||||
label: Text("Resolve Cloudflare challenge",
|
||||
style: TextStyle(color: context?.secondaryColor)),
|
||||
icon: const Icon(Icons.public),
|
||||
)
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,8 @@ import 'package:share_plus/share_plus.dart';
|
|||
|
||||
class MangaWebView extends ConsumerStatefulWidget {
|
||||
final String url;
|
||||
final String sourceId;
|
||||
final String title;
|
||||
const MangaWebView(
|
||||
{super.key,
|
||||
required this.url,
|
||||
required this.sourceId,
|
||||
required this.title});
|
||||
const MangaWebView({super.key, required this.url, required this.title});
|
||||
|
||||
@override
|
||||
ConsumerState<MangaWebView> createState() => _MangaWebViewState();
|
||||
|
|
|
|||
|
|
@ -41,17 +41,18 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|||
import 'package:flutter/cupertino.dart';
|
||||
part 'router.g.dart';
|
||||
|
||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
@riverpod
|
||||
GoRouter router(RouterRef ref) {
|
||||
final router = RouterNotifier();
|
||||
|
||||
return GoRouter(
|
||||
observers: [BotToastNavigatorObserver()],
|
||||
initialLocation: '/MangaLibrary',
|
||||
debugLogDiagnostics: kDebugMode,
|
||||
refreshListenable: router,
|
||||
routes: router._routes,
|
||||
);
|
||||
observers: [BotToastNavigatorObserver()],
|
||||
initialLocation: '/MangaLibrary',
|
||||
debugLogDiagnostics: kDebugMode,
|
||||
refreshListenable: router,
|
||||
routes: router._routes,
|
||||
navigatorKey: navigatorKey);
|
||||
}
|
||||
|
||||
@riverpod
|
||||
|
|
@ -380,7 +381,6 @@ class RouterNotifier extends ChangeNotifier {
|
|||
final data = state.extra as Map<String, dynamic>;
|
||||
return MangaWebView(
|
||||
url: data["url"]!,
|
||||
sourceId: data["sourceId"]!,
|
||||
title: data['title']!,
|
||||
);
|
||||
},
|
||||
|
|
@ -390,7 +390,6 @@ class RouterNotifier extends ChangeNotifier {
|
|||
key: state.pageKey,
|
||||
child: MangaWebView(
|
||||
url: data["url"]!,
|
||||
sourceId: data["sourceId"]!,
|
||||
title: data['title']!,
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -176,7 +176,8 @@ class LoggerInterceptor extends InterceptorContract {
|
|||
Logger.add(LoggerLevel.info,
|
||||
"----- Response -----\n${response.request?.method}: ${response.request?.url}, statusCode: ${response.statusCode} ${cloudflare ? "Failed to bypass Cloudflare" : ""}");
|
||||
if (cloudflare) {
|
||||
botToast("${response.statusCode} Failed to bypass Cloudflare");
|
||||
botToast("${response.statusCode} Failed to bypass Cloudflare",
|
||||
hasCloudFlare: cloudflare, url: response.request!.url.toString());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue