Add files via upload

This commit is contained in:
mutto233
2018-06-27 03:12:02 -04:00
committed by GitHub
parent 5b33e787a6
commit 12a3a7a4c6
3 changed files with 177 additions and 103 deletions

View File

@@ -60,6 +60,9 @@ done < "$filename"
for i in "${!CHANNEL_DIR_ARR[@]}" for i in "${!CHANNEL_DIR_ARR[@]}"
do do
CHANNEL_DIR_NUMBERS[i]=$(echo ${CHANNEL_DIR_SORTED[i]} | sed "s/^pseudo-channel${CHANNEL_DIR_INCREMENT_SYMBOL}0*//") CHANNEL_DIR_NUMBERS[i]=$(echo ${CHANNEL_DIR_SORTED[i]} | sed "s/^pseudo-channel${CHANNEL_DIR_INCREMENT_SYMBOL}0*//")
if [ -z ${CHANNEL_DIR_NUMBERS[i]} ]; then
CHANNEL_DIR_NUMBERS[i]=0
fi
done done
@@ -93,7 +96,11 @@ if [ "${#CHANNEL_DIR_ARR[@]}" -gt 1 ]; then
# We are now going to do the same thing here, just with previous channel # We are now going to do the same thing here, just with previous channel
PREV_CHANNEL=$(echo $(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE) | sed "s/^0*//") PREV_CHANNEL=$(echo $(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE) | sed "s/^0*//")
if [ -z $PREV_CHANNEL ]; then
PREV_CHANNEL=0
fi
echo "+++++ It looks like the previous channel was: $PREV_CHANNEL" echo "+++++ It looks like the previous channel was: $PREV_CHANNEL"

View File

@@ -71,6 +71,9 @@ done < "$filename"
for i in "${!CHANNEL_DIR_ARR[@]}" for i in "${!CHANNEL_DIR_ARR[@]}"
do do
CHANNEL_DIR_NUMBERS[i]=$(echo ${CHANNEL_DIR_SORTED[i]} | sed "s/^pseudo-channel${CHANNEL_DIR_INCREMENT_SYMBOL}0*//") CHANNEL_DIR_NUMBERS[i]=$(echo ${CHANNEL_DIR_SORTED[i]} | sed "s/^pseudo-channel${CHANNEL_DIR_INCREMENT_SYMBOL}0*//")
if [ -z ${CHANNEL_DIR_NUMBERS[i]} ]; then
CHANNEL_DIR_NUMBERS[i]=0
fi
done done
# If this script see's there are multiple channels, # If this script see's there are multiple channels,
@@ -89,7 +92,10 @@ if [ "${#CHANNEL_DIR_ARR[@]}" -gt 1 ]; then
# We are now going to do the same thing here, just with previous channel # We are now going to do the same thing here, just with previous channel
PREV_CHANNEL=$(echo $(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE) | sed "s/^0*//") PREV_CHANNEL=$(echo $(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE) | sed "s/^0*//")
if [ -z $PREV_CHANNEL ]; then
PREV_CHANNEL=0
fi
echo "+++++ It looks like the previous channel was: $PREV_CHANNEL" echo "+++++ It looks like the previous channel was: $PREV_CHANNEL"

View File

