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+LjsPoNWUuSpLboxoTg1QO0nVoNf82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 \ 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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 \ 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 @@
- - + + + +
Clash 核心发布: <%:Collecting data...%> OpenClash 客户端发布: <%:Collecting data...%>
Clash 核心开发: Dreamacro <%:Collecting data...%> OpenClash 客户端开发: vernesong <%:Collecting data...%>
Luci For Clash: frainzy1477 <%:Collecting data...%> MyIP: SukkaW <%:Collecting data...%>
Clash 核心: Dreamacro <%:Collecting data...%> OpenClash 客户端: vernesong <%:Collecting data...%>
Clash 客户端: frainzy1477 <%:Collecting data...%> MyIP: SukkaW <%:Collecting data...%>
第三方规则: lhie1 <%:Collecting data...%> 第三方规则: ConnersHua <%:Collecting data...%>
Yacd 控制面板: haishanh <%:Collecting data...%> GEOIP 数据库:MaxMind <%:Collecting data...%>
@@ -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 = 'vernesong'; frainzy1477.innerHTML = 'frainzy1477'; SukkaW.innerHTML = 'SukkaW'; + lhie1_dev.innerHTML = 'lhie1'; + ConnersHua_dev.innerHTML = 'ConnersHua'; + MaxMind.innerHTML = 'MaxMind'; + haishanh.innerHTML = 'haishanh'; binupdate.innerHTML = 'binupdate'; openupdate.innerHTML = 'openupdate'; @@ -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 = 'currentversion'; - + XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "currentversion")%>', status.currentversion, function(x, status) { + if ( x && x.status == 200 ) { + clashversion.innerHTML = 'currentversion'; + } + }); } 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