diff --git a/scripts/libs/meta_listeners.sh b/scripts/libs/meta_listeners.sh index a2cba397..c338a769 100644 --- a/scripts/libs/meta_listeners.sh +++ b/scripts/libs/meta_listeners.sh @@ -3,23 +3,26 @@ #meta内核vmess入站生成 [ "$vms_service" = ON ] && { - cat >>"$TMPDIR"/yamls/listeners.yaml <>"$TMPDIR"/listeners.yaml <>"$TMPDIR"/yamls/listeners.yaml <>"$TMPDIR"/listeners.yaml <>"$TMPDIR"/yamls/proxies.yaml <>"$TMPDIR"/proxies.yaml <"$TMPDIR"/jsons/vmess-in.json </dev/null 2>&1; then - curl -kfsSl --connect-timeout 3 $1 2>/dev/null - else - wget -Y on -q --timeout=3 -O - $1 - fi -} -webpost() { - setproxy - if curl --version >/dev/null 2>&1; then - curl -kfsSl -X POST --connect-timeout 3 -H "Content-Type: application/json; charset=utf-8" "$1" -d "$2" >/dev/null 2>&1 - else - wget -Y on -q --timeout=3 --method=POST --header="Content-Type: application/json; charset=utf-8" --body-data="$2" "$1" - fi -} send_msg() { TEXT="$1" - webpost "$API/sendMessage" "{\"chat_id\":\"$TG_CHATID\",\"text\":\"$TEXT\",\"parse_mode\":\"Markdown\"}" + web_json_post "$API/sendMessage" "{\"chat_id\":\"$TG_CHATID\",\"text\":\"$TEXT\",\"parse_mode\":\"Markdown\"}" } send_help(){ TEXT=$(cat < " res if [ "$res" = 1 ]; then - url_tg=https://api.telegram.org/bot${TOKEN}/getUpdates - [ -n "$authentication" ] && auth="$authentication@" - export https_proxy="http://${auth}127.0.0.1:$mix_port" - chat=$(webget $url_tg | tail -n -1) + . "$CRASHDIR"/libs/web_json.sh #加载web工具 + bot_api=https://api.telegram.org/bot$TOKEN + chat=$(web_json_get "$bot_api/getUpdates" | tail -n -1) [ -n "$chat" ] && chat_ID=$(echo $chat | grep -oE '"id":.*,"is_bot":false' | sed s'/"id"://'g | sed s'/,"is_bot":false//'g) [ -z "$chat_ID" ] && { echo -e "\033[31m无法获取对话ID,请确认使用的不是已经被绑定的机器人,或手动输入ChatID!\033[0m" @@ -126,15 +130,19 @@ set_bot_tg_init(){ setconfig TG_TOKEN $TOKEN "$CFG" setconfig TG_CHATID $chat_ID "$CFG" #设置机器人快捷命令 - curl -s -X POST "https://api.telegram.org/bot$TOKEN/setMyCommands" \ - -H "Content-Type: application/json" \ - -d '{ - "commands": [ - {"command": "crash", "description": "呼出ShellCrash菜单"}, - {"command": "help", "description": "查看帮助"} - ] - }' - echo -e "\033[32m已完成Telegram机器人设置!\033[0m" + JSON=$(cat </dev/null 2>&1 + [ -n "$PID" ] && kill -9 $PID >/dev/null 2>&1 else bot_tg_service=ON - [ -z "$(pidof bot_tg.sh)" ] && "$CRASHDIR"/components/bot_tg.sh & + [ -z "$PID" ] && "$CRASHDIR"/menus/bot_tg.sh & fi setconfig bot_tg_service "$bot_tg_service" } @@ -172,9 +181,12 @@ set_bot_tg(){ else set_bot_tg_init && set_bot_tg_service fi + sleep 1 + set_bot_tg ;; 2) set_bot_tg_init && set_bot_tg_service + set_bot_tg ;; *) errornum diff --git a/scripts/start.sh b/scripts/start.sh index 60015175..dec850c9 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -666,7 +666,7 @@ EOF for char in $yaml_char; do #将额外配置文件合并 [ -s "$TMPDIR"/${char}.yaml ] && { sed -i "1i\\${char}:" "$TMPDIR"/${char}.yaml - yaml_add="$yaml_add "$TMPDIR"/${char}.yaml" + yaml_add="$yaml_add $TMPDIR/${char}.yaml" } done #合并完整配置文件 @@ -2023,6 +2023,8 @@ afstart() { #启动后 line=$(grep -En "fw.* start" /etc/init.d/firewall | cut -d ":" -f 1) sed -i "${line}a\\. "$CRASHDIR"/task/affirewall" /etc/init.d/firewall } & + #启动TG机器人 + [ "$bot_tg_service" = ON ] && "$CRASHDIR"/menus/bot_tg.sh & else start_error $0 stop @@ -2120,6 +2122,7 @@ stop) stop_firewall #清理路由策略 fi PID=$(pidof CrashCore) && [ -n "$PID" ] && kill -9 $PID >/dev/null 2>&1 + PID=$(pidof /bin/sh "$CRASHDIR"/menus/bot_tg.sh) && [ -n "$PID" ] && kill -9 $PID >/dev/null 2>&1 #清理缓存目录 rm -rf "$TMPDIR"/CrashCore ;;