@@ -1,103 +1,164 @@
#!/bin/bash #!/bin/bash
# Credits: irodimus # Credits: irodimus
# file: manual.sh # file: manual.sh
#---- #----
# Simple script to change to specific channel given - triggering start / stop. # Simple script to change to specific channel given - triggering start / stop.
#---- #----
#---- #----
# To Use: # To Use:
# Run script by including the channel you'd like to run as an argument: ex. ./manual.sh 2, ./manual.sh 9 # Run script by including the channel you'd like to run as an argument: ex. ./manual.sh 2, ./manual.sh 9
# #
# Configure something (a tv remote or alexa) to trigger this script. Make sure you move this script just # Configure something (a tv remote or alexa) to trigger this script. Make sure you move this script just
# outside of the pseudo-channel directories: # outside of the pseudo-channel directories:
# ------------------- # -------------------
# -channels/ # -channels/
# --pseudo-channel_1/ # --pseudo-channel_1/
# ---startstop.sh # ---startstop.sh
# --pseudo-channel_2/ # --pseudo-channel_2/
# ---startstop.sh # ---startstop.sh
# --pseudo-channel_3/ # --pseudo-channel_3/
# ---startstop.sh # ---startstop.sh
# --manual.sh <--- on the same level as the 3 channels. # --manual.sh <--- on the same level as the 3 channels.
#---- #----
# Make sure that each channel dir ends with a "_" + an incrementing number as seen above. # Make sure that each channel dir ends with a "_" + an incrementing number as seen above.
#----BEGIN EDITABLE VARS---- #----BEGIN EDITABLE VARS----
SCRIPT_TO_EXECUTE='startstop.sh' SCRIPT_TO_EXECUTE='startstop.sh'
OUTPUT_PREV_CHANNEL_PATH=. OUTPUT_PREV_CHANNEL_PATH=.
OUTPUT_PREV_CHANNEL_FILE=".prevplaying" OUTPUT_PREV_CHANNEL_FILE=".prevplaying"
CHANNEL_DIR_INCREMENT_SYMBOL="_" CHANNEL_DIR_INCREMENT_SYMBOL="_"
#----END EDITABLE VARS------- #----END EDITABLE VARS-------
FIRST_RUN=false FIRST_RUN=false
# Scan the dir to see how many channels there are, store them in an arr. # Scan the dir to see how many channels there are, store them in an arr.
CHANNEL_DIR_ARR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL"'[[:digit:]]*' -printf "%P\n" | sort -t"$CHANNEL_DIR_INCREMENT_SYMBOL" -n) ) CHANNEL_DIR_ARR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL"'[[:digit:]]*' -printf "%P\n" | sort -t"$CHANNEL_DIR_INCREMENT_SYMBOL" -n) )
echo $CHANNEL_DIR_ARR # Since leading zeros may be an issue, we need to correctly sort the channels. The best way to do this seems to be in python
# So a script will take in the channels as they are, then output them in the correct, sorted order in Channels_Sorted.txt.
# If the previous channel txt file doesn't exist already create it (first run?) # We will run the script, then read in the results.
if [ ! -e "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE" ]; then sudo python ./Channel_Sorter.py ${CHANNEL_DIR_ARR[@]}
#FIRST_RUN_NUM=$((${#CHANNEL_DIR_ARR[@]})) filename="./Channels_Sorted.txt"
echo 1 > "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE" i=0
while read -r line
echo "First run: $FIRST_RUN_NUM" do
name="$line"
FIRST_RUN=true CHANNEL_DIR_SORTED[i]=$name
i=$((i+1))
fi done < "$filename"
# If this script see's there are multiple channels,
# then read file, get prevchannel and nextchannel, and trigger next channel: # We need to add on top of this a "buffer" where we remove all leading zeros to compare everything on the same level
if [ "${#CHANNEL_DIR_ARR[@]}" -gt 1 ]; then # This simply leaves us with the number at the end. NOTE: We should have already sorted things, so this should not be a problem
for i in "${!CHANNEL_DIR_ARR[@]}"
NEXT_CHANNEL=$1 do
CHANNEL_DIR_NUMBERS[i]=$(echo ${CHANNEL_DIR_SORTED[i]} | sed "s/^pseudo-channel${CHANNEL_DIR_INCREMENT_SYMBOL}0*//")
NEXT_CHANNEL_DIR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL""$NEXT_CHANNEL" -printf "%P\n") ) if [ -z ${CHANNEL_DIR_NUMBERS[i]} ]; then
CHANNEL_DIR_NUMBERS[i]=0
PREV_CHANNEL_FOUND=false fi
done
echo "+++++ There are ${#CHANNEL_DIR_ARR[@]} channels detected."
PREV_CHANNEL=$(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE)
PREV_CHANNEL_DIR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL""$PREV_CHANNEL" -printf "%P\n") )
# If the previous channel txt file doesn't exist already create it (first run?)
PREV_CHANNEL_DISP=$(echo $PREV_CHANNEL | sed 's/^0*//') if [ ! -e "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE" ]; then
echo "+++++ It looks like the previous channel was: $PREV_CHANNEL_DISP" #FIRST_RUN_NUM=$((${#CHANNEL_DIR_ARR[@]}))
echo 1 > "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE"
echo "+++++ The next channel is: $NEXT_CHANNEL"
echo "First run being conducted"
# Write next channel to previous channel file to reference later
echo "$NEXT_CHANNEL" > "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE" FIRST_RUN=true
# Finally let's trigger the startstop script in both the previous channel and the next channel dirs. fi
# This will stop the previous channels playback & trigger the next channels playback
# If this script see's there are multiple channels,
if [ "$FIRST_RUN" = false ]; then # then read file, get prevchannel and nextchannel, and trigger next channel:
cd "$OUTPUT_PREV_CHANNEL_PATH"/"$PREV_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE" if [ "${#CHANNEL_DIR_ARR[@]}" -gt 1 ]; then
cd ../"$NEXT_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE" echo "+++++ There are ${#CHANNEL_DIR_ARR[@]} channels detected."
else
#NEXT_CHANNEL=$1
cd "$OUTPUT_PREV_CHANNEL_PATH"/"$NEXT_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE"
#NEXT_CHANNEL_DIR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL""$NEXT_CHANNEL" -printf "%P\n") )
fi
# We now need to read in the next channel and ALSO strip it of any leading zeros for correct comparison
sleep 1 NEXT_CHANNEL=$(echo $1 | sed "s/^0*//")
if [ -z $NEXT_CHANNEL ]; then
fi NEXT_CHANNEL=0
fi
PREV_CHANNEL_FOUND=false
#PREV_CHANNEL=$(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE)
# PREV_CHANNEL_DIR=( $(find . -maxdepth 1 -type d -name '*'"$CHANNEL_DIR_INCREMENT_SYMBOL""$PREV_CHANNEL" -printf "%P\n") )
# We are now going to do the same thing here, just with previous channel
PREV_CHANNEL=$(echo $(<$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE) | sed "s/^0*//")
if [ -z $PREV_CHANNEL ]; then
PREV_CHANNEL=0
fi
echo "+++++ It looks like the previous channel was: $PREV_CHANNEL"
echo "+++++ The next channel is: $NEXT_CHANNEL"
# This is our modified way of searching for the correct directory for the next channel
for i in "${!CHANNEL_DIR_NUMBERS[@]}"
do
item_compare=${CHANNEL_DIR_NUMBERS[i]}
if [ $item_compare -eq $NEXT_CHANNEL ]; then
echo "NEXT CHANNEL MATCH: ${CHANNEL_DIR_SORTED[$i]}"
NEXT_CHANNEL_DIR=${CHANNEL_DIR_SORTED[$i]}
break
fi
done
# This is our modified way of searching for the correct directory for the previous channel
for i in "${!CHANNEL_DIR_NUMBERS[@]}"
do
item_compare=${CHANNEL_DIR_NUMBERS[i]}
if [ $item_compare -eq $PREV_CHANNEL ]; then
echo "PREVIOUS CHANNEL MATCH: ${CHANNEL_DIR_SORTED[$i]}"
PREV_CHANNEL_DIR=${CHANNEL_DIR_SORTED[$i]}
break
fi
done
# Write next channel to previous channel file to reference later
echo "$NEXT_CHANNEL" > "$OUTPUT_PREV_CHANNEL_PATH/$OUTPUT_PREV_CHANNEL_FILE"
# Finally let's trigger the startstop script in both the previous channel and the next channel dirs.
# This will stop the previous channels playback & trigger the next channels playback
if [ "$FIRST_RUN" = false ]; then
cd "$OUTPUT_PREV_CHANNEL_PATH"/"$PREV_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE"
cd ../"$NEXT_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE"
else
cd "$OUTPUT_PREV_CHANNEL_PATH"/"$NEXT_CHANNEL_DIR" && ./"$SCRIPT_TO_EXECUTE"
fi
sleep 1
fi
exit 0 exit 0