From cd412c815d631956c93861ba266e49cd7a4a7851 Mon Sep 17 00:00:00 2001 From: woniuzfb <47843848+woniuzfb@users.noreply.github.com> Date: Sat, 17 Jul 2021 06:11:28 +0800 Subject: [PATCH] fix --- README.md | 20 ++-- docs/iptv.sh | 89 ++++++++++-------- i18n/iptv.sh.pot | 232 +++++++++++++++++++++++------------------------ iptv.sh | 89 ++++++++++-------- 4 files changed, 232 insertions(+), 198 deletions(-) diff --git a/README.md b/README.md index 3335c74..2d9269e 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ tv c # change/update language ## 一键管理 nginx 脚本 ``` bash -wget -q https://git.io/nx.sh && bash nx.sh +wget -q https://woniuzfb.github.io/iptv/nx.sh && bash nx.sh nx # 打开 Nginx 管理面板 @@ -43,7 +43,7 @@ nx # 打开 Nginx 管理面板 ## 一键管理 openresty 脚本 ``` bash -wget -q https://git.io/or.sh && bash or.sh +wget -q https://woniuzfb.github.io/iptv/or.sh && bash or.sh or # 打开 OpenResty 管理面板 @@ -54,7 +54,7 @@ or # 打开 OpenResty 管理面板 ## 一键管理 xray 脚本 ``` bash -wget -q https://git.io/xray.sh && bash xray.sh +wget -q https://woniuzfb.github.io/iptv/xray.sh && bash xray.sh x # 打开 xray 管理面板 @@ -65,8 +65,8 @@ x # 打开 xray 管理面板 ## 一键管理 v2ray 脚本 ``` bash -wget -q https://git.io/V2.sh && bash V2.sh -# git.io/V2.sh(大写的 V) +wget -q https://woniuzfb.github.io/iptv/V2.sh && bash V2.sh +# woniuzfb.github.io/iptv/V2.sh(大写的 V) v2 # 打开 v2ray 管理面板 @@ -77,7 +77,7 @@ v2 # 打开 v2ray 管理面板 ## 一键管理 armbian 脚本 ``` bash -wget -q https://git.io/arm.sh && bash arm.sh +wget -q https://woniuzfb.github.io/iptv/arm.sh && bash arm.sh arm # 打开 Armbian 管理面板 @@ -96,7 +96,7 @@ arm # 打开 Armbian 管理面板 ## 一键管理 proxmox ve 脚本 ``` bash -wget -q https://git.io/pve.sh && bash pve.sh +wget -q https://woniuzfb.github.io/iptv/pve.sh && bash pve.sh pve # 打开 Proxmox VE 管理面板 @@ -113,7 +113,7 @@ pve # 打开 Proxmox VE 管理面板 ## 一键管理 ibm cloud foundry 脚本 ``` bash -wget -q https://git.io/ibm.sh && bash ibm.sh +wget -q https://woniuzfb.github.io/iptv/ibm.sh && bash ibm.sh ibm # 打开 ibm CF 管理面板 @@ -128,7 +128,7 @@ ibm x # 打开 ibm xray APP 管理面板 ## 一键管理 cloudflare partner,workers 脚本 ``` bash -wget -q https://git.io/cf.sh && bash cf.sh +wget -q https://woniuzfb.github.io/iptv/cf.sh && bash cf.sh cf # 打开 cloudflare partner,workers 管理面板 @@ -156,7 +156,7 @@ Mac/Linux 一键获取最优 IP 可以用脚本 [cloudflare-fping](https://githu ### [演示](https://mtime.info/) ``` bash -wget -q https://git.io/iptv.sh && bash iptv.sh +wget -q https://woniuzfb.github.io/iptv/iptv.sh && bash iptv.sh tv # 打开 iptv 管理面板 diff --git a/docs/iptv.sh b/docs/iptv.sh index 4df111a..1b76f1b 100755 --- a/docs/iptv.sh +++ b/docs/iptv.sh @@ -399,9 +399,9 @@ LocaleFix() yum -y install glibc-common glibc-locale-source glibc-all-langpacks glibc-langpack-en glibc-langpacks-zh langpacks-zh_CN >/dev/null 2>&1 || true else [ "$release" == "deb" ] && DebFixSources - AptUpdate if [[ ! -x $(command -v locale-gen) ]] then + AptUpdate if ! apt-get -y install locales >/dev/null 2>&1 then Println "${red}[ERROR]${normal} locales installation failed\n" && exit 1 @@ -24533,7 +24533,7 @@ NginxUpdateCFIBMip() Println "$info 更新 ip ..." printf '%s' "#!/bin/bash -echo '#Cloudflare' > $nginx_prefix/conf/cloudflare_ip.conf; +echo -e 'set_real_ip_from 127.0.0.0/24;\n#Cloudflare' > $nginx_prefix/conf/cloudflare_ip.conf; ibm_ips=( 50.22.0.0/16 50.23.0.0/16 @@ -39183,6 +39183,7 @@ set expandtab autocmd BufRead,BufNewFile *.conf setfiletype conf filetype indent off " > ~/.vimrc + DepInstall git Println "$info vimrc 设置完成, 请在 vim 下执行 PlugInstall\n" else Println "$error 无法连接服务器, 请稍后再试\n" @@ -40211,6 +40212,7 @@ WantedBy=multi-user.target" > /etc/systemd/system/$nginx_name.service inquirer text_input "输入 ipv4 分流目标 地址+端口${acme_tip:-}${ssh_tip:-}: " mmproxy_target_v4 "$i18n_cancel" ExitOnCancel mmproxy_target_v4 + echo inquirer text_input "输入 ipv6 分流目标 地址+端口${acme_tip:-}${ssh_tip:-}: " mmproxy_target_v6 "[::1]:${mmproxy_target_v4#*:}" if [ -e "/etc/systemd/system/mmproxy-$mmproxy_name.service" ] @@ -41460,29 +41462,33 @@ config interface 'lan' exit 1 fi + if ! luci_app_xray_ver=$(curl -s -m 30 "$FFMPEG_MIRROR_LINK/luci-app-xray.json" | $JQ_FILE -r '.tag_name') + then + Println "$error 无法连接服务器, 请稍后再试\n" + exit 1 + else + luci_app_xray_ver=${luci_app_xray_ver#*v} + fi + docker exec -it openwrt /bin/ash -c " if ! opkg list-installed | grep -q v2ray then - sed -i 's_downloads.openwrt.org_${FFMPEG_MIRROR_LINK#*\/\/}/openwrt_' /etc/opkg/distfeeds.conf - if ! grep -q kuoruan < /etc/opkg/customfeeds.conf - then - wget -O kuoruan-public.key $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/public.key - opkg-key add kuoruan-public.key - echo \"src/gz kuoruan_packages $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/releases/\$(. /etc/openwrt_release ; echo \$DISTRIB_ARCH)\" >> /etc/opkg/customfeeds.conf - echo \"src/gz kuoruan_universal $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/releases/all\" >> /etc/opkg/customfeeds.conf - fi + sed -i 's_http://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_https://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf opkg update - opkg install zoneinfo-asia kmod-tcp-bbr libustream-openssl + opkg remove dnsmasq + opkg install zoneinfo-asia kmod-tcp-bbr libustream-openssl jshn ip-full ipset iptables iptables-mod-tproxy resolveip dnsmasq-full opkg install luci luci-base luci-compat if ! test -e /etc/sysctl.d/12-tcp-bbr.conf || ! grep -q default_qdisc < /etc/sysctl.d/12-tcp-bbr.conf then echo \"net.core.default_qdisc=fq\" >> /etc/sysctl.d/12-tcp-bbr.conf sysctl -p fi - opkg remove dnsmasq opkg install v2ray-core - opkg install luci-app-v2ray - opkg install luci-i18n-v2ray-zh-cn + wget -O luci-app-v2ray_${luci_app_xray_ver}_all.ipk $FFMPEG_MIRROR_LINK/luci-app-v2ray_${luci_app_xray_ver}_all.ipk + opkg install luci-app-v2ray_${luci_app_xray_ver}_all.ipk --force-reinstall || true + wget -O luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk $FFMPEG_MIRROR_LINK/luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk + opkg install luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk --force-reinstall || true fi " @@ -41515,7 +41521,8 @@ config interface 'lan' docker exec -it openwrt /bin/ash -c " if ! opkg list-installed | grep -q luci-i18n-base-$lang then - sed -i 's_downloads.openwrt.org_${FFMPEG_MIRROR_LINK#*\/\/}/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_http://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_https://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf opkg update opkg install luci-i18n-base-$lang fi @@ -41845,22 +41852,22 @@ then then if [ -f /etc/apt/sources.list.d/pve-no-subscription.list ] then - sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list.d/pve-no-subscription.list + sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list.d/pve-no-subscription.list elif grep -q "pve-no-subscription" < /etc/apt/sources.list then - sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list + sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list else - echo "deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list + echo "deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list fi else if [ -f /etc/apt/sources.list.d/pve-enterprise.list ] then - sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list.d/pve-enterprise.list + sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list.d/pve-enterprise.list elif grep -q "pve-enterprise" < /etc/apt/sources.list then - sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list + sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list else - echo "deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list + echo "deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list fi fi @@ -41883,7 +41890,7 @@ then echo inquirer text_input "输入多少秒后关闭显示器" console_blank_secs 120 - sed -i 's_GRUB_CMDLINE_LINUX=""_GRUB_CMDLINE_LINUX="consoleblank='"$console_blank_secs"'"_' /etc/default/grub + sed -i '0,/GRUB_CMDLINE_LINUX=""/s//GRUB_CMDLINE_LINUX="consoleblank='"$console_blank_secs"'"/' /etc/default/grub else sed -i '0,/GRUB_CMDLINE_LINUX=.*/s//GRUB_CMDLINE_LINUX=""/' /etc/default/grub fi @@ -41914,12 +41921,10 @@ then echo AskIfContinue n "`gettext \"需要安装 mono, 耗时会很长, 是否继续\"`" - . /etc/os-release - apt-get update apt-get -y install apt-transport-https dirmngr gnupg ca-certificates apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - echo "deb https://download.mono-project.com/repo/debian stable-$VERSION_CODENAME main" | tee /etc/apt/sources.list.d/mono-official-stable.list + echo "deb https://download.mono-project.com/repo/debian stable main" | tee /etc/apt/sources.list.d/mono-official-stable.list apt-get update apt-get -y install mono-complete git fi @@ -41928,20 +41933,21 @@ then then Println "$info 安装 nbfc..." - if [[ ! -x $(command -v git) ]] - then - Println "$info 安装 git..." - apt-get update - apt-get -y install git - fi + DepInstall git + DepInstall curl + DepInstall unzip - git clone https://github.com/hirschmann/nbfc.git /tmp/nbfc - cd /tmp/nbfc + cd /tmp/ + curl -s -L "$FFMPEG_MIRROR_LINK/nbfc.zip" -o nbfc.zip + unzip nbfc.zip >/dev/null 2>&1 + + cd nbfc-master + sed -i 's~NUGET_URL=\"https://dist.nuget.org~NUGET_URL=\"$FFMPEG_MIRROR_LINK/nuget~' build.sh ./build.sh mkdir /opt/nbfc - cp -r /tmp/nbfc/Linux/bin/Release/* /opt/nbfc/ - cp /tmp/nbfc/Linux/{nbfc.service,nbfc-sleep.service} /etc/systemd/system/ + cp -r /tmp/nbfc-master/Linux/bin/Release/* /opt/nbfc/ + cp /tmp/nbfc-master/Linux/{nbfc.service,nbfc-sleep.service} /etc/systemd/system/ systemctl enable nbfc --now || true fi @@ -43397,9 +43403,9 @@ then fi fi - Println "$info 下载 pdf2htmlEX ..." if [ ! -e "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip" ] then + Println "$info 下载 pdf2htmlEX ..." if curl -s -L "https://github.com/pdf2htmlEX/pdf2htmlEX/archive/v0.18.7-poppler-0.81.0.zip" -o "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip_tmp" then mv "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip_tmp" "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip" @@ -43408,6 +43414,17 @@ then fi fi + if [ ! -e "$FFMPEG_MIRROR_ROOT/nbfc.zip" ] + then + Println "$info 下载 nbfc ..." + if curl -s -L "https://github.com/hirschmann/nbfc/archive/master.zip" -o "$FFMPEG_MIRROR_ROOT/nbfc.zip_tmp" + then + mv "$FFMPEG_MIRROR_ROOT/nbfc.zip_tmp" "$FFMPEG_MIRROR_ROOT/nbfc.zip" + else + Println "$error nbfc 下载出错, 无法连接 github ?" + fi + fi + Println "$info 下载 v2ray install-release.sh ..." if curl -s -L "$V2_LINK" -o "$FFMPEG_MIRROR_ROOT/v2ray_install-release.sh_tmp" then diff --git a/i18n/iptv.sh.pot b/i18n/iptv.sh.pot index 49e7ccc..015dd37 100644 --- a/i18n/iptv.sh.pot +++ b/i18n/iptv.sh.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: iptv.sh 1.80.9\n" "Report-Msgid-Bugs-To: tg @woniuzfb\n" -"POT-Creation-Date: 2021-06-15 17:57+0000\n" +"POT-Creation-Date: 2021-07-16 22:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -573,9 +573,9 @@ msgstr "" #: ../docs/iptv.sh:24782 ../docs/iptv.sh:28109 ../docs/iptv.sh:29129 #: ../docs/iptv.sh:30547 ../docs/iptv.sh:30572 ../docs/iptv.sh:30676 #: ../docs/iptv.sh:33031 ../docs/iptv.sh:35494 ../docs/iptv.sh:39034 -#: ../docs/iptv.sh:39082 ../docs/iptv.sh:39296 ../docs/iptv.sh:39855 -#: ../docs/iptv.sh:40013 ../docs/iptv.sh:40597 ../docs/iptv.sh:40742 -#: ../docs/iptv.sh:40895 ../docs/iptv.sh:41828 +#: ../docs/iptv.sh:39082 ../docs/iptv.sh:39297 ../docs/iptv.sh:39856 +#: ../docs/iptv.sh:40014 ../docs/iptv.sh:40599 ../docs/iptv.sh:40744 +#: ../docs/iptv.sh:40897 ../docs/iptv.sh:41835 msgid "Input No." msgstr "" @@ -589,7 +589,7 @@ msgstr "" msgid "$info Parsing youtube link..." msgstr "" -#: ../docs/iptv.sh:7132 ../docs/iptv.sh:7206 ../docs/iptv.sh:42448 +#: ../docs/iptv.sh:7132 ../docs/iptv.sh:7206 ../docs/iptv.sh:42454 msgid "Installing openssl" msgstr "" @@ -766,450 +766,450 @@ msgstr "" msgid "Installing vim-plug and overriding ~/.vimrc, do you want to continue" msgstr "" -#: ../docs/iptv.sh:39270 +#: ../docs/iptv.sh:39271 msgid "cmd: f => FLV manager, v => VIP manager" msgstr "" -#: ../docs/iptv.sh:39274 +#: ../docs/iptv.sh:39275 msgid "cmd: h => HLS manager, v => VIP manager" msgstr "" -#: ../docs/iptv.sh:39279 +#: ../docs/iptv.sh:39280 msgid "IPTV manager" msgstr "" -#: ../docs/iptv.sh:39281 +#: ../docs/iptv.sh:39282 msgid "Install" msgstr "" -#: ../docs/iptv.sh:39282 +#: ../docs/iptv.sh:39283 msgid "Uninstall" msgstr "" -#: ../docs/iptv.sh:39283 +#: ../docs/iptv.sh:39284 msgid "Update" msgstr "" -#: ../docs/iptv.sh:39285 +#: ../docs/iptv.sh:39286 msgid "View channel" msgstr "" -#: ../docs/iptv.sh:39286 +#: ../docs/iptv.sh:39287 msgid "Add channel" msgstr "" -#: ../docs/iptv.sh:39287 +#: ../docs/iptv.sh:39288 msgid "Config channel" msgstr "" -#: ../docs/iptv.sh:39288 +#: ../docs/iptv.sh:39289 msgid "Toggle channel" msgstr "" -#: ../docs/iptv.sh:39289 +#: ../docs/iptv.sh:39290 msgid "Restart channel" msgstr "" -#: ../docs/iptv.sh:39290 +#: ../docs/iptv.sh:39291 msgid "View logs" msgstr "" -#: ../docs/iptv.sh:39291 +#: ../docs/iptv.sh:39292 msgid "Delete channel" msgstr "" -#: ../docs/iptv.sh:39292 +#: ../docs/iptv.sh:39293 msgid "Config default" msgstr "" -#: ../docs/iptv.sh:39294 +#: ../docs/iptv.sh:39295 #, sh-format msgid "$tip now: ${green}$title${normal} manager" msgstr "" -#: ../docs/iptv.sh:39340 +#: ../docs/iptv.sh:39341 msgid "Usage: tv -i [input stream] [-s segment length(s)] [-o output directory name] [-c segments count] [-b bitrates] [-p HLS playlist name] [-C] [-l] [-P http proxy]" msgstr "" -#: ../docs/iptv.sh:39341 +#: ../docs/iptv.sh:39342 msgid " -i input stream(support mpegts / hls / flv / youtube ...)" msgstr "" -#: ../docs/iptv.sh:39342 +#: ../docs/iptv.sh:39343 msgid "can be path to local video" msgstr "" -#: ../docs/iptv.sh:39343 +#: ../docs/iptv.sh:39344 msgid "you can input multiple stream links, separate with space" msgstr "" -#: ../docs/iptv.sh:39344 +#: ../docs/iptv.sh:39345 msgid " -s segment length(s)(default: 6)" msgstr "" -#: ../docs/iptv.sh:39345 +#: ../docs/iptv.sh:39346 msgid " -o output directory name(default: random)" msgstr "" -#: ../docs/iptv.sh:39347 +#: ../docs/iptv.sh:39348 msgid " -l not live stream, in this case it can't be monitored nor set segments number(default: no)" msgstr "" -#: ../docs/iptv.sh:39348 +#: ../docs/iptv.sh:39349 msgid " -P http proxy for FFmpeg, apply to http input stream(default: no)" msgstr "" -#: ../docs/iptv.sh:39350 +#: ../docs/iptv.sh:39351 msgid " -p HLS playlist name(default: random)" msgstr "" -#: ../docs/iptv.sh:39351 +#: ../docs/iptv.sh:39352 msgid " -c segments number in HLS playlist(default: 5)" msgstr "" -#: ../docs/iptv.sh:39352 +#: ../docs/iptv.sh:39353 msgid " -S sub directory for segments(default: no)" msgstr "" -#: ../docs/iptv.sh:39353 +#: ../docs/iptv.sh:39354 msgid " -t segments name(prefix)(default: same as playlist name)" msgstr "" -#: ../docs/iptv.sh:39354 +#: ../docs/iptv.sh:39355 msgid " -a audio codec(default: aac) (e.g. copy)" msgstr "" -#: ../docs/iptv.sh:39355 +#: ../docs/iptv.sh:39356 msgid " -v video codec(default: libx264) (e.g. copy)" msgstr "" -#: ../docs/iptv.sh:39356 +#: ../docs/iptv.sh:39357 msgid " -f video or audio delay(e.g. v_3 video delay 3 seconds, a_2 audio delay 2 seconds)" msgstr "" -#: ../docs/iptv.sh:39357 +#: ../docs/iptv.sh:39358 msgid " -d convert dvb teletext, options: text,ass (default: no)" msgstr "" -#: ../docs/iptv.sh:39358 +#: ../docs/iptv.sh:39359 msgid " -q crf value(precedence over bitrates)(0-63 greater number worse video qualit), multiple crf can be separated by comma" msgstr "" -#: ../docs/iptv.sh:39359 +#: ../docs/iptv.sh:39360 msgid "(default: crf not set)" msgstr "" -#: ../docs/iptv.sh:39360 +#: ../docs/iptv.sh:39361 msgid " -b bitrates of the output video(kb/s)(default: 900-1280x720)" msgstr "" -#: ../docs/iptv.sh:39361 +#: ../docs/iptv.sh:39362 msgid "If crf is set, bitrates value apply to -maxrate -bufsize" msgstr "" -#: ../docs/iptv.sh:39362 +#: ../docs/iptv.sh:39363 msgid "If crf is not set you can continue to set const option of FFmpeg" msgstr "" -#: ../docs/iptv.sh:39363 +#: ../docs/iptv.sh:39364 msgid "multiple bitrates can be separated by comma(in this case adaptive stream will be created)" msgstr "" -#: ../docs/iptv.sh:39364 +#: ../docs/iptv.sh:39365 msgid "you can set video dimensions(e.g. -b 800-640x360,1000-960x540,1500-1280x720)" msgstr "" -#: ../docs/iptv.sh:39365 +#: ../docs/iptv.sh:39366 msgid "input omit to skip this option" msgstr "" -#: ../docs/iptv.sh:39366 +#: ../docs/iptv.sh:39367 msgid " -C constant bitrates(only work if crf not set)(default: no)" msgstr "" -#: ../docs/iptv.sh:39367 +#: ../docs/iptv.sh:39368 msgid " -e encrypt segments(default: no)" msgstr "" -#: ../docs/iptv.sh:39368 +#: ../docs/iptv.sh:39369 msgid " -K Key name(default: random)" msgstr "" -#: ../docs/iptv.sh:39369 +#: ../docs/iptv.sh:39370 msgid " -z channel name(default: same as playlist name)" msgstr "" -#: ../docs/iptv.sh:39370 +#: ../docs/iptv.sh:39371 msgid "push FLV stream instead of HLS" msgstr "" -#: ../docs/iptv.sh:39371 +#: ../docs/iptv.sh:39372 msgid " -k push stream kind, e.g. -k flv" msgstr "" -#: ../docs/iptv.sh:39372 +#: ../docs/iptv.sh:39373 msgid " -H push h265 stream(default: no)" msgstr "" -#: ../docs/iptv.sh:39373 +#: ../docs/iptv.sh:39374 msgid " -T push address, e.g. rtmp://127.0.0.1/flv/xxx" msgstr "" -#: ../docs/iptv.sh:39374 +#: ../docs/iptv.sh:39375 msgid " -L pull(play) address(default: omit). e.g. http://domain.com/flv?app=flv&stream=xxx" msgstr "" -#: ../docs/iptv.sh:39375 +#: ../docs/iptv.sh:39376 msgid " -m more input flags for FFmpeg" msgstr "" -#: ../docs/iptv.sh:39376 ../docs/iptv.sh:39382 +#: ../docs/iptv.sh:39377 ../docs/iptv.sh:39383 msgid "default:" msgstr "" -#: ../docs/iptv.sh:39379 +#: ../docs/iptv.sh:39380 msgid "If it's HLS input stream, remove -reconnect_at_eof 1" msgstr "" -#: ../docs/iptv.sh:39380 +#: ../docs/iptv.sh:39381 msgid "If it's rtmp or local video, remove -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2000" msgstr "" -#: ../docs/iptv.sh:39381 +#: ../docs/iptv.sh:39382 msgid " -n output flags for FFmpeg, input omit to skip this option" msgstr "" -#: ../docs/iptv.sh:39384 +#: ../docs/iptv.sh:39385 msgid "Examples:" msgstr "" -#: ../docs/iptv.sh:39385 +#: ../docs/iptv.sh:39386 msgid "Use crf to control video quality:" msgstr "" -#: ../docs/iptv.sh:39386 +#: ../docs/iptv.sh:39387 msgid "tv -i http://xxx.com/xxx.ts -s 6 -o hbo1 -p hbo1 -q 15 -b 1500-1280x720 -z 'hbo stream 1'" msgstr "" -#: ../docs/iptv.sh:39387 +#: ../docs/iptv.sh:39388 msgid "Use bitrates to control video quality[default]:" msgstr "" -#: ../docs/iptv.sh:39388 +#: ../docs/iptv.sh:39389 msgid "tv -i http://xxx.com/xxx.ts -s 6 -o hbo2 -p hbo2 -b 900-1280x720 -z 'hbo stream 2'" msgstr "" -#: ../docs/iptv.sh:39389 +#: ../docs/iptv.sh:39390 msgid "If no need converting:" msgstr "" -#: ../docs/iptv.sh:39390 +#: ../docs/iptv.sh:39391 msgid "Push FLV instead of HLS:" msgstr "" -#: ../docs/iptv.sh:39393 +#: ../docs/iptv.sh:39394 msgid "Shortcuts:" msgstr "" -#: ../docs/iptv.sh:39394 +#: ../docs/iptv.sh:39395 msgid "tv # open HLS manager" msgstr "" -#: ../docs/iptv.sh:39395 +#: ../docs/iptv.sh:39396 msgid "tv l # list all running channels" msgstr "" -#: ../docs/iptv.sh:39396 +#: ../docs/iptv.sh:39397 msgid "tv d # add demo channels" msgstr "" -#: ../docs/iptv.sh:39397 +#: ../docs/iptv.sh:39398 msgid "tv e # mannual editing channels.json" msgstr "" -#: ../docs/iptv.sh:39398 +#: ../docs/iptv.sh:39399 msgid "tv ee # mannual editing sync_file" msgstr "" -#: ../docs/iptv.sh:39399 +#: ../docs/iptv.sh:39400 msgid "tv f # open FLV manager" msgstr "" -#: ../docs/iptv.sh:39400 +#: ../docs/iptv.sh:39401 msgid "tv v # open VIP manager" msgstr "" -#: ../docs/iptv.sh:39401 +#: ../docs/iptv.sh:39402 msgid "tv m # start monitoring" msgstr "" -#: ../docs/iptv.sh:39402 +#: ../docs/iptv.sh:39403 msgid "tv m l [lines count] # view monitoring log" msgstr "" -#: ../docs/iptv.sh:39403 +#: ../docs/iptv.sh:39404 msgid "tv m s # stop monitoring" msgstr "" -#: ../docs/iptv.sh:39404 +#: ../docs/iptv.sh:39405 msgid "tv s # tv guide manager" msgstr "" -#: ../docs/iptv.sh:39405 +#: ../docs/iptv.sh:39406 msgid "tv 4g # 4gtv manager" msgstr "" -#: ../docs/iptv.sh:39406 +#: ../docs/iptv.sh:39407 msgid "tv FFmpeg # create mirror for FFmpeg" msgstr "" -#: ../docs/iptv.sh:39407 +#: ../docs/iptv.sh:39408 msgid "tv debug 1/0 # enable/disable debug" msgstr "" -#: ../docs/iptv.sh:39409 +#: ../docs/iptv.sh:39410 msgid "cx # open xtream codes accoutns/channels manager" msgstr "" -#: ../docs/iptv.sh:39411 +#: ../docs/iptv.sh:39412 msgid "v2 # open v2ray manager" msgstr "" -#: ../docs/iptv.sh:39412 +#: ../docs/iptv.sh:39413 msgid "v2 e # mannual editing config.json" msgstr "" -#: ../docs/iptv.sh:39414 +#: ../docs/iptv.sh:39415 msgid "x # open xray manager" msgstr "" -#: ../docs/iptv.sh:39415 +#: ../docs/iptv.sh:39416 msgid "x e # mannual editing config.json" msgstr "" -#: ../docs/iptv.sh:39417 +#: ../docs/iptv.sh:39418 msgid "nx # open nginx manager" msgstr "" -#: ../docs/iptv.sh:39419 +#: ../docs/iptv.sh:39420 msgid "or # open openresty manager" msgstr "" -#: ../docs/iptv.sh:39421 +#: ../docs/iptv.sh:39422 msgid "cf # open cloudflare partner / workers manager" msgstr "" -#: ../docs/iptv.sh:39422 +#: ../docs/iptv.sh:39423 msgid "cf w # open cloudflare workers manager" msgstr "" -#: ../docs/iptv.sh:39424 +#: ../docs/iptv.sh:39425 msgid "ibm # open IBM Cloud Foundry manager" msgstr "" -#: ../docs/iptv.sh:39425 +#: ../docs/iptv.sh:39426 msgid "ibm v2 # open ibm v2ray app manager" msgstr "" -#: ../docs/iptv.sh:39426 +#: ../docs/iptv.sh:39427 msgid "ibm x # open ibm xray app manager" msgstr "" -#: ../docs/iptv.sh:39428 +#: ../docs/iptv.sh:39429 msgid "arm # open Armbian manager" msgstr "" -#: ../docs/iptv.sh:39430 +#: ../docs/iptv.sh:39431 msgid "pve # open Proxmox VE manager" msgstr "" -#: ../docs/iptv.sh:39432 +#: ../docs/iptv.sh:39433 msgid "tv ed # choose default editor" msgstr "" -#: ../docs/iptv.sh:39434 +#: ../docs/iptv.sh:39435 msgid "tv a # creating custom commands" msgstr "" -#: ../docs/iptv.sh:39436 +#: ../docs/iptv.sh:39437 msgid "tv c change/update language" msgstr "" -#: ../docs/iptv.sh:39446 +#: ../docs/iptv.sh:39447 msgid "Installation was not completed, do you want to reinstall" msgstr "" -#: ../docs/iptv.sh:39864 +#: ../docs/iptv.sh:39865 msgid "Compiling openresty, it takes awhile. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:40022 +#: ../docs/iptv.sh:40023 msgid "Compiling nginx, it takes awhile. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:40088 +#: ../docs/iptv.sh:40089 msgid "postfix exits. Do you want to reconfig smtp" msgstr "" -#: ../docs/iptv.sh:40295 ../docs/iptv.sh:41737 ../docs/iptv.sh:42382 +#: ../docs/iptv.sh:40297 ../docs/iptv.sh:41744 ../docs/iptv.sh:42388 msgid "Disable edns0" msgstr "" -#: ../docs/iptv.sh:40302 ../docs/iptv.sh:41745 ../docs/iptv.sh:42389 +#: ../docs/iptv.sh:40304 ../docs/iptv.sh:41752 ../docs/iptv.sh:42395 msgid "Enable edns0" msgstr "" -#: ../docs/iptv.sh:40455 +#: ../docs/iptv.sh:40457 msgid "Compiling pdf2htmlEX, it takes awhile. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:40702 +#: ../docs/iptv.sh:40704 #, sh-format msgid "$v2ray_name is running, stopping now" msgstr "" -#: ../docs/iptv.sh:40707 +#: ../docs/iptv.sh:40709 #, sh-format msgid "$v2ray_name is stopped, starting now" msgstr "" -#: ../docs/iptv.sh:40756 +#: ../docs/iptv.sh:40758 msgid "It takes awhile. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:40903 +#: ../docs/iptv.sh:40905 msgid "This is for PHICOMM n1. It need to be run after apt upgrade. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:40954 ../docs/iptv.sh:41086 ../docs/iptv.sh:41218 -#: ../docs/iptv.sh:41780 +#: ../docs/iptv.sh:40956 ../docs/iptv.sh:41088 ../docs/iptv.sh:41220 +#: ../docs/iptv.sh:41787 msgid "Do you want to continue" msgstr "" -#: ../docs/iptv.sh:41915 +#: ../docs/iptv.sh:41922 msgid "Installing mono, it takes awhile. Do you want to continue" msgstr "" -#: ../docs/iptv.sh:43683 +#: ../docs/iptv.sh:43700 msgid "Not installed, start installing now" msgstr "" -#: ../docs/iptv.sh:43699 +#: ../docs/iptv.sh:43716 #, sh-format msgid "Use proxy $d_proxy: " msgstr "" -#: ../docs/iptv.sh:43725 +#: ../docs/iptv.sh:43742 #, sh-format msgid "Use xtream codes proxy $d_xc_proxy: " msgstr "" -#: ../docs/iptv.sh:43903 +#: ../docs/iptv.sh:43920 #, sh-format msgid "$error push link not set..." msgstr "" -#: ../docs/iptv.sh:43924 +#: ../docs/iptv.sh:43941 #, sh-format msgid "$info channel added successfully" msgstr "" diff --git a/iptv.sh b/iptv.sh index 4df111a..1b76f1b 100755 --- a/iptv.sh +++ b/iptv.sh @@ -399,9 +399,9 @@ LocaleFix() yum -y install glibc-common glibc-locale-source glibc-all-langpacks glibc-langpack-en glibc-langpacks-zh langpacks-zh_CN >/dev/null 2>&1 || true else [ "$release" == "deb" ] && DebFixSources - AptUpdate if [[ ! -x $(command -v locale-gen) ]] then + AptUpdate if ! apt-get -y install locales >/dev/null 2>&1 then Println "${red}[ERROR]${normal} locales installation failed\n" && exit 1 @@ -24533,7 +24533,7 @@ NginxUpdateCFIBMip() Println "$info 更新 ip ..." printf '%s' "#!/bin/bash -echo '#Cloudflare' > $nginx_prefix/conf/cloudflare_ip.conf; +echo -e 'set_real_ip_from 127.0.0.0/24;\n#Cloudflare' > $nginx_prefix/conf/cloudflare_ip.conf; ibm_ips=( 50.22.0.0/16 50.23.0.0/16 @@ -39183,6 +39183,7 @@ set expandtab autocmd BufRead,BufNewFile *.conf setfiletype conf filetype indent off " > ~/.vimrc + DepInstall git Println "$info vimrc 设置完成, 请在 vim 下执行 PlugInstall\n" else Println "$error 无法连接服务器, 请稍后再试\n" @@ -40211,6 +40212,7 @@ WantedBy=multi-user.target" > /etc/systemd/system/$nginx_name.service inquirer text_input "输入 ipv4 分流目标 地址+端口${acme_tip:-}${ssh_tip:-}: " mmproxy_target_v4 "$i18n_cancel" ExitOnCancel mmproxy_target_v4 + echo inquirer text_input "输入 ipv6 分流目标 地址+端口${acme_tip:-}${ssh_tip:-}: " mmproxy_target_v6 "[::1]:${mmproxy_target_v4#*:}" if [ -e "/etc/systemd/system/mmproxy-$mmproxy_name.service" ] @@ -41460,29 +41462,33 @@ config interface 'lan' exit 1 fi + if ! luci_app_xray_ver=$(curl -s -m 30 "$FFMPEG_MIRROR_LINK/luci-app-xray.json" | $JQ_FILE -r '.tag_name') + then + Println "$error 无法连接服务器, 请稍后再试\n" + exit 1 + else + luci_app_xray_ver=${luci_app_xray_ver#*v} + fi + docker exec -it openwrt /bin/ash -c " if ! opkg list-installed | grep -q v2ray then - sed -i 's_downloads.openwrt.org_${FFMPEG_MIRROR_LINK#*\/\/}/openwrt_' /etc/opkg/distfeeds.conf - if ! grep -q kuoruan < /etc/opkg/customfeeds.conf - then - wget -O kuoruan-public.key $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/public.key - opkg-key add kuoruan-public.key - echo \"src/gz kuoruan_packages $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/releases/\$(. /etc/openwrt_release ; echo \$DISTRIB_ARCH)\" >> /etc/opkg/customfeeds.conf - echo \"src/gz kuoruan_universal $FFMPEG_MIRROR_LINK/openwrt-v2ray/packages/releases/all\" >> /etc/opkg/customfeeds.conf - fi + sed -i 's_http://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_https://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf opkg update - opkg install zoneinfo-asia kmod-tcp-bbr libustream-openssl + opkg remove dnsmasq + opkg install zoneinfo-asia kmod-tcp-bbr libustream-openssl jshn ip-full ipset iptables iptables-mod-tproxy resolveip dnsmasq-full opkg install luci luci-base luci-compat if ! test -e /etc/sysctl.d/12-tcp-bbr.conf || ! grep -q default_qdisc < /etc/sysctl.d/12-tcp-bbr.conf then echo \"net.core.default_qdisc=fq\" >> /etc/sysctl.d/12-tcp-bbr.conf sysctl -p fi - opkg remove dnsmasq opkg install v2ray-core - opkg install luci-app-v2ray - opkg install luci-i18n-v2ray-zh-cn + wget -O luci-app-v2ray_${luci_app_xray_ver}_all.ipk $FFMPEG_MIRROR_LINK/luci-app-v2ray_${luci_app_xray_ver}_all.ipk + opkg install luci-app-v2ray_${luci_app_xray_ver}_all.ipk --force-reinstall || true + wget -O luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk $FFMPEG_MIRROR_LINK/luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk + opkg install luci-i18n-v2ray-zh-cn_${luci_app_xray_ver}_all.ipk --force-reinstall || true fi " @@ -41515,7 +41521,8 @@ config interface 'lan' docker exec -it openwrt /bin/ash -c " if ! opkg list-installed | grep -q luci-i18n-base-$lang then - sed -i 's_downloads.openwrt.org_${FFMPEG_MIRROR_LINK#*\/\/}/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_http://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf + sed -i 's_https://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf opkg update opkg install luci-i18n-base-$lang fi @@ -41845,22 +41852,22 @@ then then if [ -f /etc/apt/sources.list.d/pve-no-subscription.list ] then - sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list.d/pve-no-subscription.list + sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list.d/pve-no-subscription.list elif grep -q "pve-no-subscription" < /etc/apt/sources.list then - sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list + sed -i "s_#deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription_deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription_" /etc/apt/sources.list else - echo "deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list + echo "deb $FFMPEG_MIRROR_LINK/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list fi else if [ -f /etc/apt/sources.list.d/pve-enterprise.list ] then - sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list.d/pve-enterprise.list + sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list.d/pve-enterprise.list elif grep -q "pve-enterprise" < /etc/apt/sources.list then - sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list + sed -i "s_#deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise_deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise_" /etc/apt/sources.list else - echo "deb https://enterprise.proxmox.com/debian/pve $VERSION_CODENAME pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list + echo "deb $FFMPEG_MIRROR_LINK/proxmox-enterprise/debian/pve $VERSION_CODENAME pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list fi fi @@ -41883,7 +41890,7 @@ then echo inquirer text_input "输入多少秒后关闭显示器" console_blank_secs 120 - sed -i 's_GRUB_CMDLINE_LINUX=""_GRUB_CMDLINE_LINUX="consoleblank='"$console_blank_secs"'"_' /etc/default/grub + sed -i '0,/GRUB_CMDLINE_LINUX=""/s//GRUB_CMDLINE_LINUX="consoleblank='"$console_blank_secs"'"/' /etc/default/grub else sed -i '0,/GRUB_CMDLINE_LINUX=.*/s//GRUB_CMDLINE_LINUX=""/' /etc/default/grub fi @@ -41914,12 +41921,10 @@ then echo AskIfContinue n "`gettext \"需要安装 mono, 耗时会很长, 是否继续\"`" - . /etc/os-release - apt-get update apt-get -y install apt-transport-https dirmngr gnupg ca-certificates apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - echo "deb https://download.mono-project.com/repo/debian stable-$VERSION_CODENAME main" | tee /etc/apt/sources.list.d/mono-official-stable.list + echo "deb https://download.mono-project.com/repo/debian stable main" | tee /etc/apt/sources.list.d/mono-official-stable.list apt-get update apt-get -y install mono-complete git fi @@ -41928,20 +41933,21 @@ then then Println "$info 安装 nbfc..." - if [[ ! -x $(command -v git) ]] - then - Println "$info 安装 git..." - apt-get update - apt-get -y install git - fi + DepInstall git + DepInstall curl + DepInstall unzip - git clone https://github.com/hirschmann/nbfc.git /tmp/nbfc - cd /tmp/nbfc + cd /tmp/ + curl -s -L "$FFMPEG_MIRROR_LINK/nbfc.zip" -o nbfc.zip + unzip nbfc.zip >/dev/null 2>&1 + + cd nbfc-master + sed -i 's~NUGET_URL=\"https://dist.nuget.org~NUGET_URL=\"$FFMPEG_MIRROR_LINK/nuget~' build.sh ./build.sh mkdir /opt/nbfc - cp -r /tmp/nbfc/Linux/bin/Release/* /opt/nbfc/ - cp /tmp/nbfc/Linux/{nbfc.service,nbfc-sleep.service} /etc/systemd/system/ + cp -r /tmp/nbfc-master/Linux/bin/Release/* /opt/nbfc/ + cp /tmp/nbfc-master/Linux/{nbfc.service,nbfc-sleep.service} /etc/systemd/system/ systemctl enable nbfc --now || true fi @@ -43397,9 +43403,9 @@ then fi fi - Println "$info 下载 pdf2htmlEX ..." if [ ! -e "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip" ] then + Println "$info 下载 pdf2htmlEX ..." if curl -s -L "https://github.com/pdf2htmlEX/pdf2htmlEX/archive/v0.18.7-poppler-0.81.0.zip" -o "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip_tmp" then mv "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip_tmp" "$FFMPEG_MIRROR_ROOT/pdf2htmlEX-0.18.7-poppler-0.81.0.zip" @@ -43408,6 +43414,17 @@ then fi fi + if [ ! -e "$FFMPEG_MIRROR_ROOT/nbfc.zip" ] + then + Println "$info 下载 nbfc ..." + if curl -s -L "https://github.com/hirschmann/nbfc/archive/master.zip" -o "$FFMPEG_MIRROR_ROOT/nbfc.zip_tmp" + then + mv "$FFMPEG_MIRROR_ROOT/nbfc.zip_tmp" "$FFMPEG_MIRROR_ROOT/nbfc.zip" + else + Println "$error nbfc 下载出错, 无法连接 github ?" + fi + fi + Println "$info 下载 v2ray install-release.sh ..." if curl -s -L "$V2_LINK" -o "$FFMPEG_MIRROR_ROOT/v2ray_install-release.sh_tmp" then