luci-app-clash: sync with upstream source

This commit is contained in:
CN_SZTL 2020-01-27 00:01:31 +08:00
parent 4b78488d23
commit 2425197229
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
6 changed files with 45 additions and 39 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-clash
PKG_VERSION:=1.4.9
PKG_VERSION:=1.5.0
PKG_MAINTAINER:=frainzy1477

View File

@ -576,8 +576,10 @@ stop(){
tun_mode=$(uci get clash.config.tun_mode 2>/dev/null)
ipv6=$(uci get clash.config.ipv6 2>/dev/null)
core=$(uci get clash.config.core 2>/dev/null)
LIST="/usr/share/clash/server.list"
sed -i '/#START/,/#END/d' "$LIST" 2>/dev/null
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo "Stopping Client..." >$REAL_LOG
elif [ "${lang}" == "zh_cn" ];then
@ -656,9 +658,6 @@ stop(){
rm -rf /etc/clash/*.yaml /etc/clash/*.yml >/dev/null 2>&1
mv /usr/share/clash/list.bak /usr/share/clash/server.list >/dev/null 2>&1
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo " $(date "+%Y-%m-%d %H:%M:%S") - CLIENT IS DISABLED " >> /tmp/clash.txt
echo "Client is Disabled " >$REAL_LOG

View File

@ -115,7 +115,7 @@ update(){
elif [ $CORETYPE -eq 2 ];then
wget --no-check-certificate https://github.com/frainzy1477/clashrdev/releases/download/v"$CLASHRVER"/clashr-"$MODELTYPE"-v"$CLASHRVER".gz -O 2>&1 >1 /tmp/clash.gz
elif [ $CORETYPE -eq 3 ];then
wget --no-check-certificate https://github.com/frainzy1477/clashtun/releases/download/v"$CLASHTUN"/clash-"$MODELTYPE".tar.gz -O 2>&1 >1 /tmp/clash.gz
wget --no-check-certificate https://github.com/frainzy1477/clashtun/releases/download/v"$CLASHTUN"/clash-"$MODELTYPE".gz -O 2>&1 >1 /tmp/clash.gz
fi
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/clash.gz |awk '{print int($5)}')" -ne 0 ]; then

View File

@ -50,7 +50,7 @@ config_foreach yml_game_rule_get "game"
if [ -f $GAME_RULE_FILE ];then
sed -i -e "\$a#*******GAME-RULE-END**********#" $GAME_RULE_FILE 2>/dev/null
sed -i '#*******GAME-RULE-START**********#/,/#*******GAME-RULE-END**********#/d' "$CLASH_CONFIG" 2>/dev/null
sed -i '/#*******GAME-RULE-START**********#/,/#*******GAME-RULE-END**********#/d' "$CLASH_CONFIG" 2>/dev/null
if [ ! -z "$(grep "^ \{0,\}- GEOIP" "/etc/clash/config.yaml")" ]; then
sed -i '1,/^ \{0,\}- GEOIP,/{/^ \{0,\}- GEOIP,/s/^ \{0,\}- GEOIP,/#*******GAME-RULE-START**********#\n&/}' "$CLASH_CONFIG" 2>/dev/null
@ -62,8 +62,9 @@ fi
sed -i '/GAME-RULE-START/r/tmp/yaml_game_rule_group.yaml' "$CLASH_CONFIG" 2>/dev/null
fi
else
sed -i '#*******GAME-RULE-START**********#/,/#*******GAME-RULE-END**********#/d' "$CLASH_CONFIG" 2>/dev/null
sed -i '/#*******GAME-RULE-START**********#/,/#*******GAME-RULE-END**********#/d' "$CLASH_CONFIG" 2>/dev/null
fi

View File

@ -2,41 +2,46 @@
. /lib/functions.sh
dnsforwader=$(uci get clash.config.dnsforwader 2>/dev/null)
cp /usr/share/clash/server.list /usr/share/clash/list.bak
add_address(){
servers_get()
{
local section="$1"
config_get "server" "$section" "server" ""
echo "$server" >>/tmp/server.conf
}
config_load clash
config_foreach servers_get "servers"
enable_list=$(uci get clash.config.cus_list 2>/dev/null)
if [ $enable_list -eq 1 ];then
count=$(grep -c '' /tmp/server.conf)
count_num=1
while [[ $count_num -le $count ]]
do
line=$(sed -n "$count_num"p /tmp/server.conf)
check_addr=$(grep -F "$line" "/usr/share/clash/server.list")
if [ -z $check_addr ];then
echo $line >>/usr/share/clashbackup/address.list
fi
count_num=$(( $count_num + 1))
done
cat /usr/share/clashbackup/address.list /usr/share/clash/server.list > /usr/share/clash/me.list
rm -rf /usr/share/clash/server.list
mv /usr/share/clash/me.list /usr/share/clash/server.list
chmod 755 /usr/share/clash/server.list
rm -rf /tmp/server.conf /usr/share/clashbackup/address.list >/dev/null 2>&1
add_address(){
servers_get()
{
local section="$1"
config_get "server" "$section" "server" ""
echo "$server" >>/tmp/server.conf
}
config_load clash
config_foreach servers_get "servers"
count=$(grep -c '' /tmp/server.conf)
count_num=1
while [[ $count_num -le $count ]]
do
line=$(sed -n "$count_num"p /tmp/server.conf)
check_addr=$(grep -F "$line" "/usr/share/clash/server.list")
if [ -z $check_addr ];then
echo $line >>/usr/share/clashbackup/address.list
fi
count_num=$(( $count_num + 1))
done
sed -i "1i\#START" /usr/share/clashbackup/address.list 2>/dev/null
sed -i -e "\$a#END" /usr/share/clashbackup/address.list 2>/dev/null
cat /usr/share/clashbackup/address.list /usr/share/clash/server.list > /usr/share/clash/me.list
rm -rf /usr/share/clash/server.list
mv /usr/share/clash/me.list /usr/share/clash/server.list
chmod 755 /usr/share/clash/server.list
rm -rf /tmp/server.conf /usr/share/clashbackup/address.list >/dev/null 2>&1
}
if [ "${dnsforwader}" -eq 1 ];then
add_address >/dev/null 2>&1
fi
enable_list=$(uci get clash.config.cus_list 2>/dev/null)
if [ $enable_list -eq 1 ];then
if [ -d /tmp/dnsmasq.clash ];then
rm -rf /tmp/dnsmasq.clash
@ -60,3 +65,4 @@ awk '!/^$/&&!/^#/{printf("server=/%s/'"$cutom_dns"'\n",$0)}' /usr/share/clash/se
ln -s /tmp/dnsmasq.clash/custom_list.conf /tmp/dnsmasq.d/custom_list.conf
fi