mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-05-14 15:48:03 +08:00
Merge branch 'develop' into flutter-3.19.6
This commit is contained in:
@@ -213,7 +213,7 @@ class RequestRewriteManager {
|
||||
rewriteItemsCache[rule] = items;
|
||||
}
|
||||
|
||||
removeIndex(List<int> indexes) async {
|
||||
Future<void> removeIndex(List<int> indexes) async {
|
||||
for (var i in indexes) {
|
||||
var rule = rules.removeAt(i);
|
||||
rewriteItemsCache.remove(rule); //删除缓存
|
||||
|
||||
@@ -51,7 +51,10 @@ class RequestRewriteRule {
|
||||
: _urlReg = RegExp(url.replaceAll("*", ".*").replaceAll('?', '\\?'));
|
||||
|
||||
bool match(String url, {RuleType? type}) {
|
||||
return enabled && (type == null || this.type == type) && _urlReg.hasMatch(url);
|
||||
if (enabled && (type == null || this.type == type)) {
|
||||
return _urlReg.hasMatch(url);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool matchUrl(String url, RuleType type) {
|
||||
|
||||
@@ -223,7 +223,7 @@ async function onResponse(context, request, response) {
|
||||
|
||||
///刷新配置
|
||||
Future<void> flushConfig() async {
|
||||
_path.then((value) => value.writeAsString(jsonEncode({'enabled': enabled, 'list': list})));
|
||||
await _path.then((value) => value.writeAsString(jsonEncode({'enabled': enabled, 'list': list})));
|
||||
}
|
||||
|
||||
Map<dynamic, dynamic> scriptSession = {};
|
||||
|
||||
@@ -40,7 +40,8 @@ class RequestRewriteInterceptor extends Interceptor {
|
||||
@override
|
||||
Future<HttpRequest?> onRequest(HttpRequest request) async {
|
||||
//重写请求
|
||||
await requestRewrite(request);
|
||||
var url = request.requestUrl;
|
||||
await requestRewrite(url, request);
|
||||
return request;
|
||||
}
|
||||
|
||||
@@ -48,8 +49,8 @@ class RequestRewriteInterceptor extends Interceptor {
|
||||
Future<HttpResponse?> onResponse(HttpRequest request, HttpResponse response) async {
|
||||
//重写响应
|
||||
try {
|
||||
var uri = request.domainPath;
|
||||
await responseRewrite(uri, response);
|
||||
var url = request.requestUrl;
|
||||
await responseRewrite(url, response);
|
||||
} catch (e, t) {
|
||||
response.body = "$e".codeUnits;
|
||||
logger.e('[${request.requestId}] 响应重写异常 ', error: e, stackTrace: t);
|
||||
@@ -75,8 +76,7 @@ class RequestRewriteInterceptor extends Interceptor {
|
||||
}
|
||||
|
||||
/// 重写请求
|
||||
Future<void> requestRewrite(HttpRequest request) async {
|
||||
var url = request.requestUrl;
|
||||
Future<void> requestRewrite(String url, HttpRequest request) async {
|
||||
var manager = await RequestRewriteManager.instance;
|
||||
var rewriteRule = manager.getRewriteRule(url, [RuleType.requestReplace, RuleType.requestUpdate]);
|
||||
|
||||
|
||||
@@ -170,11 +170,7 @@ class _RequestWidgetState extends State<RequestWidget> {
|
||||
.then((value) => FlutterToastr.show(localizations.copied, rootNavigator: true, context));
|
||||
},
|
||||
),
|
||||
]),
|
||||
onClick: (_) {
|
||||
Clipboard.setData(ClipboardData(text: curlRequest(widget.request)))
|
||||
.then((value) => FlutterToastr.show(localizations.copied, rootNavigator: true, context));
|
||||
}),
|
||||
])),
|
||||
MenuItem.separator(),
|
||||
MenuItem(label: localizations.repeat, onClick: (_) => onRepeat(widget.request)),
|
||||
MenuItem(label: localizations.customRepeat, onClick: (_) => showCustomRepeat(widget.request)),
|
||||
|
||||
@@ -426,9 +426,9 @@ class _RequestRuleListState extends State<RequestRuleList> {
|
||||
showGlobalMenu(details.globalPosition);
|
||||
return;
|
||||
}
|
||||
// setState(() {
|
||||
// selected[index] = true;
|
||||
// });
|
||||
setState(() {
|
||||
selected[index] = true;
|
||||
});
|
||||
showContextMenu(context, details.globalPosition, items: [
|
||||
PopupMenuItem(height: 35, child: Text(localizations.edit), onTap: () => showEdit(index)),
|
||||
PopupMenuItem(height: 35, onTap: () => export([index]), child: Text(localizations.export)),
|
||||
@@ -446,11 +446,12 @@ class _RequestRuleListState extends State<RequestRuleList> {
|
||||
onTap: () async {
|
||||
await widget.requestRewrites.removeIndex([index]);
|
||||
MultiWindow.invokeRefreshRewrite(Operation.delete, index: index);
|
||||
// setState(() {});
|
||||
})
|
||||
]).then((value) {
|
||||
// setState(() {
|
||||
// selected.remove(index);
|
||||
// });
|
||||
setState(() {
|
||||
selected.remove(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ class RewriteReplaceState extends State<DesktopRewriteReplace> {
|
||||
: [localizations.statusCode, localizations.responseHeader, localizations.responseBody];
|
||||
|
||||
return Container(
|
||||
constraints: const BoxConstraints(maxHeight: 360),
|
||||
constraints: const BoxConstraints(maxHeight: 370),
|
||||
child: DefaultTabController(
|
||||
length: tabs.length,
|
||||
initialIndex: tabs.length - 1,
|
||||
|
||||
@@ -42,9 +42,9 @@ void _refreshScript() {
|
||||
return;
|
||||
}
|
||||
_refresh = true;
|
||||
Future.delayed(const Duration(milliseconds: 1000), () async {
|
||||
Future.delayed(const Duration(milliseconds: 1500), () async {
|
||||
_refresh = false;
|
||||
(await ScriptManager.instance).flushConfig();
|
||||
await ScriptManager.instance.then((manager) => manager.flushConfig());
|
||||
await DesktopMultiWindow.invokeMethod(0, "refreshScript");
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user