From af3af2842361fdb016bc6a9aa7b8dc8ec9ca93fc Mon Sep 17 00:00:00 2001
From: CN_SZTL
Date: Wed, 16 Oct 2019 23:14:57 +0800
Subject: [PATCH] OpenClash: update to latest git HEAD
---
package/ctcgfw/luci-app-openclash/Makefile | 2 +-
.../config/openclash_custom_fake_black.conf | 29 ++++++++-
.../files/etc/init.d/openclash | 15 +++--
.../files/etc/openclash/openclash_version | 4 +-
.../usr/lib/lua/luci/controller/openclash.lua | 9 +++
.../model/cbi/openclash/groups-config.lua | 10 ++-
.../model/cbi/openclash/servers-config.lua | 8 ++-
.../lua/luci/model/cbi/openclash/servers.lua | 9 ++-
.../lua/luci/model/cbi/openclash/settings.lua | 36 +++++------
.../lib/lua/luci/view/openclash/developer.htm | 42 +++++++++++--
.../usr/lib/lua/luci/view/openclash/myip.htm | 7 +--
.../usr/lib/lua/luci/view/openclash/ping.htm | 3 +
.../lua/luci/view/openclash/server_list.htm | 32 ++++++++++
.../lib/lua/luci/view/openclash/status.htm | 10 +--
.../cfg_servers_address_fake_block.sh | 13 ++++
.../files/usr/share/openclash/openclash.sh | 58 +++++++++++++-----
.../share/openclash/openclash_fake_block.sh | 31 +++++++++-
.../files/usr/share/openclash/yml_change.sh | 6 +-
.../usr/share/openclash/yml_proxys_get.sh | 37 ++++++-----
.../usr/share/openclash/yml_proxys_set.sh | 3 +
.../i18n/zh-cn/openclash.zh-cn.po | 52 +++++++++++-----
.../tools/po2lmo/src/po2lmo | Bin
22 files changed, 311 insertions(+), 105 deletions(-)
create mode 100644 package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm
create mode 100644 package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm
create mode 100755 package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh
mode change 100755 => 100644 package/ctcgfw/luci-app-openclash/tools/po2lmo/src/po2lmo
diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile
index 96b618cbc1..50900ab0b4 100644
--- a/package/ctcgfw/luci-app-openclash/Makefile
+++ b/package/ctcgfw/luci-app-openclash/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-openclash
-PKG_VERSION:=0.34.7
+PKG_VERSION:=0.35.2
PKG_RELEASE:=beta
PKG_MAINTAINER:=vernesong
diff --git a/package/ctcgfw/luci-app-openclash/files/etc/config/openclash_custom_fake_black.conf b/package/ctcgfw/luci-app-openclash/files/etc/config/openclash_custom_fake_black.conf
index 04c85abb73..74bce50e2d 100644
--- a/package/ctcgfw/luci-app-openclash/files/etc/config/openclash_custom_fake_black.conf
+++ b/package/ctcgfw/luci-app-openclash/files/etc/config/openclash_custom_fake_black.conf
@@ -50,11 +50,38 @@ time2.google.com
time3.google.com
time4.google.com
#放行网易云音乐
-.music.163.com
+music.163.com
interface.music.163.com
interface3.music.163.com
apm.music.163.com
apm3.music.163.com
+clientlog.music.163.com
+clientlog3.music.163.com
+music.126.net
+vod.126.net
+#百度音乐
+sug.qianqian.com
+music.taihe.com
+#酷狗音乐
+songsearch.kugou.com
+trackercdn.kugou.com
+#酷我音乐
+kuwo.cn
+#JOOX音乐
+api-jooxtt.sanook.com
+api.joox.com
+#QQ音乐
+y.qq.com
+streamoc.music.tc.qq.com
+mobileoc.music.tc.qq.com
+isure.stream.qqmusic.qq.com
+dl.stream.qqmusic.qq.com
+aqqmusic.tc.qq.com
+amobile.music.tc.qq.com
+#虾米音乐
+xiami.com
+#咪咕音乐
+music.migu.cn
#win10本地连接检测
msftconnecttest.com
msftncsi.com
diff --git a/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash
index ca018cd722..31e03d45d9 100755
--- a/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash
+++ b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash
@@ -56,7 +56,8 @@ change_dns() {
}
revert_dns() {
- uci del dhcp.@dnsmasq[-1].server >/dev/null 2>&1
+ dns_port=$(uci get openclash.config.dns_port 2>/dev/null)
+ uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port" >/dev/null 2>&1
uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto
uci set dhcp.@dnsmasq[0].noresolv=0
uci delete dhcp.@dnsmasq[0].cachesize
@@ -67,9 +68,13 @@ revert_dns() {
fake_block() {
if [ "$1" = "fake-ip" ]; then
if [ ! -f /etc/openclash/dnsmasq_fake_block.conf ]; then
- sh /usr/share/openclash/openclash_fake_block.sh
+ /usr/share/openclash/openclash_fake_block.sh
+ elif [ "$(awk -F '/' '{print $3}' /etc/openclash/dnsmasq_fake_block.conf |head -1)" != "114.114.114.114" ] && [ -z "$2" ]; then
+ /usr/share/openclash/openclash_fake_block.sh
elif [ "$(awk -F '/' '{print $3}' /etc/openclash/dnsmasq_fake_block.conf |head -1)" != "$2" ] && [ ! -z "$2" ]; then
- sh /usr/share/openclash/openclash_fake_block.sh
+ /usr/share/openclash/openclash_fake_block.sh
+ elif [ ! -z "$(grep "config servers" /etc/config/openclash)" ] && [ -z "$(grep -F '#Server Nodes' /etc/openclash/dnsmasq_fake_block.conf)" ]; then
+ /usr/share/openclash/openclash_fake_block.sh
fi
mkdir -p /tmp/dnsmasq.d
ln -s /etc/openclash/dnsmasq_fake_block.conf /tmp/dnsmasq.d/dnsmasq_openclash.conf
@@ -548,14 +553,14 @@ stop()
#ipv4
iptables -t nat -F openclash >/dev/null 2>&1
- nat_clashs=$(iptables -nvL PREROUTING -t nat |sed 1,2d |sed -n '/openclash/=' |sort -r)
+ nat_clashs=$(iptables -nvL PREROUTING -t nat |sed 1,2d |sed -n '/openclash/=' |sort -rn)
for nat_clash in $nat_clashs; do
iptables -t nat -D PREROUTING "$nat_clash" >/dev/null 2>&1
done
iptables -t nat -X openclash >/dev/null 2>&1
- out_lines=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.0\/16/=' 2>/dev/null |sort -r)
+ out_lines=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.0\/16/=' 2>/dev/null |sort -rn)
for out_line in $out_lines; do
iptables -t nat -D OUTPUT "$out_line" >/dev/null 2>&1
done
diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version
index c6cbd85cbb..0a892fab7d 100644
--- a/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version
+++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version
@@ -1,2 +1,2 @@
-v0.34.7-beta
-data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXMAAAAqCAMAAAB2kksrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ2REEzNjlFRTNBQjExRTk4RjQzQTFDNDQ1NjIxMTgwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ2REEzNjlGRTNBQjExRTk4RjQzQTFDNDQ1NjIxMTgwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDZEQTM2OUNFM0FCMTFFOThGNDNBMUM0NDU2MjExODAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDZEQTM2OURFM0FCMTFFOThGNDNBMUM0NDU2MjExODAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44R3YsAAADAFBMVEUGVYKEhIQGZp26urokhLtFmspFgKIGcKwFXI4ahMHR5vKCgoKenp7a2tpjlbGlpaXR4epTiqpknLt4eHgGXpHf39/n5+c/Pz/GxsYXgb2hoaHOzs5paWmizOWGv98JZJkJdbRXpdKTvNSRkZFxcXG/v79GRkasrKy1tbU0dZtmrdYFbakJca0FWokka5LKysp2ttpiYmKTxeFLS0tDQ0MIXY3g4OCLi4sFYJVkq9OiwNEJaqCStcgGdLJ2dnYXYo2y1urAwMCcnJzw9ffCwsJBQUGx0eMEU4BGirFCQkImcJtsbGy2trajx9yEss2Xl5eDrcYnicE4lMg2kcbS0tIFaaLQ0NAKYZNKn89FkbxlZWWNjY2DtNDB1OBHnM1zobuxzdwFcrArjsevr6+DqsEIaJ5gYGAFa6UFZZujyd9vb28Zdapyn7iUlJQHbKXB2ecJWIVJns50dHSyytgEYpikzuaJweIwk8t0sdUKebhDfqA1h7VGhakodqIRgsMCc7QBcrNRUVFUVFRVVVVSUlIFdrcLfL1WVlYHeLkKe7wGd7gOf8ADdLUDdbUEdrYOgMAEdbYDdLQSg8NXV1cSg8QShMQAcrIThMUOf78Nfr8Nfr4Mfb4Mfb0JersJe7sIebkIeboJero6OjqqqqrU1NTV1dWrq6tISEg9PT2pqak7OzuAgIB+fn48PDzw9/sHVoTC3u5JSUmBgYGEvd3q6uqEvN3z8/P19fVMTEzh7/f09PTB3u5/f3+DvNyFvt7B3e3g6u+CqcDB1eDv9PfC3++JiYno6Ojg6vDB3e7D3+/A1N87l8uErMKDq8Khv9AUXomFvd7W1tbg7vYFZ590s9gHWIcLerlGm8tInc05lckEWIiCutsKeLfv9vqFvd0KdLCDr8gVaJcGdbTB1+NVos8Lb6jg7/cEVYMJcKxkp82jxdiyz+DP5PGRuM/B2+pTU1MPgMEQgcJZWVlaWlpfX19bW1tcXFxNTU1eXl5PT09QUFBYWFhdXV1OTk7///////8M/V9oAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADBZJREFUeNrsmAtUVHUex+/44uEA6iCjoqKiAwpiOCP4InWVMHFTU9d03czUJNPymbnV7orEiO2bfdgWiLwxGECQl6k8fGU+KjXTLHvjtttO67pBGF/29//fe2funQHjbB3PmTl+zun+f//f897vf7gzJrS1Va4YeNMd+KsLsPVpS1ub0Ba18aZ78GeXYKt3m1A5vNlN+JNrsNUirHAXyZv/6CI8LQz/1l34hYuwVfj2ruZ3GjfS/N+ugvC123BX8zvPV66C8F+34a7md57fuQrCf9yGF12FdjXXhISE/HTND6/KEo1miW2zRqPpTI1Oo+tk990d8sY9g+95w9H5ldfQwYMHP6TyPfqQOu2Nh2yoA4MxePf/jXDDkcjZleBEzYm88T3RhGhU+0rMsdnTMKYzLd7CW50c9lIHeL3OH+d1rxeV3kdFL6qHKnwWvK4qlXJ4uSpAmnc07qUNgze8dFucNNeVAz65Wm0gzdF8X81DEKLcmkcgyna0QPAPq/nfOuAoevWZ2acXjqq8G4Bep09PnA5skDy7vbyhTto9rF7ihEP1YRzuaNxtYxzhlprIKFSs0TOM2oqet74npLlqPxyIl8w5qEjqTAuD3tDJYS+3zyicmLJ+/fop0zFK6d4wMWI9c5/AFtnljek4qqpdtF6iHo+rAqTryx1xuxhHcFKpIlJvKjUaDXq9eWBntdX1VB1Pz57x7WueF4ABkpmD2a1Ssq79jpEOmserh0TKGTKvtM9ULBv32bXPxp3GVKX72vr14yZNWnXxNI5Kni2YaN+IrFok8hzwvCpAur7yyqMbLitcG+Qdj9mcqhwRR80rodVv55bZyIwc7Oe7/ciRrnOigNxbuciNzKXXEIvmsi+AylyeB0TybU4k34jYum/XolwSEFhjJuGmsXh59C1V81sDyrmbtcyF2Diau6ZFSpnxvHC28taTJYaiWrKqMTQ52YLn3iH7nedgSVZwLegqW975Eo+LjsPoNWUuSpLboxoTg1QO0nVoNf82EPdeWyDv5IdOTr5czQ3LYYduQqqK/UBqkrxJTExNJc2lQA6/RuWwNrmpuRjDRdifSm+jyq5+XSsxjeWRUqgM9KFvYNrklKM8h7D3vwHouDEAAYbUVF0lylf49QPmqJrPBrr6+fWle0mlQbksfw7Qz29FOaIieWZlJY4HBpDointXKPQuXy8z8b2AJ/juCcDLWc3LlunPc4O9goIOt6/5KEyfctVBcwvwVD3d7btiF1QPW/oPYFRyckk1qkuI5OR3Uf3F0qU/tmDsbTUnKYwqh6PmqBlQlV8aSVLg+DF9/o6vU0PhU5qfn19agXu55sydH8l3+VpoKZRvb2f0QSg3opDVwq6zWTwelcrm9DcQz9w7Am2ak0tDbUt9+MlS5oLhlKDhdTIpEtfPYAs3tuDM9ZSHgXC+CwceTlHz5pslqB8ZxMwH0TBy3LY3UZLSDp/jTJBDJSwPTCkuntILn7OtNyYWEz1gSUkpPoMzbJOSMq8HW4tH0mGrigWzilwEWlWOHLzK11eRw6/Hm4qIUkrsp2dWC/3+SNQbSg36YIRSBmAs0ptii2Yg12w2DcAAE2FvZ9Wghq330gvHbI5GQBHVmig7WtH8VaDIUFoaW1TE74gamadhRpGJhrDjYJk+epqiL6qQ7o5je6ZZ4kN6WTArhWm+jXu3OWtOH1Nv34tDmOQW9Bi9LeWDdjW/Bw1TtqldH2BucfEi/+II4MGUlKE4IYzrMmlR8SYMTfH/EB8u8l/kT6dcPDpo0qSgi/UOg500X2C+reaB+tJEc6KVErX6KtIwMRo+sYkUSlzDMwDmNtOLO9cmmJImMHnN9MdhYNcsA3O28Gxb84HAiHh2QCZbi74IZm0TYyvE0wk0tdC2KlCpebrMqk0YRcsobFqVnk6aS27SPF3NzJm+9fD2Sk+nX4m+F6+lp5ehJN0JOruVq7hVIpLOEueuupqefnXcCTZqLCYHsXj4SpSxWJlYOCQ8/eGysqlPNTgMFnaoyEJftYM05ytpzq8LrHKin2zYYBmAmOCHLB7MUrfbUTUDI2gpR3ASa24jS9H8G3qfo+8I7cAdthbAvWIoUMoUu/1EujtOmswQX3jTUoLeQ9LSLgGSG7iUpkYQhHGPYEtaWhkmC+FpbC1Jc6KMPuZXpQ4c7isTR9Uzo8T+HGX2GFkWyase7KC5Dnjstprn2A4nSzbKszh+2mgujjLurLlVh5rHqA+aePMcuVanaJ5UpPHht6pVaK4zSypnKTJzlJrvtTG+AQ/unYfa8WR3AyQv0C19r4rw8Cf9e8Oyd+8BKLikTurPPuai2UNkLys4ILqeYsZBHDzAWbpysSI2Fviiz8xZ/p84tBQS1QDrVPtsvMbX15BtuzJICtnw2ScRy+uVcVuWHVMFTRiBGaW8eYFcm6dsbiJHfDD9LNkot6jAMTHUF1pFpnx3nAwbT07GoIwDWBlG9nUSkTvpA389w5mZQEbG3+v/dZDxNiwHD85XJ4xF7cVdoimIkEW6ii5vPJORcZD+TCRW2WP9gbXcVy/dgYyD5q2zUX5T3twcyJ7q2O01p7+Mb/NEjJ3RvGo2xiTWQJNEth8CpNK8VmXzRKOenUMAqxZbBCJUvCX6wHek+R47EbD0fxuzmBlTjwncdwH1MXucmYCGPXu6SIqtRL0geKji8wDfLpLtIULWIRySo8/u2fMAartIeNhjdMjC5ic9YvYcxCVVS8GqIslKb9Jm0T5WU2i1dsUIZjePQDYthfzKKECBaBgCMEbybaT/6H2uiGvFahX0Q0eLivuZSb/WtaKzeaCi+Uaaa23Ky/dhUd4okX7uNIttA/IUmdkotDfeaSfhZ5iKTV24vRYn+eqNtWyZcPLkfLZemMe9dDRnd+5c7SkyF594+oeT++TJsVKrQagdvdMJ0lWOLtyZQT+ULoj+/tT1GQzidnd6mbF1/tvorip20Nxq0tCv5NBjhYUF9E+SQvZ4KCgsDK1BR5o30Qd9DCVu1JYXOGkeDzq35nXqCQGoQaiRn1cBdaeTov6FiuZkHGu2DixAxU25kd4HfakT5euaOqF5jC+9l3vHcPujWgyat3PeIDR8JKolKnAEUy90737IgoYIpZRHRAOyMZ8+5qvb09wy9tPuE04CPeiIukwGDtFJdh9rod7Pgq79J+z0qIX3hO6fDgK+Q/NvMuMDpO+SCu0NUiiU28fXdaS5NV9XIRX8yEnzPLFaNaE1mDyPScO08hfXcEXz4VLDCk2e3KjUIH6rQpNv7UjzXQo8G1DrL5rnRzbwyoaR59mWac7Wx6XBtSPH28tIc9GAbBxB7ZVdzhySqht8WTQmrk5+jvk08Cy3doVJg4f1EifaEJIcKM3M1GkDAwMLdJmZVUlJxkzNtMAZmiKrNpqCS/iVodPqJMuYadB0XZDddZ3VQDutVhlvzdTMyO43QD3BrNVqTaJpyLQG91uQHaIxVCmaVxk0IQuy+wUbir6xDdJn0pAFWmumUXkb0dol9r7Kx1rYu673atH8+Mq5ZfcduW/ZucaP2XZxXV03fioRa8+eOnXW91xjjL1scV0f0aiTjP5L636+sB3NF9f16D2x/tTkiLgwtt0cF7HskZNHhvmeo61HnO8jR+77cNeuKxGTT536cmSjrzixY82TqvIzRfYZWmhr4na+IVPPYvwqqmWQC4z7pALmycxUxcVq9QADeZoUNqdJ0bxJariv1N6oRS/6SpOUt6FnHwuZF5Q0xl2RTY/GOEajB98lxMWFsXV8nMgVD0VVQpynaMTJhqe9zwuqRJHGhep9nIettTS4sXHzaHGiDWG7M+z/4+pNRmmXF6uPzdveasgjW7yKOUZbfkve/Xr9/YZWZhsM6jirNqjbtxoMBsUmlmbltaiat+SZ9FTWohrEhogz7Jl5koOjeq7VCattdsx5f0//8zHiJiwhYTk3lp8f7+k5fmGMsiosQdZQMmISEsLa0zwsIWw1lW9eLjuW0wzPzVK3hTQvgTk3k8/jhYUJy79Tcxflt66C0OI2/N5VcCPNf+MqCN+4Db92FdxI8z+4CsKSVnfhly5CN8HvruZ3mPeEGrf5oP/KNej2vtDWN7LJPXARyf/ZJrS11fi5h+p/cQG6vfd+W9v/BBgAZYK8zdwbWYQAAAAASUVORK5CYII=
\ No newline at end of file
+v0.35.2-beta
+data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXMAAAAqCAMAAAB2kksrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCREVENjRGRUU0QTExRTk4ODBDRThBQTVBQ0U4MUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCREVENjUwRUU0QTExRTk4ODBDRThBQTVBQ0U4MUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0JERUQ2NERFRTRBMTFFOTg4MENFOEFBNUFDRTgxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0JERUQ2NEVFRTRBMTFFOTg4MENFOEFBNUFDRTgxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7YeANqAAADAFBMVEU9PT1FmspJns7h7/eTvNMGVYJXpdKEhIQGZp26urokhbwHXpGizOVFgKIkapLR5vI1dZsJeLiCgoKenp7a2tqlpaVTiqpknLt4eHix0ePf398Ka6Hn5+c/Pz/GxsahoaHOzs5paWkEXI5jlLHR4uwJca6RkZFxcXG/v79GRkasrKy1tbV3t9uTxeEXgb4HXI0KdrUne6sGbamStcgJZZnKysoXYY1iYmJkq9NmrdZLS0tDQ0Pg4OAEU4CLi4sFcK0FYJWjwNEGWop2dnaz1eoYdKjAwMCcnJwqjcZGi7IGdLLCwsJBQUFCQkLw9fcmcJtsbGy2trajx9yEss2Xl5cnicHS0tLQ0NBFkb1lZWWNjY3B1OAFcrAJWIU4lMgFZZs2kcZHnM0FaaJzobvC2ueyzd0HVoQHbKXR3+iDrcWDqsGBudmvr69yn7hgYGCiyd9vb28chsOUlJQEYph0dHSyytg7l8sIdbKJweIwk8sJYpR0sdUUX4kahMGjzuY1h7UGdbQGV4YRgsMCc7QBcrNRUVFUVFRVVVVSUlILfL1WVlYKe7wHeLkFdrcEdrYOgMADdLUDdbUEdbYDdLQOf8ASg8MSg8RXV1cShMQThMUAcrIGd7gOf78Nfr8Nfr4Mfb4Mfb0IebkJeroJe7sJers6OjqqqqrU1NTV1dVISEirq6upqak7OzuAgIB+fn7w9/tJSUmCqcDC3u6EvN2BgYHq6uqDvNz19fXz8/NMTEyHv9/09PSErMKEvd3v9PeFvt5/f3+Gvt/B3e3A1N8HcKvB3e7g6u+Gv9+JiYno6Ojg6vChv9AIaJ/C3++Fvd4FZ6ALdK/W1tbB3u7D3++Dq8IEVYOEtNBGm8sLermDu9wFa6Z0s9g5lckKebgLb6g1jsIIWYiDr8jv9vqFvd0VaJcnbZVVoMzC3u8JcKsEWIjB1eAZg8BGiK6jxdiErcVTU1MPgMEQgcJZWVlaWlpfX19bW1tcXFxNTU1eXl5PT09QUFBYWFhdXV1OTk7///////9/tVZtAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADCBJREFUeNrslwtUFNcZxwcQVl0FdEE3ygqCoAPxEXygC4uaGGuURGzUaqshvtAYTXzGmBgT24qw2KZv2pgXQd6GBRQBUYzvZ6JJfCRqkubZiKbbWhsQw59+987M7swChtPkeM7u8XeOc7/vu9/935n/XWZXobm5cknf657A39yAtU/bmpuF5oRV1z2Dv7oFawOahcr+DR7CX9yDtTZhiadY3vBnN+Fpof93nsIv3YS1wnd3PL/deJDn/3YXhG89hjue337+5S4I//UY7nh++3nRXRD+4zH8yV1o1XNddHT0z5f9+K7M1OlmOpJlOl171hh1xnaqv9wmT9296+6nXIsvLvfbtWuXt5x571LwbtHUcu3LR3Dk5f8b4ZorcVMqwUmYGnftB6KL1mnySkx1xOMxvD0S7+Lddm72Shssf58/zvvLNdUJUhU+fjw9AoUjrTQFPOWieUTTpsX7iPcrt6SF58YKIKjIYAijrXQ/1PNoRKtT6wAkOI4WiPpxPX+1Dd5Gv54P9OyHtzVVb2DR7t1jHwK8WboPx3dLzNA21fEm23Kt5j7sa2u7W85xhJta4hJQtUxgmA1V3W/+QMhzTd4fSJbDqahKb4+EKIjt3Oy11hmF4yNmz5494iGMUpe9x345m5WPYz1L96FutkTvV1s0BT6Eu7Wi5OtrbXGrOY7QwqWqOCG+1GwWBcHat73eGrtrjqd79+TWPS8MQagcFmBKk9xsbF0xzsXzZO0mcUqHwuutMw7z9B+f/li/G+PU5dOzZ+t79x729914m6V7Mb+3xGlt0zOsaajU5GQv9r7++gTvS6qSt5LxOUdR0yPh6nklDKaNPLKaWVCAHTzbgQL5OjUBKLpZhKK4InoNsdki9gVQWcT7gDieFsTxRMKhvtGACtlAYJmVjBvP5isSb2rEb4ZW8DKTLIIknMhL4+PkzmS+cIr61jNk/OAjRz7wy8iw4epHFH/QFbYMFaeHDWHDBx3wJBv34h8ZLZGb1vzTdZZ89fPh3wZS/tx6KJny0BkZl3x4YNvroipkadgBZKUrSVpaVhZ5Lk8U8GtCAZMpyirCcG7Cjix6G1V2Cu5UifGsj5xCZVgQfQNTUlCBigLCqX8NMPIgFCFiVpaxEhVLgvsAUzXiU4BOwcG96F6yaKMi1j8V6BO8pAIJcbyzshLHwkLIdNW9O57JB3P4eImZ/xxwP8/uB55r6eolm22yZGJ5RtuMQwdXz23A/Dq62zmSCnw6nFsAjMrIKPeBTzmRkTEHPt+cO/dTGwbe0nOywqwpuHqOmtBqoTSOrMCxoyZh07dZMQgqpdd/aRXu454fO0pZHM8EAwzsq8EpZw5CDA8SkNfIrlPYfDIq1eL0N5DMypvCHJ5TScc2CeInS53T+1Oq4+sUMmW+PoP1PFiPM19nzgEieRZJ/mRqeeedctQFDstgofT7ZOCEzFaYADzgshK2h0dsSB2xCD4sDcDYVIL+lDIzU8/gDEsyM6d1ZWNqIB22ZrFg1VCEMLumUIA3+fgmCvj1WD1zo5Qa+5hY1Ei/P9IEsVQUohBDHYBZEOKThEkoslrjQxEaTzjl7DrUsPE+euFYrYkIEUxiaTx1J6rE3wRIsTRJEPgdkZB1PCbRt4xoYsfBOoMEwRRvEqrku+M4nmkycIWGKzZMzmSef8SrH7X0nLncc8MQFn6OfuX0CYXtkVY8p5PpqK18jsdSU/X6VH+AFvjheOrgjiefSV0Nv0z9p/hUT9App9477OTJYRvqXDZu4fl06y09DxNK06xpdmo0mKrJw7REBCWl0VTaMt4BsLKVXtxFDsPU1IPZa6U/DpFd80RWbOTdDvG+wIBkdkDxDoleiGKyaUlV0umExTdSWh2m9jxH4eRqjKJhFFafzMkhz+UyeZ6j5erViDoEXGHhPfwj+eUi2K7kuLIetSMiWVAuQdEePHayW05Ot8HH2VYDMXTYVqpGLsYeNrdHWjckMmfOnj3j5te6bCxs0pCHXtoCec5H8pxfp9uVxmAlcMA6AKkhGHl8Mk8rt6l6EgbQUIGodCbuIE8lfoPe5+g1wNB3k0MCuE+aCpM7JbWfyXfH2aowJAIBNJSjx5CtW88Dchk4v1WLr6/v4AVYz8KTvoP1+nt9RwB+Lk1byfJAvazAoYh8lbaqY0G58zn2OOcosslV7cYunhuBJ27peYHjcPKUoCKPE2xI5Oao51t6bjei5gnSQT0XL1DWGlXi6YIuiN+qQeW50Sq7nKfqLFB7/oaDMbV45I1pODyG4s6AXAU6v6El8uBCfQ/YWLiGF9YMrsN2lyZm+YZuPOwqQdF2pW0+C97De9s55xbPUM0NBL7peXWyvg7nNYpCmhZghSbPx1t8fAv5jiuDrFCCoG0ySXy9et7R5SS+inYYgEmlXLxYWVuoFo+nQnIU/SxZpUhU4ag01QsGVadyd5xsBwuHokv2diyOpfggfcp4kT7wB7Nb8gCgyrqR55rpQV2wKHBDpJT4SlC0XWkLwLPZ2e9hqDzl29E5NwhYymt18h0ouHjeNAUV15Xkel/2VEdv7Tn9ZXxXKGFuj+fVUzA8rQa6dIqDESIvLWxSi6eZTewcQthqSSIMMdIt0Qf++z3P/hK2QT6YzMI1dRjJaxdRt6YVz0eiVm2xDV91U+cBWLRuwyw5OyhB0U7s5JVpwPPZ2Q/jcEeZg845OmTflQsPrqEjcfHcriHdTm/SBik+WlNit3fCABY3DEA+DSX8yihGsRSIIRgu11bRP3qfq+YN0moN9EPHgKoHWUi/1g1SsaGvSnwV7WuvLxSC2CwXSqOfOw2SbEihqjMfJU7hzU5SfoFxWN2Rx0txiI8BWMqGkYcOPcrGi9N4lY7mBA3TvKSFXVB7PxsPHRrIhkdtOLEuPHJzC8hXuf/w3M3Z9EPpolQfRKrPoguPvYB7uIgPvDSLXTy3x+voV3LM0ZKSYvovSQl7PBSXlMTUoC3P6+mDPpwaVxkqilt4ngw6t4YV2h1CUIMYMz+vYlKnkyL9EpU4BUcb7H2LUXVdETIFoRcpUb+xvh2eT4ygb4MeE3n8xWF0mbZ5Grn5heSW5MB+jLvo5bXThlr/bOZPwE4vr5GH6HWwcAvNAvulptrFix/fvpPwcvHcNvCr86y/K51Ix6HATjpJr4E2ansedB00cvPBwwgY6fVVF+B7PL+Rmxwif9lWGa6RQzE8PraiLc/tgrFKXvCTFp4XSqs1OzRFUeUJeTOD8n3fXyXeXxas0hUqQqWi9K1K/zOyt+X5FhXhtTisl8JTgbV8ZW3gKZZ+SA6w8Ul548OBYyj7RLmPsrMvsFnynA37nT9IPlTLMxVJNOIyZRMtZUrbJ7ThCR5tiZU37tBP2tGBkO5CaW6u0RAWFlZszM2tTk835+rGh02iJzUk0uRMfmUYDUY5MueKuk7T8zutsIuUGQzq+aZc3aT8PqHaHawGgyFeCsVce1Sf6fnROrFaJV4t6qKn5/eJEoUbjo1MubTJdIM916y+jUTDTKeu+rHm9ijrcUEKX7i8bt5d+++at05yc0ZZWWd+Kv5LTxw4cCJi3dmJlMX6Rww9cOBAmb+FH8yWsrKebOhZ5mCGxrYZZV17jD1wYKi/JZalKy3+8xbs398hYh2loy0RC/bf9emWLZf9SbND4NkIace2PU+vFnIltomNlMbzWBBzTWyOXyW3RGWBeZu8gFVyczXz0mrtBiJV6lUxp14lXi8Lbit1CjXKd1Warr4NE/tYKPxGzVnLZSUcfdbCODuaZykWSywbx1gkLvPyaDmzpEhrLJZwNoRbLC4TMily9excbW4Z7ZB2bLzyXmlHB8LGlphFk8kUb5azwiRTUuHGJrGQYukq9Zgd/Y2FD5pMD4pNLBZF7TxbLWrlm0RRVCVJtFdho0a8sTDeRMsaNRuxTaQ9nJ2FcoGjea4LKRcc8cRT+nD9qYlSEpuSMosHs06NCQ8fM1cuz5q7Mjw8XJ4iD1O4mXNTHGhti02JvUDLVyr9pKanVFabS/uxM5pFmitHk8qs7/XcTfmtuyA0egx/cBc8yPPfuwvCDY/hd+6CB3n+R3dBmNnkKfzKTegsBN/x/DbzuFDjMR/0X7sHnT8TmnvF1XsGbuH4S50DmoXm5ppgz3D9JTeg8+OfNTf/T4ABAIZB/6cQ0GfyAAAAAElFTkSuQmCC
\ No newline at end of file
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua
index 4021cec76d..ac5fced6b0 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua
@@ -17,6 +17,7 @@ function index()
entry({"admin", "services", "openclash", "update_ma"},call("action_update_ma"))
entry({"admin", "services", "openclash", "opupdate"},call("action_opupdate"))
entry({"admin", "services", "openclash", "coreupdate"},call("action_coreupdate"))
+ entry({"admin", "services", "openclash", "ping"}, call("act_ping"))
entry({"admin", "services", "openclash", "settings"},cbi("openclash/settings"),_("Global Settings"), 30).leaf = true
entry({"admin", "services", "openclash", "servers"},cbi("openclash/servers"),_("Severs&Groups"), 40).leaf = true
entry({"admin", "services", "openclash", "servers-config"},cbi("openclash/servers-config"), nil).leaf = true
@@ -280,4 +281,12 @@ function action_coreupdate()
luci.http.write_json({
coreup = coreup();
})
+end
+
+function act_ping()
+ local e={}
+ e.index=luci.http.formvalue("index")
+ e.ping=luci.sys.exec("ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'"%luci.http.formvalue("domain"))
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(e)
end
\ No newline at end of file
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua
index e0549cbd18..8e6ab6109f 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua
@@ -6,6 +6,10 @@ local fs = require "nixio.fs"
local sys = require "luci.sys"
local sid = arg[1]
+font_red = [[]]
+font_off = [[]]
+bold_on = [[]]
+bold_off = [[]]
m = Map(openclash, translate("Edit Group"))
m.pageaction = false
@@ -46,7 +50,7 @@ o:depends("type", "fallback")
o:depends("type", "load-balance")
o = s:option(DynamicList, "other_group", translate("Other Group"))
-o.description = translate("The added Proxy Groups Must Exist")
+o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off
uci:foreach("openclash", "groups",
function(s)
if s.name ~= "" and s.name ~= nil and s.name ~= m.uci:get(openclash, sid, "name") then
@@ -69,7 +73,7 @@ o.inputstyle = "apply"
o.write = function()
m.uci:commit(openclash)
sys.call("/usr/share/openclash/yml_groups_name_ch.sh start")
- luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers"))
+ luci.http.redirect(m.redirect)
end
o = a:option(Button,"Back")
@@ -77,7 +81,7 @@ o.inputtitle = translate("Back Configurations")
o.inputstyle = "reset"
o.write = function()
m.uci:revert(openclash)
- luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers"))
+ luci.http.redirect(m.redirect)
end
return m
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua
index ed22069a2e..51f4187183 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua
@@ -7,6 +7,11 @@ local sys = require "luci.sys"
local sid = arg[1]
local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid")
+font_red = [[]]
+font_off = [[]]
+bold_on = [[]]
+bold_off = [[]]
+
local encrypt_methods_ss = {
-- stream
@@ -196,7 +201,7 @@ o:depends("type", "socks5")
o:depends("type", "http")
o = s:option(DynamicList, "groups", translate("Proxy Group"))
-o.description = translate("No Need Set when Config Create, The added Proxy Groups Must Exist")
+o.description = font_red..bold_on..translate("No Need Set when Config Create, The added Proxy Groups Must Exist")..bold_off..font_off
o.rmempty = true
m.uci:foreach("openclash", "groups",
function(s)
@@ -213,6 +218,7 @@ o.inputtitle = translate("Commit Configurations")
o.inputstyle = "apply"
o.write = function()
m.uci:commit(openclash)
+ sys.call("sh /usr/share/openclash/cfg_servers_address_fake_block.sh &")
luci.http.redirect(m.redirect)
end
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua
index c45cac5f12..ff0c12e18d 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua
@@ -15,7 +15,7 @@ s = m:section(TypedSection, "openclash")
s.anonymous = true
o = s:option(ListValue, "create_config", translate("Create Config"))
-o.description = translate("Create Config By One-Click Only Need Proxys")
+o.description = font_red .. bold_on .. translate("Create Config By One-Click Only Need Proxys") .. bold_off .. font_off
o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
o.default=0
@@ -28,7 +28,7 @@ o:value("ConnersHua", translate("ConnersHua Rules"))
o:value("ConnersHua_return", translate("ConnersHua Return Rules"))
o = s:option(ListValue, "servers_update", translate("Keep Settings"))
-o.description = font_red .. bold_on .. translate("Only Update Servers Below When Subscription").. bold_off .. font_off
+o.description = font_red .. bold_on .. translate("Only Update Servers Below When Subscription") .. bold_off .. font_off
o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
o.default=0
@@ -110,6 +110,10 @@ function o.cfgvalue(...)
return Value.cfgvalue(...) or translate("None")
end
+o = s:option(DummyValue,"server",translate("Ping Latency"))
+o.template="openclash/ping"
+o.width="10%"
+
local tt = {
{Delete_Unused_Servers, Delete_Severs, Delete_Groups}
}
@@ -180,4 +184,5 @@ o.write = function()
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash"))
end
+m:append(Template("openclash/server_list"))
return m
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua
index 0067db1386..04d2abe45d 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua
@@ -28,7 +28,7 @@ s:tab("version_update", translate("Version Update"))
---- General Settings
local cpu_model=SYS.exec("opkg status libc 2>/dev/null |grep 'Architecture' |awk -F ': ' '{print $2}' 2>/dev/null")
-o = s:taboption("settings", ListValue, "core_version", translate("Chose to Download"))
+o = s:taboption("settings", ListValue, "core_version", font_red..bold_on..translate("Chose to Download")..bold_off..font_off)
o.description = translate("CPU Model")..': '..font_green..bold_on..cpu_model..bold_off..font_off..', '..translate("Select Based On Your CPU Model For Core Update, Wrong Version Will Not Work")
o:value("linux-386")
o:value("linux-amd64", translate("linux-amd64(x86-64)"))
@@ -45,26 +45,26 @@ o:value("linux-mipsle-hardfloat")
o:value("0", translate("Not Set"))
o.default=0
-o = s:taboption("settings", ListValue, "en_mode", translate("Select Mode"))
+o = s:taboption("settings", ListValue, "en_mode", font_red..bold_on..translate("Select Mode")..bold_off..font_off)
o.description = translate("Select Mode For OpenClash Work, Network Error Try Flush DNS Cache")
o:value("redir-host", translate("redir-host"))
o:value("fake-ip", translate("fake-ip"))
o.default = "redir-host"
-o = s:taboption("settings", ListValue, "proxy_mode", translate("Proxy Mode"))
+o = s:taboption("settings", ListValue, "proxy_mode", font_red..bold_on..translate("Proxy Mode")..bold_off..font_off)
o.description = translate("Select Proxy Mode")
-o:value("Rule", translate("Rule Mode"))
-o:value("Global", translate("Global Mode"))
-o:value("Direct", translate("Direct Mode"))
+o:value("Rule", translate("Rule Proxy Mode"))
+o:value("Global", translate("Global Proxy Mode"))
+o:value("Direct", translate("Direct Proxy Mode"))
o.default = "Rule"
o = s:taboption("settings", ListValue, "log_level", translate("Log Level"))
o.description = translate("Select Core's Log Level")
-o:value("info")
-o:value("warning")
-o:value("error")
-o:value("debug")
-o:value("silent")
+o:value("info", translate("Info Mode"))
+o:value("warning", translate("Warning Mode"))
+o:value("error", translate("Error Mode"))
+o:value("debug", translate("Debug Mode"))
+o:value("silent", translate("Silent Mode"))
o.default = "silent"
o = s:taboption("settings", Value, "proxy_port")
@@ -89,13 +89,13 @@ o.rmempty = false
o.description = translate("Please Make Sure Ports Available")
---- DNS Settings
-o = s:taboption("dns", ListValue, "enable_redirect_dns", translate("Redirect Local DNS Setting"))
+o = s:taboption("dns", ListValue, "enable_redirect_dns", font_red..bold_on..translate("Redirect Local DNS Setting")..bold_off..font_off)
o.description = translate("Set Local DNS Redirect")
o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
o.default = 1
-o = s:taboption("dns", ListValue, "enable_custom_dns", translate("Custom DNS Setting"))
+o = s:taboption("dns", ListValue, "enable_custom_dns", font_red..bold_on..translate("Custom DNS Setting")..bold_off..font_off)
o.description = font_red..bold_on..translate("Set OpenClash Upstream DNS Resolve Server")..bold_off..font_off
o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
@@ -133,7 +133,7 @@ o.inputstyle = "reload"
o.write = function()
m.uci:set("openclash", "config", "enable", 1)
m.uci:commit("openclash")
- SYS.call("sh /usr/share/openclash/openclash_fake_block.sh && /etc/init.d/openclash restart >/dev/null 2>&1 &")
+ SYS.call("/usr/share/openclash/openclash_fake_block.sh >/dev/null 2>&1 && /etc/init.d/openclash restart >/dev/null 2>&1 &")
HTTP.redirect(DISP.build_url("admin", "services", "openclash"))
end
@@ -156,7 +156,7 @@ function custom_fake_black.write(self, section, value)
end
---- Rules Settings
-o = s:taboption("rules", ListValue, "enable_custom_clash_rules", translate("Custom Clash Rules"))
+o = s:taboption("rules", ListValue, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules")..bold_off..font_off)
o.description = translate("Use Custom Rules")
o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
@@ -232,7 +232,7 @@ o:value("0", translate("Disable"))
o:value("1", translate("Enable"))
o.default=0
-o = s:taboption("config_update", DynamicList, "servers_update_keyword", translate("Keyword Matching Setting"))
+o = s:taboption("config_update", DynamicList, "servers_update_keyword", font_red..bold_on..translate("Keyword Matching Setting")..bold_off..font_off)
o.description = font_red..bold_on..translate("Only Keep Servers which Matching Keywords, eg: hk or tw&bgp")..bold_off..font_off
o.rmempty = true
@@ -256,9 +256,9 @@ o.rmempty = false
o = s:taboption("config_update", ListValue, "config_update_url_type", translate("Update Url Type"))
o:value("clash", translate("Clash"))
-o:value("v2ray", translate("V2ray"))
+o:value("v2rayn", translate("V2rayN"))
o:value("surge", translate("Surge"))
-o.description = translate("Power By fndroid,Use Other Rules If V2ray Subcription")
+o.description = translate("Power By fndroid,Use Other Rules If V2rayN Subcription")
o.default="clash"
o = s:taboption("config_update", Value, "subscribe_url")
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm
index 6167e5bd39..beeb818474 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm
@@ -1,8 +1,10 @@
@@ -11,6 +13,10 @@
var vernesong = document.getElementById('_vernesong');
var frainzy1477 = document.getElementById('_frainzy1477');
var SukkaW = document.getElementById('_SukkaW');
+ var lhie1_dev = document.getElementById('_lhie1_dev');
+ var ConnersHua_dev = document.getElementById('_ConnersHua_dev');
+ var MaxMind = document.getElementById('_MaxMind');
+ var haishanh = document.getElementById('_haishanh');
var binupdate = document.getElementById('_binupdate');
var openupdate = document.getElementById('_openupdate');
var github = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABiCAMAAACRZYZ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1Y2NjZGI4My1kMGJiLWExNDUtYmYyNy03ZmRkMTJmY2EwYTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RENEOUYxRjE5RjJDMTFFOUEwNjVGMTc0MUI4MUNFQzgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RENEOUYxRjA5RjJDMTFFOUEwNjVGMTc0MUI4MUNFQzgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVjY2NkYjgzLWQwYmItYTE0NS1iZjI3LTdmZGQxMmZjYTBhNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1Y2NjZGI4My1kMGJiLWExNDUtYmYyNy03ZmRkMTJmY2EwYTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4s6CIvAAACdlBMVEX+/v78/PzExMT9/f35+fn19fX4+Pj6+vrX19fy8vL7+/sICAjr6+vq6urd3d3x8fFDQ0Obm5vw8PDc3Nz29vYoKCi5ubnn5+cPDw/h4eHY2NiOjo6Dg4NLS0vs7OxFRUXv7+/t7e3u7u4vLy8JCQkQEBANDQ0DAwMGBgYEBARpaWnBwcGvr6/39/fQ0NDNzc3IyMh8fHy7u7uEhISjo6MrKytgYGCGhoZ6enqZmZnS0tI0NDShoaGxsbFlZWUgICAWFhYlJSVMTEwsLCwKCgo6OjqUlJQcHBwaGhr09PQpKSldXV2fn5+4uLiQkJACAgLo6Ojp6elGRkba2tqWlpYBAQHZ2dmnp6fFxcWSkpKurq5KSkqysrI9PT0FBQWYmJhnZ2e9vb1zc3NERETz8/N4eHh+fn5mZmbHx8eIiIiKioq1tbVhYWGoqKhXV1cTExMeHh6srKxqamqLi4ukpKTb29sqKirCwsKmpqbOzs5aWlo8PDyMjIzV1dWdnZ2zs7OFhYXl5eUXFxd0dHQHBweenp7W1tZ9fX0iIiLg4OAtLS2NjY3AwMCgoKCJiYmwsLCPj4/U1NRWVlYRERFPT0+Hh4dsbGxvb2/Pz8/Dw8MdHR0uLi5NTU2+vr4fHx/R0dE5OTm/v7+ioqJQUFDGxsbJyckUFBTKyso2NjZRUVEZGRmtra3i4uImJiZSUlLe3t6CgoJUVFRtbW3Ly8sYGBjMzMwwMDDT09NJSUkkJCRISEi2trZkZGRBQUEMDAy6uro/Pz9/f39ra2sODg4nJycSEhJ7e3s7OzsVFRVycnIyMjJcXFxbW1t2dnYbGxv///8AAAD///9H5/bkAAAA0nRSTlP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD8iKrvAAAFUElEQVR42qya90PbOBTHZRKTQQgBMgoByipll00H0E1bRhfr2l6v+7r3uLbXvXvd19t777333svqf3SpTRzbT4ptyd/fkJ7ex9iK9PSe0B2L8lxeVx//qKO4PdJ3qHhXbXzlloOi1bHIilFJxs2X92CgT1adimY7Awnc2JyFqare0RbjhbhfWVuDTTT54RaRAyKunI0taVZbOSNk44k/sGVV7y9jgKDBSdiW7tsp2IWMhrBtffaxLYjnCmbS1LB1yOm5mFFnCq1C7sUcyrUEQfdjLvX4zSHuVZhTh3LMIA2/YG5VlaWHlE/ATuhyOognCzujHDpE+NIhBv6ugQaR5mPHdMZFgWzCDupNMmQQO6pcEiSgt/nzrM2XF9r0r74hCCFot87iSUmS3Ld2WSXU3nInBjTpG/0AslVvIEiyShdbQUxbpFgL+uYdRshSff8bUlKebjPEmEc1Xq7vmW6ALNB3D0gpuZuVtpn/nHq7zhsMBt8vzOgu6uhTWvtFjWm9YU9GOsjXhqfLl7QqmPve4OkGJOmVGVvXE5mua1pmcNOrhbiMcY9PYlKm8VW6NZBc0MkG8Rv9XExBwAPgTDaIABz5VMhh7NB/AiEfJCGuSvgADn0T5avchUyBXV42yFLoqXscMgd2tbJB2qCnhxSISPoZCywMRPKULUNIYVYNG2QhwdViGfIgocfP9rpcBFcLpATER+gYkhgVIDiLJSCvw+ZnJGath962JyDXsVO/d8oLW5uAwE9yVuLQMeBuD0JhGM8FeCBhwiRG+aBtgsQleJadgurgcYkPcgI4vIHGIJgPEgQOr6Mf4Svkg5QCh/3oqFPLPH25D6HVoC3MBxEmGx0+jS45tSuqEPCb+A/NchriP2d0uBvB89siTsgSo8OfURU8ijn94avQJKencA5cQgib2Tt8kGyYDUMR0HaVD3IcOJyJJoK2Ij7INeBwBtoH2tr5IMXAYTEiHKU8PAzXCPD3GDoJIYU8EEIQuQYdgY0dPBBCIiuKYk6Fj/TIy4tchKivix1yDyHNKqI7RwlsxAyphs7mJ0KilwiQ86yMBwjOWhOQUVIozrgS+0m+mhIQoYrQsYTthf1KchW+G9VvJuF/YKCgOSRPG+Sjw6fEZMYM2/NYWE10FJUhrnnknEmJPUYJJX+ZqZwZt9KSPzYWMc80WpJq/GCqyYh89XeF1qLF4onL0zJCyyHlJ5MF6p6yLDFA1KV6egOmMwAFhul5qtlqRuLzZNP38ihxg9bsdq83jzoJBN+Fm2mLOXUqRFJLGQPKczcbTOctf6QREi5MDFWaJNwSp1I1S5Q6pLxWKo//0Gid5SKsuOYFqVe1STXNTi9T0IiVsNJlxuiTtJA8TY/8zIYD2EXyJxkwgRToc5CtqZ5v5fH9OusyMkRMz/jGkOjUxsTKHv+XtihKm8dPpS2luox54QLNR1amf48mPKNN4X3pIEdgGn0byHYNfaH8+fuBBhokNw3jcUKuXmpXuyvU4Lnx6vFYuvxElM54SyJVHdwpgzyr62IGHeIj109Sn+USR3BiSKGDclMqcfAT73+yl14425naGEUuyLF0JcB4yu5aHjvkt/TFzBXaROj6w1u83iHvs80v2oN0mpVlD5BGFdmCPGpeYI7aiShJkJNWSuWF52ClzQbkCWv1+DwQpK2xDAmVWL6+0GUYOmwVEkc2LmIE9SWwFdYgFQft3fZAe7UxwhVLkHrB9uWYnHiN+RTWnEc6y5iu+WwcTkbJtTTI9nGDyv0FzBeWysdekH2M0iBKor+iq5zr6hVq7Iw8t42+eDW9G5n6vGDi5H8BBgCTacDsFxo/3wAAAABJRU5ErkJggg=="
@@ -18,6 +24,10 @@
vernesong.innerHTML = '
';
frainzy1477.innerHTML = '
';
SukkaW.innerHTML = '
';
+ lhie1_dev.innerHTML = '
';
+ ConnersHua_dev.innerHTML = '
';
+ MaxMind.innerHTML = '
';
+ haishanh.innerHTML = '
';
binupdate.innerHTML = '
';
openupdate.innerHTML = '
';
@@ -41,15 +51,35 @@
url4='https://github.com/SukkaW';
window.open(url4);
}
+ function lhie1_rediret()
+ {
+ url5='https://github.com/lhie1';
+ window.open(url5);
+ }
+ function ConnersHua_rediret()
+ {
+ url6='https://github.com/ConnersHua';
+ window.open(url6);
+ }
function binupdate_rediret()
{
- url5='https://github.com/vernesong/OpenClash/releases/tag/Clash';
- window.open(url5);
+ url7='https://github.com/vernesong/OpenClash/releases/tag/Clash';
+ window.open(url7);
}
function openupdate_rediret()
{
- url6='https://github.com/vernesong/OpenClash/releases';
- window.open(url6);
+ url8='https://github.com/vernesong/OpenClash/releases';
+ window.open(url8);
+ }
+ function MaxMind_rediret()
+ {
+ url9='https://www.maxmind.com/en/geoip2-country-database';
+ window.open(url9);
+ }
+ function haishanh_rediret()
+ {
+ url10='https://github.com/haishanh';
+ window.open(url10);
}
function imgerrorfun(imgobj,imgSrc){
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm
index da1db07dd4..027c24cc93 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm
@@ -139,7 +139,7 @@
IPIP 国内:
- 太平洋 国内:
+ IP.PC 国内:
IP.SB 海外:
@@ -222,9 +222,8 @@
},
getWebrtcIP: () => {
window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
- let pc = new RTCPeerConnection({ iceServers: [] }),
+ let pc = new RTCPeerConnection({ iceServers: [] }),
noop = () => { };
-
pc.createDataChannel('');
pc.createOffer(pc.setLocalDescription.bind(pc), noop);
pc.onicecandidate = (ice) => {
@@ -336,7 +335,7 @@
IP.getIpifyIP();
IP.getWebrtcIP();
- setTimeout("myip_Load()",1000*20);
+ setTimeout("myip_Load()",1000*10);
}
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm
new file mode 100644
index 0000000000..8c86aee74a
--- /dev/null
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm
@@ -0,0 +1,3 @@
+<%+cbi/valueheader%>
+-- ms
+<%+cbi/valuefooter%>
\ No newline at end of file
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm
new file mode 100644
index 0000000000..c5430f044c
--- /dev/null
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm
@@ -0,0 +1,32 @@
+<%#
+ Copyright 2018-2019 Lienol
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%
+local dsp = require "luci.dispatcher"
+-%>
+
+
\ No newline at end of file
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm
index 4726bd39a0..8249a5b23b 100644
--- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm
+++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm
@@ -114,7 +114,7 @@
function telegrampage()
{
- url6='https://telegram.clash.dev';
+ url6='https://t.me/joinchat/D4mVX0n-n5mOK6YO_W3_Og';
window.open(url6);
}
@@ -145,9 +145,11 @@
function clashversion_error()
{
-
- clashversion.innerHTML = '
';
-
+ XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "currentversion")%>', status.currentversion, function(x, status) {
+ if ( x && x.status == 200 ) {
+ clashversion.innerHTML = '
';
+ }
+ });
}
function imgerrorfuns(imgobj,imgSrc){
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh
new file mode 100755
index 0000000000..fb1578224e
--- /dev/null
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+status=$(ps|grep -c /usr/share/openclash/cfg_servers_address_fake_block.sh)
+[ "$status" -gt "3" ] && exit 0
+
+en_mode=$(uci get openclash.config.en_mode 2>/dev/null)
+if pidof clash >/dev/null && [ "$en_mode" = "fake-ip" ]; then
+ rm -rf /tmp/dnsmasq.d/dnsmasq_openclash.conf >/dev/null 2>&1
+ /usr/share/openclash/openclash_fake_block.sh
+ mkdir -p /tmp/dnsmasq.d
+ ln -s /etc/openclash/dnsmasq_fake_block.conf /tmp/dnsmasq.d/dnsmasq_openclash.conf >/dev/null 2>&1
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1
+fi
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh
index 520e7b3225..6dd5e31837 100755
--- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh
@@ -12,11 +12,14 @@ subscribe_url=$(uci get openclash.config.subscribe_url 2>/dev/null)
en_mode=$(uci get openclash.config.en_mode 2>/dev/null)
servers_update=$(uci get openclash.config.servers_update 2>/dev/null)
servers_update_keyword=$(uci get openclash.config.servers_update_keyword 2>/dev/null)
-
-config_dawnload()
+dns_port=$(uci get openclash.config.dns_port 2>/dev/null)
+enable_redirect_dns=$(uci get openclash.config.enable_redirect_dns 2>/dev/null)
+disable_masq_cache=$(uci get openclash.config.disable_masq_cache 2>/dev/null)
+
+config_download()
{
-if [ "$URL_TYPE" == "V2ray" ]; then
- echo "开始下载v2ray配置文件..." >$START_LOG
+if [ "$URL_TYPE" == "v2rayn" ]; then
+ echo "开始下载V2rayN配置文件..." >$START_LOG
subscribe_url=`echo $subscribe_url |sed 's/{/%7B/g;s/}/%7D/g;s/:/%3A/g;s/\"/%22/g;s/,/%2C/g;s/?/%3F/g;s/=/%3D/g;s/&/%26/g;s/\//%2F/g'`
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://tgbot.lbyczf.com/v2rayn2clash?url="$subscribe_url" -O /tmp/config.yaml
elif [ "$URL_TYPE" == "surge" ]; then
@@ -33,6 +36,7 @@ config_cus_up()
{
if [ "$servers_update" -eq "1" ] || [ ! -z "$servers_update_keyword" ]; then
echo "配置文件替换成功,开始挑选节点..." >$START_LOG
+ echo "${LOGTIME} Config Update Successful" >>$LOG_FILE
uci set openclash.config.servers_if_update=1
uci commit openclash
/usr/share/openclash/yml_groups_get.sh
@@ -59,6 +63,7 @@ config_su_check()
else
echo "配置文件没有任何更新,停止继续操作..." >$START_LOG
rm -rf /tmp/config.yaml
+ change_dns
echo "${LOGTIME} Updated Config No Change, Do Nothing" >>$LOG_FILE
sleep 5
echo "" >$START_LOG
@@ -80,34 +85,53 @@ config_error()
echo "" >$START_LOG
}
-config_dawnload
+change_dns()
+{
+ if pidof clash >/dev/null; then
+ if [ "$enable_redirect_dns" -ne "0" ]; then
+ uci del dhcp.@dnsmasq[-1].server >/dev/null 2>&1
+ uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port"
+ uci delete dhcp.@dnsmasq[0].resolvfile
+ uci set dhcp.@dnsmasq[0].noresolv=1
+ [ "$disable_masq_cache" -eq "1" ] && {
+ uci set dhcp.@dnsmasq[0].cachesize=0
+ }
+ uci commit dhcp
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1
+ fi
+ nohup /usr/share/openclash/openclash_watchdog.sh &
+ fi
+}
+
+config_download
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/config.yaml |awk '{print int($5/1024)}')" -ne 0 ]; then
config_su_check
else
if pidof clash >/dev/null; then
echo "配置文件下载失败,尝试不使用代理下载配置文件..." >$START_LOG
- if [ "$en_mode" = "fake-ip"]; then
- resolve_sub_ips=$(nslookup "$subscribe_url" 114.114.114.114 |grep Address |awk -F ': ' '{print $2}')
- else
- resolve_sub_ips=$(nslookup "$subscribe_url" 127.0.0.1 |grep Address |awk -F ': ' '{print $2}')
- fi
- for resolve_sub_ip in $resolve_sub_ips; do
- iptables -t nat -I openclash -d "$resolve_sub_ip" -j RETURN >/dev/null 2>&1
+ watchdog_pids=$(ps |grep openclash_watchdog.sh |grep -v grep |awk '{print $1}' 2>/dev/null)
+ for watchdog_pid in $watchdog_pids; do
+ kill -9 "$watchdog_pid" >/dev/null 2>&1
done
+
+ uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port" >/dev/null 2>&1
+ uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto
+ uci set dhcp.@dnsmasq[0].noresolv=0
+ uci delete dhcp.@dnsmasq[0].cachesize
+ uci commit dhcp
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1
+ sleep 3
- config_dawnload
+ config_download
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/config.yaml |awk '{print int($5/1024)}')" -ne 0 ]; then
config_su_check
else
+ change_dns
config_error
fi
-
- for resolve_sub_ip in $resolve_sub_ips; do
- iptables -t nat -D openclash -d "$resolve_sub_ip" -j RETURN >/dev/null 2>&1
- done
else
config_error
fi
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_fake_block.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_fake_block.sh
index b8c9eb3051..6885530698 100755
--- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_fake_block.sh
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_fake_block.sh
@@ -1,5 +1,8 @@
-#! /bin/sh
-echo "设置Fake-IP黑名单..." >$START_LOG
+#!/bin/bash /etc/rc.common
+
+START_LOG="/tmp/openclash_start.log"
+echo "正在设置Fake-IP黑名单..." >$START_LOG
+
direct_dns=$(uci get openclash.config.direct_dns 2>/dev/null)
[ -z "$direct_dns" ] && {
direct_dns="114.114.114.114"
@@ -11,3 +14,27 @@ do
echo "server=/$i/$direct_dns" >>/etc/openclash/dnsmasq_fake_block.conf
fi
done
+
+cfg_server_address()
+{
+ local section="$1"
+ config_get "server" "$section" "server" ""
+
+ IFIP=$(echo $server |grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")
+ if [ -z "$IFIP" ] && [ ! -z "$server" ]; then
+ echo "server=/$server/$direct_dns" >>/etc/openclash/dnsmasq_fake_block.conf
+ noip="false"
+ else
+ return
+ fi
+}
+
+#Fake下正确检测节点延迟
+noip="true"
+echo "#Server Nodes" >>/etc/openclash/dnsmasq_fake_block.conf
+config_load "openclash"
+config_foreach cfg_server_address "servers"
+[ "$noip" = "true" ] && {
+ sed -i '/#Server Nodes/d' /etc/openclash/dnsmasq_fake_block.conf 2>/dev/null
+}
+echo "" >$START_LOG
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_change.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_change.sh
index b27f7dda58..ba91effffe 100755
--- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_change.sh
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_change.sh
@@ -61,10 +61,10 @@
fi
if [ -z "$(grep '^mode: $13' "$7")" ]; then
- if [ ! -z "$(grep "^ \{0,\}^mode:" "$7")" ]; then
- sed -i "/^ \{0,\}^mode:/c\^mode: ${13}" "$7"
+ if [ ! -z "$(grep "^ \{0,\}mode:" "$7")" ]; then
+ sed -i "/^ \{0,\}mode:/c\mode: ${13}" "$7"
else
- sed -i "/^dns:/i\^mode: ${13}" "$7"
+ sed -i "/^dns:/i\mode: ${13}" "$7"
fi
fi
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh
index 0507adcd4d..f8bdb9b79f 100755
--- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh
@@ -112,9 +112,9 @@ do
#节点存在时获取节点编号
if [ "$servers_if_update" = "1" ]; then
- server_num=$(grep "$server_name$" "$match_servers" |awk -F '.' '{print $1}')
+ server_num=$(grep -Fw "$server_name" "$match_servers" |awk -F '.' '{print $1}')
if [ "$servers_update" -eq "1" ] && [ ! -z "$server_num" ]; then
- sed -i "/${server_name}$/c\#match#" "$match_servers" 2>/dev/null
+ sed -i "/^${server_num}\./c\#match#" "$match_servers" 2>/dev/null
elif [ ! -z "$servers_update_keyword" ]; then #匹配关键字订阅节点
match="false"
config_load "openclash"
@@ -123,9 +123,6 @@ do
echo "跳过【$server_name】服务器节点..." >$START_LOG
continue
fi
- elif [ "$servers_update" -eq "1" ]; then
- echo "跳过【$server_name】服务器节点..." >$START_LOG
- continue
fi
fi
#type
@@ -147,7 +144,7 @@ do
#obfs:
obfs="$(cfg_get "obfs:" "$single_server")"
#psk:
- obfs="$(cfg_get "psk:" "$single_server")"
+ psk="$(cfg_get "psk:" "$single_server")"
#obfs-host:
obfs_host="$(cfg_get "obfs-host:" "$single_server")"
#mode:
@@ -196,8 +193,8 @@ do
${uci_set}obfs="$obfs"
${uci_set}host="$obfs_host"
${uci_set}obfs_snell="$mode"
- [ -z "$obfs" ] && [ "$server_type" != "snell" ] && ${uci_set}obfs="$mode"
- [ -z "$mode" ] && [ "$server_type" != "snell" ] && ${uci_set}obfs="none"
+ [ -z "$obfs" ] && ${uci_set}obfs="$mode"
+ [ -z "$obfs" ] && [ -z "$mode" ] && ${uci_set}obfs="none"
[ -z "$mode" ] && ${uci_set}obfs_snell="none"
[ -z "$mode" ] && [ ! -z "$network" ] && ${uci_set}obfs_vmess="websocket"
[ -z "$mode" ] && [ -z "$network" ] && ${uci_set}obfs_vmess="none"
@@ -231,7 +228,7 @@ do
uci_set="uci -q set $name.$uci_name_tmp."
uci_add="uci -q add_list $name.$uci_name_tmp."
- if [ -z "$new_servers_group" ] && [ "$servers_if_update" = "1" ]; then
+ if [ -z "$new_servers_group" ] && [ "$servers_if_update" = "1" ] && [ "$servers_update" -eq "1" ]; then
${uci_set}enabled="0"
else
${uci_set}enabled="1"
@@ -253,11 +250,14 @@ do
${uci_set}udp="$udp"
${uci_set}obfs="$obfs"
${uci_set}host="$obfs_host"
+ ${uci_set}obfs_snell="$mode"
[ -z "$obfs" ] && ${uci_set}obfs="$mode"
- [ -z "$mode" ] && ${uci_set}obfs="none"
+ [ -z "$obfs" ] && [ -z "$mode" ] && ${uci_set}obfs="none"
+ [ -z "$mode" ] && ${uci_set}obfs_snell="none"
[ -z "$mode" ] && [ ! -z "$network" ] && ${uci_set}obfs_vmess="websocket"
[ -z "$mode" ] && [ -z "$network" ] && ${uci_set}obfs_vmess="none"
[ -z "$obfs_host" ] && ${uci_set}host="$host"
+ ${uci_set}psk="$psk"
${uci_set}tls="$tls"
${uci_set}skip_cert_verify="$verify"
${uci_set}path="$path"
@@ -295,7 +295,6 @@ do
done
fi
fi
-
uci commit openclash
done
@@ -303,23 +302,23 @@ done
if [ "$servers_update" -eq "1" ] && [ "$servers_if_update" = "1" ]; then
echo "删除订阅中已不存在的节点..." >$START_LOG
sed -i '/#match#/d' "$match_servers" 2>/dev/null
- cat $match_servers |sort -r |while read line
- do
- if [ -z "$(echo "$line")" ]; then
+ cat $match_servers |awk -F '.' '{print $1}' |sort -rn |while read line
+ do
+ if [ -z "$line" ]; then
continue
fi
- server_num=$(echo "$line" |awk -F '.' '{print $1}')
- if [ "$(uci get openclash.@servers["$server_num"].manual)" = "0" ]; then
- uci delete openclash.@servers["$server_num"] 2>/dev/null
+ if [ "$(uci get openclash.@servers["$line"].manual)" = "0" ]; then
+ uci delete openclash.@servers["$line"] 2>/dev/null
fi
done
fi
+uci set openclash.config.servers_if_update=0
+uci commit openclash
+/usr/share/openclash/cfg_servers_address_fake_block.sh
echo "配置文件读取完成!" >$START_LOG
sleep 3
echo "" >$START_LOG
-uci set openclash.config.servers_if_update=0
-uci commit openclash
rm -rf /tmp/servers.yaml 2>/dev/null
rm -rf /tmp/yaml_proxy.yaml 2>/dev/null
rm -rf /tmp/group_*.yaml 2>/dev/null
diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh
index ae3018e493..455d74dca8 100755
--- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh
+++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh
@@ -270,6 +270,7 @@ uci set openclash.config.Domestic="Domestic"
uci set openclash.config.Others="Others"
[ "$config_auto_update" -eq 1 ] && {
uci set openclash.config.servers_update="1"
+ uci del openclash.config.new_servers_group >/dev/null 2>&1
uci add_list openclash.config.new_servers_group="Auto - UrlTest"
uci add_list openclash.config.new_servers_group="Proxy"
uci add_list openclash.config.new_servers_group="AsianTV"
@@ -328,6 +329,7 @@ uci set openclash.config.Domestic="Domestic"
uci set openclash.config.Others="Others"
[ "$config_auto_update" -eq 1 ] && {
uci set openclash.config.servers_update="1"
+ uci del openclash.config.new_servers_group >/dev/null 2>&1
uci add_list openclash.config.new_servers_group="Auto - UrlTest"
uci add_list openclash.config.new_servers_group="Proxy"
uci add_list openclash.config.new_servers_group="AsianTV"
@@ -363,6 +365,7 @@ uci set openclash.config.Proxy="Proxy"
uci set openclash.config.Others="Others"
[ "$config_auto_update" -eq 1 ] && {
uci set openclash.config.servers_update="1"
+ uci del openclash.config.new_servers_group >/dev/null 2>&1
uci add_list openclash.config.new_servers_group="Auto - UrlTest"
uci add_list openclash.config.new_servers_group="Proxy"
}
diff --git a/package/ctcgfw/luci-app-openclash/i18n/zh-cn/openclash.zh-cn.po b/package/ctcgfw/luci-app-openclash/i18n/zh-cn/openclash.zh-cn.po
index 844168884e..b5a4f86ef5 100644
--- a/package/ctcgfw/luci-app-openclash/i18n/zh-cn/openclash.zh-cn.po
+++ b/package/ctcgfw/luci-app-openclash/i18n/zh-cn/openclash.zh-cn.po
@@ -6,7 +6,7 @@ msgid "OpenClash"
msgstr "OpenClash"
msgid "A Clash Client For OpenWrt"
-msgstr "一个运行在OpenWrt上的Clash客户端,兼容Shadowsocks、Vmess等协议,根据灵活的规则配置实现策略代理"
+msgstr "一个运行在OpenWrt上的Clash客户端,兼容Shadowsocks、Vmess、Snell等协议,根据灵活的规则配置实现策略代理"
msgid "Global Settings(Will Modify The Config File Or Subscribe According To The Settings On This Page)"
msgstr "全局设置(将按照本页设置自动修改配置文件和获取订阅)"
@@ -87,7 +87,7 @@ msgid "Download Configurations"
msgstr "下载配置"
msgid "Select Mode"
-msgstr "运行模式"
+msgstr "*运行模式"
msgid "redir-host"
msgstr "Redir-Host(兼容)模式"
@@ -99,28 +99,43 @@ msgid "Select Mode For OpenClash Work, Network Error Try Flush DNS Cache"
msgstr "选择运行模式,在兼容模式下无法代理路由器自身流量,如客户端的网络无法连接请尝试清除DNS缓存"
msgid "Proxy Mode"
-msgstr "代理模式"
+msgstr "*代理模式"
msgid "Select Proxy Mode"
msgstr "选择默认代理模式"
-msgid "Rule Mode"
+msgid "Rule Proxy Mode"
msgstr "Rule【策略代理】"
-msgid "Global Mode"
+msgid "Global Proxy Mode"
msgstr "Global【全局代理(需前往控制面板手动指定节点)】"
-msgid "Direct Mode"
+msgid "Direct Proxy Mode"
msgstr "Direct【全局直连】"
msgid "Log Level"
msgstr "日志等级"
+msgid "Info Mode"
+msgstr "Info【信息】"
+
+msgid "Warning Mode"
+msgstr "Warning【警告】"
+
+msgid "Error Mode"
+msgstr "Error【错误】"
+
+msgid "Debug Mode"
+msgstr "Debug【调试】"
+
+msgid "Silent Mode"
+msgstr "Silent【静默】"
+
msgid "Select Core's Log Level"
msgstr "选择内核日志的默认输出模式"
msgid "Redirect Local DNS Setting"
-msgstr "本地DNS劫持"
+msgstr "*本地DNS劫持"
msgid "Set Local DNS Redirect"
msgstr "默认启用,将自动设置Dnsmasq的上游服务器,如和其他插件冲突可停用,但须将OpenClash作为冲突插件的唯一上游服务器"
@@ -159,7 +174,7 @@ msgid "Specify DNS Server"
msgstr "(Fake-IP模式)黑名单DNS服务器"
msgid "Specify DNS Server For List, Only One IP Server Address Support"
-msgstr "指定下方列表中域名的DNS服务器,只支持填写一个IP地址,更改后点击下方按钮生效"
+msgstr "指定下方列表中域名的DNS服务器,只支持填写一个IP地址"
msgid "Domain Names In The List Do Not Return Fake-IP, One rule per line"
msgstr "每行请只填写一个域名,列表中的域名在(Fake-IP模式)下查询DNS时将返回真实IP地址,更改后点击上方按钮生效"
@@ -199,7 +214,7 @@ msgstr "IPV6类型DNS解析"
msgid "Force Enable to Resolve ipv6 DNS Requests"
msgstr ""
-"固件须配置好IPV6的NAT,如果您没有公网IPV6地址但开启了IPV6的DHCP服务,客户端连接可能会出现异常"
+"固件须配置好IPV6的NAT,如你不使用IPV6请关闭固件的相关服务,避免客户端连接出现异常"
msgid "Rules Setting"
msgstr "规则设置(访问控制)"
@@ -230,7 +245,7 @@ msgid "Keyword Matching Setting"
msgstr "筛选节点"
msgid "Only Keep Servers which Matching Keywords, eg: hk or tw&bgp"
-msgstr "仅订阅名字与以上任意关键字匹配的节点,不区分大小写。格式示例:香港、台湾&bgp"
+msgstr "仅订阅名字与以上任意一行关键字匹配的节点,不区分大小写,条件且请用(&)表示。格式示例:香港、台湾&bgp"
msgid "Please Make Sure Ports Available"
msgstr "请确保端口可用"
@@ -241,8 +256,8 @@ msgstr "订阅地址"
msgid "Update Url Type"
msgstr "订阅地址类型"
-msgid "Power By fndroid,Use Other Rules If V2ray Subcription"
-msgstr "API提供:Fndroid,V2ray类型的订阅可配合第三方规则使用"
+msgid "Power By fndroid,Use Other Rules If V2rayN Subcription"
+msgstr "API提供:Fndroid,V2rayN类型的订阅可配合第三方规则使用"
msgid "Update Subcription"
msgstr "更新订阅配置"
@@ -422,7 +437,7 @@ msgid ""
msgstr "<可更新>"
msgid "Chose to Download"
-msgstr "选择内核编译版本"
+msgstr "*选择内核编译版本"
msgid "Select Based On Your CPU Model For Core Update, Wrong Version Will Not Work"
msgstr "请根据处理器架构选择以便下载、更新对应内核,错误的版本将不能正常运行"
@@ -454,7 +469,7 @@ msgid "Load Config"
msgstr "读取配置"
msgid "Delete Unused Servers"
-msgstr "删除未选中节点"
+msgstr "删除未启用节点"
msgid "Delete Severs"
msgstr "清空服务器配置"
@@ -478,7 +493,7 @@ msgid "New Servers Group"
msgstr "新节点默认策略组"
msgid "Set The New Subscribe Server's Default Proxy Groups"
-msgstr "选择符合订阅要求的新节点的默认策略组"
+msgstr "选择符合订阅要求的新节点的默认策略组(请勿重复添加)"
msgid "Choose Template For Create Config"
msgstr "选择配置文件模板"
@@ -501,6 +516,9 @@ msgstr "服务器地址"
msgid "Server Port"
msgstr "服务器端口"
+msgid "Ping Latency"
+msgstr "服务器延迟"
+
msgid "Edit Server"
msgstr "编辑服务器配置"
@@ -579,8 +597,8 @@ msgstr "负载均衡(Load-Balance)"
msgid "Other Group"
msgstr "包含其他策略组(请勿重复添加)"
-msgid "The added Proxy Groups Must Exist"
-msgstr "注意:修改配置文件前添加的策略组必须已创建"
+msgid "The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'"
+msgstr "注意:除'DIRECT'和'REJECT'外,修改配置文件前添加的其他策略组必须已创建"
msgid "Proxy Group"
msgstr "添加到策略组(请勿重复添加)"
diff --git a/package/ctcgfw/luci-app-openclash/tools/po2lmo/src/po2lmo b/package/ctcgfw/luci-app-openclash/tools/po2lmo/src/po2lmo
old mode 100755
new mode 100644