mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
Fix cloudflare bypass
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
|||||||
import 'package:venera/foundation/app.dart';
|
import 'package:venera/foundation/app.dart';
|
||||||
import 'package:venera/foundation/appdata.dart';
|
import 'package:venera/foundation/appdata.dart';
|
||||||
import 'package:venera/foundation/consts.dart';
|
import 'package:venera/foundation/consts.dart';
|
||||||
|
import 'package:venera/foundation/log.dart';
|
||||||
import 'package:venera/pages/webview.dart';
|
import 'package:venera/pages/webview.dart';
|
||||||
import 'package:venera/utils/ext.dart';
|
import 'package:venera/utils/ext.dart';
|
||||||
|
|
||||||
@@ -121,9 +122,18 @@ void passCloudflare(CloudflareException e, void Function() onFinished) async {
|
|||||||
var webview = DesktopWebview(
|
var webview = DesktopWebview(
|
||||||
initialUrl: url,
|
initialUrl: url,
|
||||||
onTitleChange: (title, controller) async {
|
onTitleChange: (title, controller) async {
|
||||||
var res = await controller.evaluateJavascript(
|
var head =
|
||||||
"document.head.innerHTML.includes('#challenge-success-text')");
|
await controller.evaluateJavascript("document.head.innerHTML") ??
|
||||||
if (res == 'false') {
|
"";
|
||||||
|
Log.info("Cloudflare", "Checking head: $head");
|
||||||
|
var isChallenging = head.contains('#challenge-success-text') ||
|
||||||
|
head.contains("#challenge-error-text") ||
|
||||||
|
head.contains("#challenge-form");
|
||||||
|
if (!isChallenging) {
|
||||||
|
Log.info(
|
||||||
|
"Cloudflare",
|
||||||
|
"Cloudflare is passed due to there is no challenge css",
|
||||||
|
);
|
||||||
var ua = controller.userAgent;
|
var ua = controller.userAgent;
|
||||||
if (ua != null) {
|
if (ua != null) {
|
||||||
appdata.implicitData['ua'] = ua;
|
appdata.implicitData['ua'] = ua;
|
||||||
@@ -143,10 +153,17 @@ void passCloudflare(CloudflareException e, void Function() onFinished) async {
|
|||||||
webview.open();
|
webview.open();
|
||||||
} else {
|
} else {
|
||||||
void check(InAppWebViewController controller) async {
|
void check(InAppWebViewController controller) async {
|
||||||
var res = await controller.platform.evaluateJavascript(
|
var head = await controller.evaluateJavascript(
|
||||||
source:
|
source: "document.head.innerHTML") as String;
|
||||||
"document.head.innerHTML.includes('#challenge-success-text')");
|
Log.info("Cloudflare", "Checking head: $head");
|
||||||
if (res == false) {
|
var isChallenging = head.contains('#challenge-success-text') ||
|
||||||
|
head.contains("#challenge-error-text") ||
|
||||||
|
head.contains("#challenge-form");
|
||||||
|
if (!isChallenging) {
|
||||||
|
Log.info(
|
||||||
|
"Cloudflare",
|
||||||
|
"Cloudflare is passed due to there is no challenge css",
|
||||||
|
);
|
||||||
var ua = await controller.getUA();
|
var ua = await controller.getUA();
|
||||||
if (ua != null) {
|
if (ua != null) {
|
||||||
appdata.implicitData['ua'] = ua;
|
appdata.implicitData['ua'] = ua;
|
||||||
|
Reference in New Issue
Block a user