mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
Merge pull request #1184 from sofia-riese/redesign-ddns
feat(ddns.sh): adapt new designs for more interfaces
This commit is contained in:
@@ -30,13 +30,13 @@ upgrade() {
|
||||
|
||||
separator_line "="
|
||||
content_line "\033[30;47m更新与支持\033[0m"
|
||||
separator_line "-"
|
||||
separator_line "="
|
||||
|
||||
content_line "当前目录(\033[32m$CRASHDIR\033[0m)剩余空间:\033[36m$(dir_avail "$CRASHDIR" -h)\033[0m"
|
||||
[ "$(dir_avail "$CRASHDIR")" -le 5120 ] && [ "$CRASHDIR" = "$BINDIR" ] && {
|
||||
content_line "\033[33m当前目录剩余空间较低,建议开启小闪存模式!\033[0m"
|
||||
}
|
||||
separator_line "-"
|
||||
separator_line "="
|
||||
content_line "1) 更新\033[36m管理脚本\t\033[33m$versionsh_l\033[0m > \033[32m$version_new \033[36m$release_type\033[0m"
|
||||
content_line "2) 切换/更新\033[33m内核文件\t\033[33m$core_v\033[0m > \033[32m$core_v_new\033[0m"
|
||||
content_line "3) 安装/更新本地\033[32m数据库文件\033[0m"
|
||||
@@ -46,6 +46,7 @@ upgrade() {
|
||||
content_line "7) 切换\033[36m安装源及版本分支\033[0m"
|
||||
content_line "8) \033[31m卸载ShellCrash\033[0m"
|
||||
content_line "9) \033[36m感谢列表!\033[0m"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
|
||||
@@ -87,7 +88,7 @@ upgrade() {
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "感谢以下项目及其开发者们的无私奉献!"
|
||||
separator_line "-"
|
||||
separator_line "="
|
||||
|
||||
content_line "\033[32mClash \033[0m开发:\033[36mDreamacro\033[0m"
|
||||
content_line ""
|
||||
@@ -120,7 +121,7 @@ upgrade() {
|
||||
content_line "开发者地址:\033[32mhttps://github.com/DustinWin\033[0m"
|
||||
content_line ""
|
||||
|
||||
separator_line "-"
|
||||
separator_line "="
|
||||
content_line "特别感谢:\033[36m所有帮助及赞助过此项目的同仁们!\033[0m"
|
||||
separator_line "="
|
||||
sleep 2
|
||||
|
||||
@@ -7,9 +7,7 @@ private_bot() {
|
||||
read -r -p "请输入你获取到的API TOKEN> " TOKEN
|
||||
url_tg=https://api.telegram.org/bot${TOKEN}/getUpdates
|
||||
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "请向\033[32m你申请的机器人\033[33m而不是BotFather!\033[0m"
|
||||
top_box "请向\033[32m你申请的机器人\033[33m而不是BotFather!\033[0m"
|
||||
}
|
||||
|
||||
public_bot() {
|
||||
@@ -41,8 +39,7 @@ get_chatid() {
|
||||
|
||||
set_bot() {
|
||||
public_key=$(cat /proc/sys/kernel/random/boot_id | sed 's/.*-//')
|
||||
content_line "发送此秘钥: \033[30;46m$public_key\033[0m"
|
||||
separator_line "="
|
||||
btm_box "发送此秘钥: \033[30;46m$public_key\033[0m"
|
||||
read -r -p "我已经发送完成(1/0)> " res
|
||||
if [ "$res" = 1 ]; then
|
||||
get_chatid
|
||||
|
||||
@@ -26,6 +26,14 @@ comp_box() {
|
||||
separator_line "="
|
||||
}
|
||||
|
||||
top_box() {
|
||||
line_break
|
||||
separator_line "="
|
||||
for line in "$@"; do
|
||||
content_line "$line"
|
||||
done
|
||||
}
|
||||
|
||||
# bottom box
|
||||
btm_box() {
|
||||
for line in "$@"; do
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
# Copyright (C) Juewuy
|
||||
|
||||
ddns_menu() {
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[30;46m欢迎使用DDNS!\033[0m"
|
||||
top_box "\033[30;46m欢迎使用DDNS!\033[0m"
|
||||
load_ddns
|
||||
}
|
||||
|
||||
@@ -29,34 +28,42 @@ config service '$service'
|
||||
EOF
|
||||
/usr/lib/ddns/dynamic_dns_updater.sh -S "$service" start >/dev/null 2>&1 &
|
||||
sleep 3
|
||||
echo "服务已经添加!"
|
||||
msg_alert "服务已经添加!"
|
||||
}
|
||||
|
||||
set_ddns() {
|
||||
while true; do
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入你的域名 > " str
|
||||
line_break
|
||||
read -r -p "请输入你的域名> " str
|
||||
[ -z "$str" ] && domain="$domain" || domain="$str"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入用户名或邮箱 > " str
|
||||
echo ""
|
||||
read -r -p "请输入用户名或邮箱> " str
|
||||
[ -z "$str" ] && username="$username" || username="$str"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入密码或令牌秘钥 > " str
|
||||
echo ""
|
||||
read -r -p "请输入密码或令牌秘钥> " str
|
||||
[ -z "$str" ] && password="$password" || password="$str"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入检测更新间隔(单位:分钟;默认为10) > " check_interval
|
||||
echo ""
|
||||
read -r -p "请输入检测更新间隔(单位:分钟;默认为10)> " check_interval
|
||||
[ -z "$check_interval" ] || [ "$check_interval" -lt 1 -o "$check_interval" -gt 1440 ] && check_interval=10
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入强制更新间隔(单位:小时;默认为24) > " force_interval
|
||||
echo ""
|
||||
read -r -p "请输入强制更新间隔(单位:小时;默认为24)> " force_interval
|
||||
[ -z "$force_interval" ] || [ "$force_interval" -lt 1 -o "$force_interval" -gt 240 ] && force_interval=24
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "请核对如下信息:"
|
||||
echo -e "服务商: \033[32m$service\033[0m"
|
||||
echo -e "域名: \033[32m$domain\033[0m"
|
||||
echo -e "用户名: \033[32m$username\033[0m"
|
||||
echo -e "检测间隔: \033[32m$check_interval\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "确认添加?(1/0) > " res
|
||||
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "请核对如下信息:"
|
||||
content_line ""
|
||||
content_line "服务商: \033[32m$service\033[0m"
|
||||
content_line "域名: \033[32m$domain\033[0m"
|
||||
content_line "用户名: \033[32m$username\033[0m"
|
||||
content_line "检测间隔: \033[32m$check_interval\033[0m"
|
||||
separator_line "="
|
||||
content_line "是否确认添加:"
|
||||
separator_line "="
|
||||
content_line "1) 是"
|
||||
content_line "0) 否,重新輸入"
|
||||
separator_line "="
|
||||
read -r -p "$COMMON_INPUT> " res
|
||||
if [ "$res" = 1 ]; then
|
||||
add_ddns
|
||||
break
|
||||
@@ -68,12 +75,18 @@ set_ddns_service() {
|
||||
while true; do
|
||||
services_dir=/etc/ddns/"$serv"
|
||||
[ -s "$services_dir" ] || services_dir=/usr/share/ddns/list
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[32m请选择服务提供商\033[0m"
|
||||
cat "$services_dir" | grep -v '^#' | awk '{print " "NR" " $1}'
|
||||
comp_box "\033[32m请选择服务提供商:\033[0m"
|
||||
|
||||
# cat "$services_dir" | grep -v '^#' | awk '{print NR") " $1}'
|
||||
awk '!/^#/ {print NR") " $1}' "$services_dir" |
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
|
||||
nr=$(cat "$services_dir" | grep -v '^#' | wc -l)
|
||||
read -r -p "请输入对应数字 > " num
|
||||
if [ -z "$num" ]; then
|
||||
common_back
|
||||
read -r -p "请输入对应数字> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
i=
|
||||
break
|
||||
elif [ "$num" -gt 0 ] && [ "$num" -lt "$nr" ]; then
|
||||
@@ -82,20 +95,19 @@ set_ddns_service() {
|
||||
set_ddns
|
||||
break
|
||||
else
|
||||
echo "输入错误,请重新输入!"
|
||||
sleep 1
|
||||
msg_alert "\033[33m输入错误,请重新输入!\033[0m"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
set_ddns_type() {
|
||||
while true; do
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[32m请选择网络模式\033[0m"
|
||||
echo -e " 1 \033[36mIPV4\033[0m"
|
||||
echo -e " 2 \033[36mIPV6\033[0m"
|
||||
echo -e " 0 返回上级菜单"
|
||||
read -r -p "请输入对应数字 > " num
|
||||
comp_box "\033[32m请选择网络模式:\033[0m"
|
||||
content_line "1) \033[36mIPV4\033[0m"
|
||||
content_line "2) \033[36mIPV6\033[0m"
|
||||
content_line ""
|
||||
common_back
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
break
|
||||
@@ -113,8 +125,7 @@ set_ddns_type() {
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "输入错误,请重新输入!"
|
||||
sleep 1
|
||||
msg_alert "\033[33m输入错误,请重新输入!\033[0m"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -124,15 +135,17 @@ rev_ddns_service() {
|
||||
while true; do
|
||||
enabled=$(uci get ddns."$service".enabled)
|
||||
[ "$enabled" = 1 ] && enabled_b="停用" || enabled_b="启用"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 1 \033[32m立即更新\033[0m"
|
||||
echo -e " 2 编辑当前服务\033[0m"
|
||||
echo -e " 3 $enabled_b当前服务"
|
||||
echo -e " 4 移除当前服务"
|
||||
echo -e " 5 查看运行日志"
|
||||
echo -e " 0 返回上级菜单"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入对应数字 > " num
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "1) \033[32m立即更新\033[0m"
|
||||
content_line "2) 编辑当前服务"
|
||||
content_line "3) $enabled_b当前服务"
|
||||
content_line "4) 移除当前服务"
|
||||
content_line "5) 查看运行日志"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
break
|
||||
@@ -162,14 +175,16 @@ rev_ddns_service() {
|
||||
break
|
||||
;;
|
||||
5)
|
||||
echo "-----------------------------------------------"
|
||||
line_break
|
||||
separator_line "="
|
||||
cat /var/log/ddns/"$service".log 2>/dev/null
|
||||
content_line ""
|
||||
separator_line "="
|
||||
sleep 1
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "输入错误,请重新输入!"
|
||||
sleep 1
|
||||
msg_alert "\033[33m输入错误,请重新输入!\033[0m"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -180,27 +195,27 @@ load_ddns() {
|
||||
ddns_dir=/etc/config/ddns
|
||||
tmp_dir="$TMPDIR"/ddns
|
||||
[ ! -f "$ddns_dir" ] && {
|
||||
echo -e "\033[31m本脚本依赖OpenWrt内置的DDNS服务,当前设备无法运行,已退出!\033[0m"
|
||||
btm_box "\033[31m本脚本依赖OpenWrt内置的DDNS服务,当前设备无法运行,已退出!\033[0m"
|
||||
sleep 1
|
||||
return 1
|
||||
}
|
||||
nr=0
|
||||
cat "$ddns_dir" | grep 'config service' | awk '{print $3}' | sed "s/'//g" | sed 's/"//g' >"$tmp_dir"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "列表 域名 启用 IP地址"
|
||||
echo "-----------------------------------------------"
|
||||
separator_line "="
|
||||
content_line " 列表 域名 启用 IP地址"
|
||||
content_line ""
|
||||
[ -s "$tmp_dir" ] && for service in $(cat "$tmp_dir"); do
|
||||
# echo $service >>$tmp_dir
|
||||
nr=$((nr + 1))
|
||||
enabled=$(uci get ddns."$service".enabled 2>/dev/null)
|
||||
domain=$(uci get ddns."$service".domain 2>/dev/null)
|
||||
local_ip=$(sed '1!G;h;$!d' /var/log/ddns/"$service".log 2>/dev/null | grep -E 'Registered IP' | tail -1 | awk -F "'" '{print $2}' | tr -d "'\"")
|
||||
echo -e " $nr $domain $enabled $local_ip"
|
||||
content_line "$nr) $domain $enabled $local_ip"
|
||||
done
|
||||
echo -e " $((nr + 1)) 添加DDNS服务"
|
||||
echo -e " 0 退出"
|
||||
echo "-----------------------------------------------"
|
||||
read -r -p "请输入对应序号 > " num
|
||||
content_line "$((nr + 1))) 添加DDNS服务"
|
||||
content_line "0) 退出"
|
||||
separator_line "="
|
||||
read -r -p "请输入对应序号> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
i=
|
||||
rm -rf "$tmp_dir"
|
||||
@@ -211,8 +226,7 @@ load_ddns() {
|
||||
service=$(cat "$tmp_dir" | sed -n "$num"p)
|
||||
rev_ddns_service
|
||||
else
|
||||
echo "请输入正确数字!"
|
||||
sleep 1
|
||||
msg_alert "\033[33m请输入正确数字!\033[0m"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user