mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
51 lines
1.4 KiB
Dart
51 lines
1.4 KiB
Dart
// ignore_for_file: avoid_print
|
||
|
||
import 'dart:io';
|
||
import 'package:dio/dio.dart';
|
||
// import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||
import '../pages/mine/controller.dart';
|
||
import 'api.dart';
|
||
|
||
class AnonymityInterceptor extends Interceptor {
|
||
static const List<String> anonymityList = [
|
||
Api.videoUrl,
|
||
Api.videoIntro,
|
||
Api.relatedList,
|
||
Api.replyList,
|
||
Api.replyReplyList,
|
||
Api.searchSuggest,
|
||
Api.searchByType,
|
||
Api.heartBeat,
|
||
Api.ab2c,
|
||
Api.bangumiInfo,
|
||
Api.liveRoomInfo,
|
||
Api.onlineTotal,
|
||
Api.webDanmaku,
|
||
Api.dynamicDetail,
|
||
Api.aiConclusion,
|
||
Api.getSeasonDetailApi,
|
||
];
|
||
|
||
|
||
@override
|
||
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
|
||
if (MineController.anonymity) {
|
||
String uri = options.uri.toString();
|
||
for (var i in anonymityList) {
|
||
// 如果请求的url包含无痕列表中的url,则清空cookie
|
||
// 但需要保证匹配到url的后半部分不再出现/符号,否则会误伤
|
||
int index = uri.indexOf(i);
|
||
if (index == -1) continue;
|
||
if (uri.lastIndexOf('/') >= index + i.length) continue;
|
||
//SmartDialog.showToast('触发无痕模式\n\n$i\n\n${options.uri}');
|
||
options.headers[HttpHeaders.cookieHeader] = "";
|
||
if(options.data != null && options.data.csrf != null) {
|
||
options.data.csrf = "";
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
handler.next(options);
|
||
}
|
||
}
|