]]
+ then
+ break
+ fi
fi
- if [ "${chnl_schedules_hls_change_once[chnl_schedules_index]}" = true ]
- then
- chnl_schedule_hls_change_list="${green}一次${normal}"
- elif [ "${chnl_schedules_hls_change[chnl_schedules_index]}" = true ]
+ done <<< "${!html}"
+ done
+
+ if [ "$schedule" == "[]" ]
+ then
+ continue
+ fi
+
+ ScheduleParse
+ done
+
+ beau_yesterday_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://epg.beinsports.com/utctime_au.php?cdate=$yesterday&offset=+8&mins=00&id=123")
+ beau_today_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://epg.beinsports.com/utctime_au.php?cdate=$today&offset=+8&mins=00&id=123")
+
+ if [ "$search_options_index" -eq 1 ]
+ then
+ beau_tomorrow_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://epg.beinsports.com/utctime_au.php?cdate=$tomorrow&offset=+8&mins=00&id=123")
+ fi
+
+ for chnl in "${beinsportsau_chnls[@]}"
+ do
+ chnl_id=${chnl%%:*}
+ beau_id=${chnl#*:}
+ chnl_name=${beau_id#*:}
+ beau_id=${beau_id%%:*}
+
+ schedule=[]
+
+ for be_days_index in "${be_days_indices[@]}"
+ do
+ found=0
+ day="${be_days[be_days_index]}"
+ previous_day="${be_days_previous[be_days_index]}"
+ next_day="${be_days_next[be_days_index]}"
+ html="beau_${day}_html"
+
+ new_schedule=""
+
+ while IFS= read -r line
+ do
+ if [[ $line =~ $beau_id ]]
then
- chnl_schedule_hls_change_list="${green}是${normal}"
- else
- chnl_schedule_hls_change_list="${red}否${normal}"
- fi
- if [ "${chnl_schedules_loop[chnl_schedules_index]}" = true ]
+ found=1
+ elif [ "$found" -eq 1 ]
then
- chnl_schedule_loop_list="${green}是${normal}"
- else
- chnl_schedule_loop_list="${red}否${normal}"
+ if [[ $line =~ class=title\>(.+)\ ]]
+ then
+ title="${BASH_REMATCH[1]}"
+ elif [[ $line =~ class=format\>(.+)\ ]]
+ then
+ title="$title - ${BASH_REMATCH[1]}"
+ elif [[ $line =~ class=time\>(.+)\ \;-\ \;(.+)\\ ($min|tonumber)) | .["time"] = (.start_time|strflocaltime("%Y-%m-%d %H:%M %p")) | with_entries(select(.key as $k | $keys | index($k))))' <<< "$supersport_schedule")
+
+ if [ "$schedule" == "[]" ]
+ then
+ continue
+ fi
+
+ ScheduleParse
+ done
+
+ #bt_prop=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" https://widgets.metabroadcast.com/config/1/btsport_v4.js)
+ #bt_prop="${bt_prop#*=}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_channels=$($JQ_FILE -r '.epg.modules.common.channels|join(",")' <<< "$bt_prop")
+ #api_key=$($JQ_FILE -r '.epg.modules.common.apiKey' <<< "$bt_prop")
+ bt_channels="hspr,hspc,hspd,hspf,hspg,hspk"
+ api_key="b5986b31b34243c4be2da2dc8020aaaf"
+
+ btsport_today_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" "https://users-atlas.metabroadcast.com/4/schedules.json?id=$bt_channels&annotations=channel,content_detail,content.broadcast_channel&from=${yesterday}T16:00:00.000Z&to=${today}T16:00:00.000Z&source=api.youview.tv&key=$api_key")
+
+ if [ "$search_options_index" -eq 1 ]
+ then
+ btsport_tomorrow_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" "https://users-atlas.metabroadcast.com/4/schedules.json?id=$bt_channels&annotations=channel,content_detail,content.broadcast_channel&from=${today}T16:00:00.000Z&to=${tomorrow}T16:00:00.000Z&source=api.youview.tv&key=$api_key")
+ fi
+
+ for chnl in "${btsport_chnls[@]}"
+ do
+ chnl_id=${chnl%%:*}
+ chnl_name="${chnl#*:}"
+
+ today_schedule=$($JQ_FILE --arg channel_name "$chnl_name" --arg min "$min_start_time" --arg max "$max_end_time" --argjson keys '["title","time","start_time","end_time"]' '.schedules | map(select(.channel.title == $channel_name).entries[] | select(.item.title|test(" v ";"i")) | .["start_time"] = (.broadcast.transmission_time|sub("(? | \ ($min|tonumber)) | .["time"] = (.start_time|strflocaltime("%Y-%m-%d %H:%M %p")) | with_entries(select(.key as $k | $keys | index($k))))' <<< "$supersport_schedule")
+
+ if [ "$schedule" == "[]" ]
+ then
+ continue
+ fi
+
+ ScheduleParse
+ done
+
+ #bt_prop=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" https://widgets.metabroadcast.com/config/1/btsport_v4.js)
+ #bt_prop="${bt_prop#*=}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_channels=$($JQ_FILE -r '.epg.modules.common.channels|join(",")' <<< "$bt_prop")
+ #api_key=$($JQ_FILE -r '.epg.modules.common.apiKey' <<< "$bt_prop")
+ bt_channels="hspr,hspc,hspd,hspf,hspg,hspk"
+ api_key="b5986b31b34243c4be2da2dc8020aaaf"
+
+ btsport_today_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" "https://users-atlas.metabroadcast.com/4/schedules.json?id=$bt_channels&annotations=channel,content_detail,content.broadcast_channel&from=${yesterday}T16:00:00.000Z&to=${today}T16:00:00.000Z&source=api.youview.tv&key=$api_key")
+
+ if [ "$search_options_index" -eq 1 ]
+ then
+ btsport_tomorrow_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" "https://users-atlas.metabroadcast.com/4/schedules.json?id=$bt_channels&annotations=channel,content_detail,content.broadcast_channel&from=${today}T16:00:00.000Z&to=${tomorrow}T16:00:00.000Z&source=api.youview.tv&key=$api_key")
+ fi
+
+ for chnl in "${btsport_chnls[@]}"
+ do
+ chnl_id=${chnl%%:*}
+ chnl_name="${chnl#*:}"
+
+ today_schedule=$($JQ_FILE --arg channel_name "$chnl_name" --arg min "$min_start_time" --arg max "$max_end_time" --argjson keys '["title","time","start_time","end_time"]' '.schedules | map(select(.channel.title == $channel_name).entries[] | select(.item.title|test(" v ";"i")) | .["start_time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | select((.start_time|tonumber) > ($min|tonumber) and (.start_time|tonumber) < ($max|tonumber)) | .["end_time"] = (.broadcast.transmission_end_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) |.["time"] = (.start_time|strflocaltime("%Y-%m-%d %H:%M %p")) | .["title"] = .item.title | with_entries(select(.key as $k | $keys | index($k))))' <<< "$btsport_today_schedule")
+
+ if [ "$search_options_index" -eq 0 ]
+ then
+ schedule="$today_schedule"
+ else
+ tomorrow_schedule=$($JQ_FILE --arg channel_name "$chnl_name" --arg max "$max_end_time" --argjson keys '["title","time","start_time","end_time"]' '.schedules | map(select(.channel.title == $channel_name).entries[] | select(.item.title|test(" v ";"i")) | .["start_time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | select((.start_time|tonumber) < ($max|tonumber)) | .["end_time"] = (.broadcast.transmission_end_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | .["time"] = (.start_time|strflocaltime("%Y-%m-%d %H:%M %p")) | .["title"] = .item.title | with_entries(select(.key as $k | $keys | index($k))))' <<< "$btsport_tomorrow_schedule")
+
+ schedule=$($JQ_FILE --argjson merge "$tomorrow_schedule" '.+=$merge' <<< "$today_schedule")
+ fi
+
+ if [ "$schedule" == "[]" ]
+ then
+ continue
+ fi
+
+ ScheduleParse
+ done
+
+ printf -v today '%(%Y%m%d)T' -1
+ yesterday=$(date --date="yesterday" +"%Y%m%d")
+ tomorrow=$(date --date="tomorrow" +"%Y%m%d")
+
+ chnls_sid=""
+
+ for chnl in "${sky_chnls[@]}"
+ do
+ sk_sid="${chnl#*:}"
+ sk_sid="${sk_sid%%:*}"
+ [ -n "$chnls_sid" ] && chnls_sid="$chnls_sid,"
+ chnls_sid="$chnls_sid$sk_sid"
+ done
+
+ sk_yesterday_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://awk.epgsky.com/hawk/linear/schedule/$yesterday/$chnls_sid")
+ sk_today_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://awk.epgsky.com/hawk/linear/schedule/$today/$chnls_sid")
+
+ if [ "$search_options_index" -eq 1 ]
+ then
+ sk_tomorrow_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" "https://awk.epgsky.com/hawk/linear/schedule/$tomorrow/$chnls_sid")
+ fi
+
+ for chnl in "${sky_chnls[@]}"
+ do
+ chnl_id=${chnl%%:*}
+ sk_sid="${chnl#*:}"
+ chnl_name="${sk_sid#*:}"
+ sk_sid=${sk_sid%%:*}
+
+ yesterday_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg min "$min_start_time" --argjson keys '["title","time","start_time","end_time"]' '.schedule | map(select(.sid == $sid).events[] | select((.st|tonumber) > ($min|tonumber) and (.t|test(" v ";"i"))) | .["time"] = (.st|strflocaltime("%Y-%m-%d %H:%M %p")) | .["start_time"] = .st | .["end_time"] = (.st + .d) | .["title"] = .t | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sk_yesterday_schedule")
+ today_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg min "$min_start_time" --arg max "$max_end_time" --argjson keys '["title","time","start_time","end_time"]' '.schedule | map(select(.sid == $sid).events[] | select((.st|tonumber) > ($min|tonumber) and (.st|tonumber) < ($max|tonumber) and (.t|test(" v ";"i"))) | .["time"] = (.st|strflocaltime("%Y-%m-%d %H:%M %p")) | .["start_time"] = .st | .["end_time"] = (.st + .d) | .["title"] = .t | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sk_today_schedule")
+
+ if [ "$search_options_index" -eq 0 ]
+ then
+ schedule=$($JQ_FILE --argjson today "$today_schedule" '.+=$today' <<< "$yesterday_schedule")
+ else
+ tomorrow_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg max "$max_end_time" --argjson keys '["title","time","start_time","end_time"]' '.schedule | map(select(.sid == $sid).events[] | select((.st|tonumber) < ($max|tonumber) and (.t|test(" v ";"i"))) | .["time"] = (.st|strflocaltime("%Y-%m-%d %H:%M %p")) | .["start_time"] = .st | .["end_time"] = (.st + .d) | .["title"] = .t | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sk_tomorrow_schedule")
+
+ schedule=$($JQ_FILE --argjson today "$today_schedule" --argjson tomorrow "$tomorrow_schedule" '.+=$today|.+=$tomorrow' <<< "$yesterday_schedule")
+ fi
+
+ if [ "$schedule" == "[]" ]
+ then
+ continue
+ fi
+
+ ScheduleParse
+ done
+}
+
+AddChannelsSchedule()
+{
+ echo
+ add_options=( '手动添加' '足球比赛' )
+ inquirer list_input_index "选择操作" add_options add_options_index
+
+ if [ "$add_options_index" -eq 1 ]
+ then
+ echo
+ search_options=( '今天' '今明两天' )
+ inquirer list_input_index "搜索范围" search_options search_options_index
+
+ Progress "搜索足球节目表" &
+ progress_pid=$!
+
+ trap '
+ kill $progress_pid 2> /dev/null
+ ' EXIT
+
+ SearchSoccerSchedules
+
+ schedules_count=${#schedules_chnl_id[@]}
+
+ for((i=0;i.*) (?.*):[\\d]{2}\\.[\\d]{1}"; "\(.time)"))
+ | .["sys_time"] = (.datetimeInUtc|sub("(?.*) (?.*)\\.[\\d]{1}"; "\(.date)T\(.time)Z")|fromdate)
+ | .title =
+ if .title[0:.title|length/2-1] == .title[.title|length/2+1:.title|length]
+ then
+ .title[0:.title|length/2-1]
+ elif .title[4:.title|length/2+1] == .title[.title|length/2+3:.title|length]
+ then
+ .title[0:.title|length/2+1]
+ else
+ .title
+ end
+ | with_entries(select(.key as $k | $keys | index($k))))')
if [ -n "$schedule" ]
then
json=true
jq_path='["'"$chnl_id"'"]'
- JQ update "$SCHEDULE_JSON" "[$schedule]"
+ JQ update "$SCHEDULE_JSON" "$schedule"
Println "$info $chnl_name [$chnl_id] astro 节目表更新成功"
else
Println "$error $chnl_name [$chnl_id] astro 节目表更新失败"
@@ -17949,20 +18571,17 @@ ScheduleNbcsn()
fi
done
- schedule=""
-
sslgrid=$(curl -s -L -H "User-Agent: $USER_AGENT_BROWSER" \
-d "timespan=336×tamp=$timestamp&prgsvcid=${prgsvcids[nbcsn_index]}&headendId=${nbcsn_pro[0]}&countryCode=USA&postalCode=${nbcsn_pro[2]}&device=${nbcsn_pro[3]}&userId=-&aid=nbcsports&DSTUTCOffset=+420&STDUTCOffset=+480&DSTStart=$(Urlencode ${nbcsn_pro[5]})&DSTEnd=$(Urlencode ${nbcsn_pro[4]})&languagecode=en-us" \
https://tvlistings.gracenote.com/api/sslgrid)
- yesterday_schedule=$($JQ_FILE --arg index "$yesterday" --arg min "$min_sys_time" --argjson keys '["title","time","sys_time"]' '.[$index][] | select(.startTime|tonumber > ($min|tonumber)) | .["title"] = .program.title | .["time"] = .startTimeFormatted | .["sys_time"] = .startTime | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$sslgrid")
- today_schedule=$($JQ_FILE --arg index "$today" --arg max "$max_sys_time" --argjson keys '["title","time","sys_time"]' '.[$index][] | select(.startTime|tonumber < ($max|tonumber)) | .["title"] = .program.title | .["time"] = .startTimeFormatted | .["sys_time"] = .startTime | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$sslgrid")
+ yesterday_schedule=$($JQ_FILE --arg index "$yesterday" --arg min "$min_sys_time" --argjson keys '["title","time","sys_time"]' '.[$index] | map(select(.startTime|tonumber > ($min|tonumber)) | .["title"] = (if .program.episodeTitle then .program.title + ": " + .program.episodeTitle else .program.title end) | .["time"] = .startTimeFormatted | .["sys_time"] = .startTime | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sslgrid")
+ today_schedule=$($JQ_FILE --arg index "$today" --arg max "$max_sys_time" --argjson keys '["title","time","sys_time"]' '.[$index] | map(select(.startTime|tonumber < ($max|tonumber)) | .["title"] = (if .program.episodeTitle then .program.title + ": " + .program.episodeTitle else .program.title end) | .["time"] = .startTimeFormatted | .["sys_time"] = .startTime | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sslgrid")
- schedule="${yesterday_schedule:-}${today_schedule:-}"
+ schedule=$($JQ_FILE --argjson merge "$today_schedule" '.+=$merge' <<< "$yesterday_schedule")
if [ -n "$schedule" ]
then
- schedule=$($JQ_FILE -s 'unique_by(.sys_time)' <<< "$schedule")
json=true
jq_path='["'"$chnl_id"'"]'
JQ update "$SCHEDULE_JSON" "$schedule"
@@ -17984,21 +18603,21 @@ ScheduleBeinsports()
sys_time=$(date -d $today +%s)
yesterday=$(date --date="yesterday" +"%Y-%m-%d")
- bs_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" https://epg.beinsports.com/utctime.php?offset=+8&mins=00&serviceidentity=beinsports.com&category=sports&id=123)
+ be_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" https://epg.beinsports.com/utctime.php?offset=+8&mins=00&serviceidentity=beinsports.com&category=sports&id=123)
for chnl in "${beinsports_chnls[@]}"
do
chnl_id=${chnl%%:*}
- bs_id=${chnl#*:}
- chnl_name=${bs_id#*:}
- bs_id=${bs_id%%:*}
+ be_id=${chnl#*:}
+ chnl_name=${be_id#*:}
+ be_id=${be_id%%:*}
schedule=()
found=0
while IFS= read -r line
do
- if [[ $line =~ id=channels_$bs_id\> ]]
+ if [[ $line =~ id=channels_$be_id\> ]]
then
found=1
elif [ "$found" -eq 1 ]
@@ -18033,7 +18652,7 @@ ScheduleBeinsports()
break
fi
fi
- done <<< "$bs_html"
+ done <<< "$be_html"
if [ -n "${schedule:-}" ]
then
@@ -18059,21 +18678,21 @@ ScheduleBeinsportsau()
sys_time=$(date -d $today +%s)
yesterday=$(date --date="yesterday" +"%Y-%m-%d")
- bsau_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" https://epg.beinsports.com/utctime_au.php?offset=+8&mins=00&id=123)
+ beau_html=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" https://epg.beinsports.com/utctime_au.php?offset=+8&mins=00&id=123)
for chnl in "${beinsportsau_chnls[@]}"
do
chnl_id=${chnl%%:*}
- bsau_id=${chnl#*:}
- chnl_name=${bsau_id#*:}
- bsau_id=${bsau_id%%:*}
+ beau_id=${chnl#*:}
+ chnl_name=${beau_id#*:}
+ beau_id=${beau_id%%:*}
schedule=()
found=0
while IFS= read -r line
do
- if [[ $line =~ $bsau_id ]]
+ if [[ $line =~ $beau_id ]]
then
found=1
elif [ "$found" -eq 1 ]
@@ -18111,7 +18730,7 @@ ScheduleBeinsportsau()
break
fi
fi
- done <<< "$bsau_html"
+ done <<< "$beau_html"
if [ -n "${schedule:-}" ]
then
@@ -18140,11 +18759,10 @@ ScheduleSupersport()
chnl_id=${chnl%%:*}
chnl_name="${chnl#*:}"
- schedule=$($JQ_FILE --arg chnl_name "$chnl_name" --argjson keys '["title","time","sys_time"]' '.[] | select(.channel == $chnl_name) | .["time"] = (.starts_at|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.starts_at|fromdate) | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$supersport_schedule")
+ schedule=$($JQ_FILE --arg chnl_name "$chnl_name" --argjson keys '["title","time","sys_time"]' 'map(select(.channel == $chnl_name) | .["time"] = (.starts_at|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.starts_at|fromdate) | with_entries(select(.key as $k | $keys | index($k))))' <<< "$supersport_schedule")
if [ -n "$schedule" ]
then
- schedule=$($JQ_FILE -s 'unique_by(.sys_time)' <<< "$schedule")
json=true
jq_path='["'"$chnl_id"'"]'
JQ update "$SCHEDULE_JSON" "$schedule"
@@ -18165,12 +18783,14 @@ ScheduleBtsport()
printf -v today '%(%Y-%m-%d)T' -1
yesterday=$(date --date="yesterday" +"%Y-%m-%d")
- bt_prop=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" https://widgets.metabroadcast.com/config/1/btsport_v4.js)
- bt_prop="${bt_prop#*=}"
- bt_prop="${bt_prop%;*}"
- bt_prop="${bt_prop%;*}"
- bt_channels=$($JQ_FILE -r '.epg.modules.common.channels|join(",")' <<< "$bt_prop")
- api_key=$($JQ_FILE -r '.epg.modules.common.apiKey' <<< "$bt_prop")
+ #bt_prop=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" https://widgets.metabroadcast.com/config/1/btsport_v4.js)
+ #bt_prop="${bt_prop#*=}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_prop="${bt_prop%;*}"
+ #bt_channels=$($JQ_FILE -r '.epg.modules.common.channels|join(",")' <<< "$bt_prop")
+ #api_key=$($JQ_FILE -r '.epg.modules.common.apiKey' <<< "$bt_prop")
+ bt_channels="hspr,hspc,hspd,hspf,hspg,hspk"
+ api_key="b5986b31b34243c4be2da2dc8020aaaf"
btsport_schedule=$(curl -s -Lm 20 -H "User-Agent: $USER_AGENT_BROWSER" -H "referer: https://www.bt.com/" "https://users-atlas.metabroadcast.com/4/schedules.json?id=$bt_channels&annotations=channel,content_detail,content.broadcast_channel&from=${yesterday}T16:00:00.000Z&to=${today}T16:00:00.000Z&source=api.youview.tv&key=$api_key")
@@ -18179,17 +18799,17 @@ ScheduleBtsport()
chnl_id=${chnl%%:*}
chnl_name="${chnl#*:}"
- schedule=$($JQ_FILE --arg channel_name "$chnl_name" --argjson keys '["title","time","sys_time"]' '.schedules[] | select(.channel.title == $channel_name).entries[] | .["time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | .["title"] = .item.title | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$btsport_schedule")
+ schedule=$($JQ_FILE --arg channel_name "$chnl_name" --argjson keys '["title","time","sys_time"]' '.schedules | map(select(.channel.title == $channel_name).entries[] | .["time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.broadcast.transmission_time|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | .["title"] = .item.title | with_entries(select(.key as $k | $keys | index($k))))' <<< "$btsport_schedule")
if [ -n "$schedule" ]
then
- schedule=$($JQ_FILE -s 'unique_by(.sys_time)' <<< "$schedule")
json=true
jq_path='["'"$chnl_id"'"]'
JQ update "$SCHEDULE_JSON" "$schedule"
Println "$info $chnl_name [$chnl_id] BT Sport 节目表更新成功"
else
Println "$error $chnl_name [$chnl_id] BT Sport 节目表更新失败"
+ return 1
fi
done
}
@@ -18208,11 +18828,10 @@ ScheduleBtsportOn()
chnl_id=${chnl%%:*}
chnl_name="${chnl#*:}"
- schedule=$($JQ_FILE --arg channel_name "$chnl_name" --argjson keys '["title","time","sys_time"]' '.liveEventsList[] | select(.channels[].name | contains($channel_name)) | .["time"] = (.startDate|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.startDate|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | .["title"] = .competition + " - " + .title | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$btsport_schedule")
+ schedule=$($JQ_FILE --arg channel_name "$chnl_name" --argjson keys '["title","time","sys_time"]' '.liveEventsList | map(select(.channels[].name | test($channel_name;"i")) | .["time"] = (.startDate|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate|strflocaltime("%H:%M")) | .["sys_time"] = (.startDate|sub("(?.*)\\.[\\d]{3}(?.*)"; "\(.time)Z")|fromdate) | .["title"] = .competition + " - " + .title | with_entries(select(.key as $k | $keys | index($k))))' <<< "$btsport_schedule")
if [ -n "$schedule" ]
then
- schedule=$($JQ_FILE -s 'unique_by(.sys_time)' <<< "$schedule")
json=true
jq_path='["'"$chnl_id"'"]'
JQ update "$SCHEDULE_JSON" "$schedule"
@@ -18345,16 +18964,13 @@ ScheduleSky()
chnl_name="${sk_sid#*:}"
sk_sid=${sk_sid%%:*}
- schedule=""
+ yesterday_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg min "$min_sys_time" --argjson keys '["title","time","sys_time"]' '.schedule | map(select(.sid == $sid).events[] | select((.st|tonumber) > ($min|tonumber)) | .["time"] = (.st|strflocaltime("%H:%M")) | .["sys_time"] = .st | .["title"] = .t | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sk_yesterday_schedule")
+ today_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg max "$max_sys_time" --argjson keys '["title","time","sys_time"]' '.schedule | map(select(.sid == $sid).events[] | select((.st|tonumber) < ($max|tonumber)) | .["time"] = (.st|strflocaltime("%H:%M")) | .["sys_time"] = .st | .["title"] = .t | with_entries(select(.key as $k | $keys | index($k))))' <<< "$sk_today_schedule")
- yesterday_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg min "$min_sys_time" --argjson keys '["title","time","sys_time"]' '.schedule[] | select(.sid == $sid).events[] | select((.st|tonumber) > ($min|tonumber)) | .["time"] = (.st|strflocaltime("%H:%M")) | .["sys_time"] = .st | .["title"] = .t | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$sk_yesterday_schedule")
- today_schedule=$($JQ_FILE --arg sid "$sk_sid" --arg max "$max_sys_time" --argjson keys '["title","time","sys_time"]' '.schedule[] | select(.sid == $sid).events[] | select((.st|tonumber) < ($max|tonumber)) | .["time"] = (.st|strflocaltime("%H:%M")) | .["sys_time"] = .st | .["title"] = .t | with_entries( select( .key as $k | $keys | index($k) ) )' <<< "$sk_today_schedule")
-
- schedule="${yesterday_schedule:-}${today_schedule:-}"
+ schedule=$($JQ_FILE --argjson merge "$today_schedule" '.+=$merge|unique_by(.sys_time)' <<< "$yesterday_schedule")
if [ -n "$schedule" ]
then
- schedule=$($JQ_FILE -s 'unique_by(.sys_time)' <<< "$schedule")
json=true
jq_path='["'"$chnl_id"'"]'
JQ update "$SCHEDULE_JSON" "$schedule"
@@ -18786,28 +19402,47 @@ ScheduleExec()
if [ -s "$CRON_FILE" ] && [[ $($JQ_FILE '.schedule' "$CRON_FILE") != null ]]
then
printf '{"%s":[]}' "hbo" > "$SCHEDULE_JSON"
- while IFS="=" read -r provider chnls option
+ while IFS="=" read -r provider_id chnls option
do
if [ "$chnls" != null ]
then
- var=("$provider"_chnls[@])
+ var=("$provider_id"_chnls[@])
if [[ -n ${!var:-} ]]
then
- unset "$provider"_chnls
- IFS="|" read -r -a "$provider"_chnls <<< "${chnls}|"
+ unset "$provider_id"_chnls
+ IFS="|" read -r -a "$provider_id"_chnls <<< "${chnls}|"
fi
- if [ "$provider" == "other" ]
+ if [ "$provider_id" == "other" ]
then
for chnl in "${other_chnls[@]}"
do
chnl_id=${chnl%%:*}
chnl_name=${chnl#*:}
chnl_id_upper=$(tr '[:lower:]' '[:upper:]' <<< "${chnl_id:0:1}")"${chnl_id:1}"
- Schedule"$chnl_id_upper"
+
+ if ! Schedule"$chnl_id_upper"
+ then
+ Println "$error $chnl_name 再次尝试..."
+ Schedule"$chnl_id_upper" || Println "$error $chnl_id_upper 失败"
+ fi
done
else
- provider=$(tr '[:lower:]' '[:upper:]' <<< "${provider:0:1}")"${provider:1}"
- Schedule"$provider" "$option"
+ provider_id_upper=$(tr '[:lower:]' '[:upper:]' <<< "${provider_id:0:1}")"${provider_id:1}"
+
+ if ! Schedule"$provider_id_upper" "$option"
+ then
+ for provider in "${providers[@]}"
+ do
+ if [ "${provider%%:*}" == "$provider_id" ]
+ then
+ provider_name="${#*:}"
+ break
+ fi
+ done
+
+ Println "$error $provider_name 再次尝试..."
+ Schedule"$provider_id_upper" "$option" || Println "$error $provider_name 失败"
+ fi
fi
fi
done < <($JQ_FILE -r '.schedule[]|[.provider,(.chnls|sort|join("|")| if .=="" then "null" else . end),.option]|join("=")' "$CRON_FILE")
@@ -19296,7 +19931,8 @@ Schedule()
"bloomberg:Bloomberg TV"
"fgss:時尚頻道"
"warner:Warner TV"
- "ettodayzh:ETtoday綜合台" )
+ "ettodayzh:ETtoday綜合台"
+ )
niotv_chnls=(
"hbohd:629:HBO HD 亚洲"
@@ -19451,7 +20087,8 @@ Schedule()
"tvbshl:32:TVBS 欢乐"
"tvbsjc:774:TVBS 精采"
"cinemaworld:559:Cinema World"
- "warner:688:Warner TV" )
+ "warner:688:Warner TV"
+ )
nowtv_chnls=(
"hbohd:115:HBO HD 亚洲"
@@ -19525,7 +20162,8 @@ Schedule()
"nowsports4:634:Now Sports 4"
"nowsports5:635:Now Sports 5"
"nowsports6:636:Now Sports 6"
- "nowsports7:637:Now Sports 7" )
+ "nowsports7:637:Now Sports 7"
+ )
icable_chnls=(
"hkopen:001:香港开电视"
@@ -19657,7 +20295,8 @@ Schedule()
"us_hbofamily:HBO FAMILY:WEST:HBO family West"
"us_hbocomedy:HBO COMEDY:WEST:HBO COMEDY West"
"us_hbozone:HBO ZONE:WEST:HBO Zone West"
- "us_hbolatino:HBO LATINO:WEST:HBO Lation West" )
+ "us_hbolatino:HBO LATINO:WEST:HBO Lation West"
+ )
ontvtonight_chnls=(
"us_abc@abc@69048344@-04:00:ABC"
@@ -19677,7 +20316,8 @@ Schedule()
"uk_mtvbase@mtv-base@69036338@+01:00:MTV Base 英国"
"uk_mtvclassic@mtv-classic@69043201@+01:00:MTV Classic 英国"
"uk_mtvhits@mtv-hits-eu@69036341@+01:00:MTV Hits 英国"
- "us_comedycentral@comedy-central-east@69036536@-04:00:Comedy Central" )
+ "us_comedycentral@comedy-central-east@69036536@-04:00:Comedy Central"
+ )
tvbhk_chnls=(
"tvbhk_pearl:P:TVB 明珠台"
@@ -19692,7 +20332,8 @@ Schedule()
"tvbhk_tvbchinesedrama:U:TVB 华语剧台"
"tvbhk_asianvariety:V:TVB 综艺旅游台"
"tvbhk_tvbfood:L:TVB 为食台"
- "tvbhk_tvbclassicmovies:W:粤语片台" )
+ "tvbhk_tvbclassicmovies:W:粤语片台"
+ )
singteltv_chnls=(
"my_ch5:2:Channel 5"
@@ -19724,7 +20365,8 @@ Schedule()
"my_scmhd:571:卫视电影台"
"my_scmlegend:573:卫视卡式台"
"my_ccm:580:天映经典频道"
- "my_celestialmovies:585:天映频道" )
+ "my_celestialmovies:585:天映频道"
+ )
cntv_chnls=(
"cctv1"
@@ -19745,7 +20387,8 @@ Schedule()
"cctv5plus:CCTV 5+"
"cctv17"
"cctveurope:CCTV 中文国际频道"
- "cctvamerica:CCTV America" )
+ "cctvamerica:CCTV America"
+ )
tvbs_chnls=(
"tvbsxw:1:TVBS 新闻"
@@ -19755,7 +20398,7 @@ Schedule()
"tvbsyz:5:TVBS 亚洲"
)
- astro_chnls=(
+ astro_chnls=(
"iqiyi:355:astro 爱奇艺"
"my_tvbclassic:425:TVB 经典台"
"astrobeinsports:236:beIN Sports HD"
@@ -19764,6 +20407,7 @@ Schedule()
"astrosupersport2:138:Astro SuperSport 2 HD"
"astrosupersport3:164:Astro SuperSport 3 HD"
"astrosupersport4:241:Astro SuperSport 4 HD"
+ "astrosupersport5:455:Astro SuperSport 5 HD"
)
nbcsn_chnls=(
@@ -19853,7 +20497,7 @@ Schedule()
premiersports_chnls=(
"premiersports1:premiersports1:premier sports 1"
"premiersports2:premiersports2:premier sports 2"
- "laLigatv:LaLiga:LaLiga TV"
+ "laligatv:LaLiga:LaLiga TV"
"freesports:freesports:freesports"
"boxnation:Boxnation:Boxnation"
)
@@ -19865,6 +20509,7 @@ Schedule()
"skysportscricket:1302:SkySp Cricket "
"premiersports1:5153:Premier 1 HD"
"premiersports2:1634:Premier 2 HD"
+ "laligatv:1015:LaLigaTV HD"
)
_4gtv_chnls=(
@@ -20039,6 +20684,30 @@ Schedule()
elif [ "${2:-}" == "hbo" ]
then
provider_id="hbozw"
+ elif [ "${2:-}" == "si" ]
+ then
+ provider_id="singteltv"
+ elif [ "${2:-}" == "be" ]
+ then
+ provider_id="beinsports"
+ elif [ "${2:-}" == "beau" ]
+ then
+ provider_id="beinsportsau"
+ elif [ "${2:-}" == "su" ]
+ then
+ provider_id="supersport"
+ elif [ "${2:-}" == "bt" ]
+ then
+ provider_id="btsport"
+ elif [ "${2:-}" == "bton" ]
+ then
+ provider_id="btsporton"
+ elif [ "${2:-}" == "pr" ]
+ then
+ provider_id="premiersports"
+ elif [ "${2:-}" == "sk" ]
+ then
+ provider_id="sky"
else
provider_id=${2:-}
fi
@@ -20067,70 +20736,70 @@ Schedule()
fi
case $provider_id in
- "jiushi")
+ jiushi)
ScheduleJiushi
;;
- "niotv")
+ niotv)
ScheduleNiotv
;;
- "nowtv")
+ nowtv)
ScheduleNowtv
;;
- "icable")
+ icable)
ScheduleIcable
;;
- "hbo"|"hbozw")
+ hbo|hbozw)
ScheduleHbozw
;;
- "hbous")
+ hbous)
ScheduleHbous "${4:-}"
;;
- "ontvtonight")
+ ontvtonight)
ScheduleOntvtonight
;;
- "tvbhk")
+ tvbhk)
ScheduleTvbhk
;;
- "tvbhd")
+ tvbhd)
ScheduleTvbhd
;;
- "singteltv")
+ si|singteltv)
ScheduleSingteltv
;;
- "cntv")
+ cntv)
ScheduleCntv
;;
- "tvbs")
+ tvbs)
ScheduleTvbs
;;
- "astro")
+ astro)
ScheduleAstro
;;
- "nbcsn")
+ nbcsn)
ScheduleNbcsn
;;
- "be"|"beinsports")
+ be|beinsports)
ScheduleBeinsports
;;
- "beau"|"beinsportsau")
+ beau|beinsportsau)
ScheduleBeinsportsau
;;
- "su"|"supersport")
+ su|supersport)
ScheduleSupersport
;;
- "bt"|"btsport")
+ bt|btsport)
ScheduleBtsport
;;
- "pr"|"premiersports")
+ pr|premiersports)
SchedulePremiersports
;;
- "sk"|"sky")
+ sk|sky)
ScheduleSky
;;
- "_4gtv")
+ _4gtv)
Schedule_4gtv
;;
- "other")
+ other)
ScheduleOther
;;
"")
@@ -20337,8 +21006,8 @@ ImgcatInstall()
trap '
kill $progress_pid 2> /dev/null
' EXIT
- ReleaseCheck
- if [ "$release" == "rpm" ]
+ DistCheck
+ if [ "$dist" == "rpm" ]
then
yum -y install gcc gcc-c++ make ncurses-devel autoconf libjpeg-turbo-devel libpng-devel >/dev/null 2>&1
echo -n "...50%..."
@@ -25447,7 +26116,7 @@ XtreamCodesListChnls()
$FFMPEG -hide_banner -loglevel debug -user_agent "$user_agent" \
-headers "$headers_command" -cookies "$cookies_command" -i "$stream_link" -ss "$ss" -frames:v 1 "${TMP_FILE}.jpeg" || EXIT_STATUS=$?
- ReleaseCheck
+ DistCheck
if [ ! -e "/usr/local/bin/imgcat" ]
then
ImgcatInstall
@@ -25770,7 +26439,7 @@ OpenrestyInstall()
trap '
kill $progress_pid 2> /dev/null
' EXIT
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
yum -y install gcc gcc-c++ make >/dev/null 2>&1
timedatectl set-timezone Asia/Shanghai >/dev/null 2>&1
@@ -25799,7 +26468,7 @@ OpenrestyInstall()
# yum install -y openresty >/dev/null 2>&1 || true
# yum install -y openresty-resty >/dev/null 2>&1
#fi
- #elif [ "$release" == "ubu" ]
+ #elif [ "$dist" == "ubu" ]
#then
#apt-get -y install ca-certificates >/dev/null 2>&1
#if ! wget -qO - https://openresty.org/package/pubkey.gpg | apt-key add - > /dev/null 2>&1
@@ -25915,7 +26584,7 @@ OpenrestyInstall()
kill $progress_pid
trap - EXIT
- echo -n "...100%" && echo
+ echo "...100%"
if ! grep -q "$nginx_name:" < "/etc/passwd"
then
@@ -25951,7 +26620,7 @@ NginxInstall()
kill $progress_pid 2> /dev/null
' EXIT
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
yum -y install gcc gcc-c++ make >/dev/null 2>&1
# yum groupinstall 'Development Tools'
@@ -26040,7 +26709,7 @@ NginxInstall()
kill $progress_pid
trap - EXIT
ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/
- echo -n "...100%" && echo
+ echo "...100%"
if ! grep -q "$nginx_name:" < "/etc/passwd"
then
@@ -29626,11 +30295,11 @@ NginxAddDomain()
GitInstall()
{
- ReleaseCheck
- if [ "$release" == "rpm" ]
+ DistCheck
+ if [ "$dist" == "rpm" ]
then
yum -y install git > /dev/null
- elif [ "$release" == "ubu" ]
+ elif [ "$dist" == "ubu" ]
then
add-apt-repository ppa:git-core/ppa -y > /dev/null
AptUpdate
@@ -29643,7 +30312,7 @@ GitInstall()
ResourceLimit()
{
- ReleaseCheck
+ DistCheck
if [ ! -e /proc/sys/fs/file-max ]
then
@@ -29700,7 +30369,7 @@ ResourceLimit()
ulimit -m unlimited
ulimit -u 64000
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
if [ ! -e ~/.bash_profile ] || ! grep -q ulimit < ~/.bash_profile
then
@@ -29740,7 +30409,7 @@ NodejsInstall()
{
DepsCheck
- if [ "$release" == "rpm" ] && { [[ -x $(command -v node) ]] || [[ -x $(command -v npm) ]]; }
+ if [ "$dist" == "rpm" ] && { [[ -x $(command -v node) ]] || [[ -x $(command -v npm) ]]; }
then
yum remove -y nodejs npm
fi
@@ -29752,7 +30421,7 @@ NodejsInstall()
kill $progress_pid 2> /dev/null
' EXIT
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
yum -y install gcc-c++ make >/dev/null 2>&1
# yum groupinstall 'Development Tools'
@@ -30005,7 +30674,7 @@ MongodbInstall()
ResourceLimit
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
ArchCheck
if [ "$arch" == "arm64" ]
@@ -30038,7 +30707,7 @@ gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - > /dev/null
fi
- if [ "$release" == "ubu" ]
+ if [ "$dist" == "ubu" ]
then
if grep -q "xenial" < "/etc/apt/sources.list"
then
@@ -30112,11 +30781,11 @@ MongodbMenu()
ExitOnList n "升级会清除现有 mongodb 配置, 是否继续"
- ReleaseCheck
+ DistCheck
service mongod stop
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
yum -y erase mongodb-org*
@@ -33793,7 +34462,7 @@ V2rayListInboundAccountLink()
Println "分享链接: ${green}vmess://$vmess_link${normal}\n"
echo
ExitOnList y "`gettext \"打印二维码\"`"
- ReleaseCheck
+ DistCheck
if [ ! -e "/usr/local/bin/imgcat" ]
then
ImgcatInstall
@@ -45198,8 +45867,8 @@ VipEnable()
Println "$info 安装 md5sum..."
if [[ ! -x $(command -v gcc) ]]
then
- ReleaseCheck
- if [ "$release" == "rpm" ]
+ DistCheck
+ if [ "$dist" == "rpm" ]
then
yum -y install gcc gcc-c++ >/dev/null 2>&1
else
@@ -46668,7 +47337,7 @@ WantedBy=multi-user.target" > /etc/systemd/system/$nginx_name.service
16)
if [[ ! -x $(command -v postfix) ]]
then
- ReleaseCheck
+ DistCheck
Spinner "安装 postfix" PostfixInstall
else
echo
@@ -46743,8 +47412,8 @@ WantedBy=multi-user.target" > /etc/systemd/system/$nginx_name.service
if [[ ! -x $(command -v go-mmproxy) ]]
then
export PATH="$PATH:$HOME/go/bin"
- ReleaseCheck
- if [ "$release" == "rpm" ]
+ DistCheck
+ if [ "$dist" == "rpm" ]
then
echo "export PATH=\$PATH:\$HOME/go/bin" >> ~/.bash_profile
else
@@ -48066,7 +48735,7 @@ fi' > /etc/NetworkManager/dispatcher.d/90-promisc.sh
fi
Println "$info openwrt ${green}旁路由${normal} 安装成功, 地址: $openwrt_ip, 是 ${red}主路由${normal} 负责(拨号)联网\n"
- Println "$tip 具体配置参考 https://github.com/woniuzfb/iptv/wiki/Armbian-or-PVE-openwrt-旁路由配置\n"
+ Println "$tip 具体配置参考 https://github.com/woniuzfb/iptv/wiki/openwrt\n"
nmcli connection modify hMACvLAN ipv4.route-metric 50 > /dev/null
nmcli con down hMACvLAN > /dev/null 2>&1 || true
@@ -48802,7 +49471,7 @@ then
fi
;;
6)
- ReleaseCheck
+ DistCheck
JQInstall
if dnscrypt_version=$(curl -s -Lm 10 "$FFMPEG_MIRROR_LINK/dnscrypt.json" | $JQ_FILE -r '.tag_name')
@@ -48966,7 +49635,7 @@ then
Println "$info 请在虚拟机内执行 opkg update; opkg install qemu-ga 后关机再开启\n\n如果是在国内, 可以在 openwrt 内执行下面命令加快 opkg 速度\nsed -i 's_http[s]*://downloads.openwrt.org_$FFMPEG_MIRROR_LINK/openwrt_' /etc/opkg/distfeeds.conf\n"
;;
9)
- ReleaseCheck
+ DistCheck
JQInstall
Println "$tip 请确保已经安装 qemu-guest-agent\n"
@@ -48992,7 +49661,7 @@ then
Println "$info openwrt-v2ray 安装成功, 请重新登录 openwrt 后台\n"
;;
10)
- ReleaseCheck
+ DistCheck
JQInstall
Println "$tip 请确保已经安装 qemu-guest-agent\n"
@@ -49026,7 +49695,7 @@ then
Println "$info 界面语言切换成功\n"
;;
11)
- ReleaseCheck
+ DistCheck
JQInstall
Println "$tip 请确保已经安装 qemu-guest-agent\n"
@@ -49099,7 +49768,7 @@ then
Println "$info 切换成功\n"
;;
12)
- ReleaseCheck
+ DistCheck
JQInstall
Println "$tip 请确保已经安装 qemu-guest-agent\n"
@@ -49657,11 +50326,11 @@ then
end
)|@tsv' "${delimiters[@]}")
- IFS=$'\001' read -ra chnls_id <<< "$m_id"
- IFS=$'\001' read -ra chnls_title <<< "$m_title"
- IFS=$'\001' read -ra chnls_description <<< "$m_description"
- IFS=$'\001' read -ra chnls_is_hd <<< "$m_is_hd"
- IFS=$'\001' read -ra chnls_language <<< "$m_language"
+ IFS="${delimiters[0]}" read -ra chnls_id <<< "$m_id"
+ IFS="${delimiters[0]}" read -ra chnls_title <<< "$m_title"
+ IFS="${delimiters[0]}" read -ra chnls_description <<< "$m_description"
+ IFS="${delimiters[0]}" read -ra chnls_is_hd <<< "$m_is_hd"
+ IFS="${delimiters[0]}" read -ra chnls_language <<< "$m_language"
chnls_list=""
for((i=0;i<${#chnls_id[@]};i++));
@@ -50346,9 +51015,9 @@ then
exit 0
;;
"ed"|"editor")
- ReleaseCheck
+ DistCheck
DepInstall vim
- if [ "$release" == "rpm" ]
+ if [ "$dist" == "rpm" ]
then
alternatives --config editor
else
|