From 487ec9a27e286e355e9ab506c3098c2318ccadc8 Mon Sep 17 00:00:00 2001 From: juewuy Date: Thu, 6 Aug 2020 17:20:45 +0800 Subject: [PATCH] =?UTF-8?q?0.8=E5=A4=A7=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/getdate.sh | 332 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 scripts/getdate.sh diff --git a/scripts/getdate.sh b/scripts/getdate.sh new file mode 100644 index 0000000..838be9a --- /dev/null +++ b/scripts/getdate.sh @@ -0,0 +1,332 @@ +#!/bin/sh +# Copyright (C) Juewuy + +getyaml(){ +source $ccfg +#前后端订阅服务器地址索引,可在此处添加! +Server=`sed -n ""$server_link"p"< /dev/null 2>&1 +result=$(curl -w %{http_code} -kLo $yamlnew $Https) +if [ "$result" != "200" ];then +echo ----------------------------------------------- +echo -e "\033[31m配置文件获取失败!\033[0m" +echo ----------------------------------------------- +echo +read -p "是否更换后端地址后重试?[1/0] > " res + if [ "$res" = '1' ]; then + sed -i '/server_link=*/'d $ccfg + if [ "$server_link" = '7' ]; then + server_link=0 + fi + server_link=$(($server_link + 1)) + #echo $server_link + sed -i "5i\server_link=$server_link" $ccfg + getyaml + fi +exit; +else + if cat $yamlnew | grep ', server:' >/dev/null;then + #替换文件 + mv $yaml $yaml.bak + mv $yamlnew $yaml + echo 配置文件已生成!正在重启clash使其生效! + #重启clash服务 + /etc/init.d/clash restart + sleep 1 + status=`ps |grep -w 'clash -d'|grep -v grep|wc -l` + if [[ $status -gt 0 ]];then + echo ----------------------------------------------- + echo -e "\033[32mclash服务已启动!\033[0m" + echo -e "可以使用\033[30;47m http://clash.razord.top \033[0m管理clash内置规则" + host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';) + echo -e "Host地址:\033[30;46m $host \033[0m;端口:\033[30;46m 9999 \033[0m" + #将用户链接写入mark + sed -i '/Https=*/'d $ccfg + sed -i "7i\Https=\'$Https\'" $ccfg + clashsh + else + echo ----------------------------------------------- + if [ -f $yaml.bak ];then + echo -e "\033[31mclash服务启动失败!已还原配置文件并重启clash!\033[0m" + mv $yaml.bak $yaml + /etc/init.d/clash start + clashsh + else + echo -e "\033[31mclash服务启动失败!请利用测试菜单排查问题!\033[0m" + clashsh + fi + fi + else + echo ----------------------------------------------- + echo -e "\033[33m获取到了配置文件,但格式似乎不对!\033[0m" + echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + sed -n '1,20p' $yamlnew + echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + echo -e "\033[33m请检查如上配置文件信息:\033[0m" + echo ----------------------------------------------- + fi + exit; +fi +exit +} +getlink(){ +#设置输入循环 +i=1 +while [ $i -le 9 ] +do +echo ----------------------------------------------- +echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m" +echo ----------------------------------------------- +echo -e "\033[33m支持批量导入\033[30;46m Http/Https/Clash \033[0;33m等格式的订阅链接" +echo -e "支持批量导入\033[30;42m Vmess/SSR/SS/Trojan/Sock5 \033[0;33m等格式的节点链接" +echo -e "\033[36m多个较短的链接可以用\033[30;47m | \033[0;36m分隔以一次性输入" +echo -e "多个较长的链接请尽量分多次输入,可支持多达\033[30;47m 9 \033[0;36m次输入" +echo -e "\033[31;47m注意SSR/SS不支持:\033[30;47mchacha20加密 \033[0m" +echo -e "\033[44;37m直接输入回车以结束输入并开始导入链接!\033[0m" +echo -e "\033[33m 0 返回上级目录!\033[0m" +echo ----------------------------------------------- +read -p "请输入第"$i"个链接 > " url + test=$(echo $url | grep "://") + url=`echo ${url/\ \(*\)/''}` #删除恶心的超链接内容 + url=`echo ${url/*\&url\=/""}` #将clash完整链接还原成单一链接 + url=`echo ${url/\&config\=*/""}` #将clash完整链接还原成单一链接 + url=`echo ${url//\&/\%26}` #将分隔符 & 替换成urlcode:%26 + if [[ "$test" != "" ]];then + if [[ -z $Url ]];then + Url="$url" + else + Url="$Url"\|"$url" + fi + i=$(($i+1)) + elif [ -z $url ];then + if [ -n $Url ];then + echo ----------------------------------------------- + echo -e 请检查输入的链接是否正确: + echo -e "\033[4m$Url\033[0m" + read -p "确认导入配置文件?原配置文件将被更名为config.yaml.bak![1/0] > " res + if [ "$res" = '1' ]; then + #将用户链接写入mark + sed -i '/Url=*/'d $ccfg + sed -i '/Https=*/'d $ccfg + sed -i "6i\Url=\'$Url\'" $ccfg + #获取在线yaml文件 + getyaml + fi + clashlink + fi + elif [[ $url == 0 ]];then + clashlink + else + echo ----------------------------------------------- + echo -e "\033[31m请输入正确的订阅/分享链接!!!\033[0m" + fi +done +echo ----------------------------------------------- +echo 输入太多啦,可能会导致订阅失败! +echo "多个较短的链接请尽量用“|”分隔以一次性输入!" +echo -e "请检查输入的链接是否正确:\033[4m$Url\033[0m" +read -p "确认导入配置文件?原配置文件将被更名为config.bak![1/0] > " res + if [ "$res" = '1' ]; then + #将用户链接写入mark + sed -i '/Url=*/'d $ccfg + sed -i '/Https=*/'d $ccfg + sed -i "6i\Url=\'$Url\'" $ccfg + #获取在线yaml文件 + getyaml + else + echo ----------------------------------------------- + echo 操作已取消!返回上级菜单! + clashlink + fi + clashlink +} +getlink2(){ +echo ----------------------------------------------- +echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m" +echo ----------------------------------------------- +echo -e "\033[33m仅支持导入可直接在clash中使用的完整订阅链接" +echo -e "\033[36m非完整链接请使用【导入节点/订阅链接】功能" +echo -e "\033[31m注意如节点使用了chacha20加密协议,需将核心更新为clashr核心\033[0m" +echo -e "\033[33m0 返回上级目录!\033[0m" +echo ----------------------------------------------- +read -p "请输入完整链接 > " Https + test=$(echo $Https | grep "://") + Https=`echo ${Https/\ \(*\)/''}` #删除恶心的超链接内容 + Https=`echo ${Https//\&/\%26}` #将分隔符 & 替换成Httpscode:%26 + if [ -n $Https ];then + if [ -n $test ];then + echo ----------------------------------------------- + echo -e 请检查输入的链接是否正确: + echo -e "\033[4m$Https\033[0m" + read -p "确认导入配置文件?原配置文件将被更名为config.yaml.bak![1/0] > " res + if [ "$res" = '1' ]; then + #将用户链接写入mark + sed -i '/Url=*/'d $ccfg + sed -i '/Https=*/'d $ccfg + sed -i "6i\Https=\'$Https\'" $ccfg + #获取在线yaml文件 + getyaml + fi + clashlink + fi + elif [[ $Https == 0 ]];then + clashlink + else + echo ----------------------------------------------- + echo -e "\033[31m请输入正确的链接地址!!!\033[0m" + fi +} +getsh(){ +echo ----------------------------------------------- +echo -e "\033[33m正在检查更新!\033[0m" +result=$(curl -w %{http_code} -skLo /tmp/clashversion $update_url/bin/version) +[ "$result" != "200" ] && echo "无法连接到服务器!" && exit 1 +source /tmp/clashversion +echo ----------------------------------------------- +echo -e "当前脚本版本为:\033[33m $clashfm \033[0m" +echo -e "最新脚本版本为:\033[32m $versionsh \033[0m" +echo ----------------------------------------------- +read -p "是否更新脚本?[1/0] > " res + if [ "$res" = '1' ]; then + if command -v curl &> /dev/null; then + echo 正在获取更新文件 + result=$(curl -w %{http_code} -kLo /tmp/clashfm.tar.gz $update_url/bin/clashfm.tar.gz) + else $result + wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O /tmp/clashfm.tar.gz $tarurl + [ $? -eq 0 ] && result="200" + fi + [ "$result" != "200" ] && echo "文件下载失败!" && exit 1 + #解压 + echo ----------------------------------------------- + echo 开始解压文件! + mkdir -p $dir/clash > /dev/null + tar -zxvf '/tmp/clashfm.tar.gz' -C $dir/clash/ > /dev/null + [ $? -ne 0 ] && echo "文件解压失败!" && exit 1 + #初始化文件目录 + mv $dir/clash/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录 + chmod 777 $dir/clash/clash #授予权限 + chmod 777 /etc/init.d/clash #授予权限 + + #删除临时文件 + rm -rf /tmp/clashfm.tar.gz + rm -rf /tmp/clashversion + #提示 + echo ----------------------------------------------- + echo -e "\033[32m管理脚本更新成功!\033[0m" + echo ----------------------------------------------- + exit; + else + clashsh + fi +} +getcore(){ +source $ccfg +#获取核心及版本信息 +if [ ! -f $clashdir/clash ]; then + clashcore=没有安装核心! + version='' +else + if [ -n $clashcore ]; then + clashcore=clashpre + version=1.0.0 + fi +fi + +cpucore=armv5 +echo ----------------------------------------------- +echo -e "当前clash核心:\033[47;30m $clashcore \033[46;30m$version\033[0m" +echo -e "\033[32m请选择需要下载的核心版本!\033[0m" +echo +echo "1 clash: 运行稳定,内存占用小" +echo "(官方正式版) 不支持SSR,不支持Tun模式" +echo +echo "2 clashr: 稳定,内存占用小,支持SSR" +echo "(clashR修改版)不支持Tun模式" +echo +echo "3 clashpre: 支持SSR,支持Tun模式" +echo "(高级预览版) 内存占用高,不支持chacha20加密" +echo +echo 0 返回上级菜单 +read -p "请输入对应数字 > " num + if [[ $num == 0 ]]; then + update + elif [[ $num == 1 ]]; then + clashcore=clash + elif [[ $num == 2 ]]; then + clashcore=clashr + elif [[ $num == 3 ]]; then + clashcore=clashpre + else + echo -e "\033[31m请输入正确的数字!\033[0m" + update + exit; + fi +corelink="$update_url/bin/$clashcore/clash-linux-$cpucore" +versionlink="$update_url/bin/$clashcore/version" +echo ----------------------------------------------- +echo 正在连接服务器获取clash核心文件…………链接地址为: +echo -e "\033[4;32m$corelink\033[0m" +echo 如无法正常下载可以手动复制到浏览器下载核心文件! +echo -e "\033[36m-----------------------------------------------" +echo -e "| |" +echo -e "| 需要一点时间,请耐心等待! |" +echo -e "| \033[0m如长时间没有数据请用ctrl+c退出 |" +echo -e "-----------------------------------------------\033[0m" +#获取在线clash核心文件 +result=$(curl -w %{http_code} -kLo /tmp/clash.new $corelink) + if [ "$result" != "200" ];then + echo ----------------------------------------------- + echo -e "\033[31m核心文件下载失败!\033[0m" + echo ----------------------------------------------- + getcore + else + echo -e "\033[32m$clashcore核心下载成功,正在替换!\033[0m" + mv /tmp/clash.new $clashdir/clash + chmod 777 $clashdir/clash #授予权限 + sed -i '/clashcore*/'d $ccfg + sed -i "1i\clashcore=$clashcore" $ccfg + #sed -i '/version*/'d $ccfg + #sed -i "1i\version=$version" $ccfg + echo ----------------------------------------------- + echo -e "\033[32m$clashcore核心替换成功,请手动启动clash服务!\033[0m" + clashsh + fi + +} +getgeo(){ +echo 未完成,敬请期待!!!! +update +} + +