#!/bin/sh #bu VINRARUS 2018 #zYouTube 2 export TMP="/mmc/mmca1/zYouTube" export SIZE="200" LD_PRELOAD= . ${0%/*}/Config.sh mkdir "$TMP" TESTDIR(){ FIT="$1/`date +%s`.tmp" if echo "bu VINRARUS" > $FIT then rm -f $FIT return 0 else showQ "zYouTube" "Fatal EROR! This is bad dir: $1" 2 return 1 fi } showTextEntry(){ if [ -f /usr/lib/libezxinput.so ] then export LD_PRELOAD=/usr/lib/libezxinput.so fi ${0%/*}/showTextEntry "$@" | sed -e '/####TEXTENTRY####/!d' -e 's/####TEXTENTRY####//' -e 's/ //g' LD_PRELOAD= } showFM(){ ${0%/*}/showFM "$@" } showYouTube(){ CLEAR_SIZE if ! ${0%/*}/showYouTube #> /dev/null then showQ "DOWNLOAD EROR!" "`cat $TMP/eror.log`" 2 rm $TMP/eror.log fi } WATCH(){ NON=`sed -n '$=' $TMP/You.log` if [ -z "$NON" ] then NON=1 else #NON="$((NON+1))" 0 fi if [ -z "$ON" ] then ON="$NON" fi MSG="`sed '$!d' /tmp/curl.log | (read A B C; echo "$A% for $B")` $((ON+1-$NON))/$ON" } CLEAR_SIZE(){ if busybox du -sm $TMP/ then Tubelog=`cat $TMP/Tube.log` while [ "`busybox du -sm $TMP/ | (read A B; echo "$A")`" -gt "$SIZE" ] do VIDOSIK=`ls -t $TMP/ | sed '/\.3gp$/!d'` FILEDEL=`echo "$VIDOSIK" | sed '$!d'` if [ "$FILEDEL" = "$Tubelog" ] then echo "Abort del for $Tubelog, he in list." break elif [ "`echo "$VIDOSIK" | sed -n '$!d;='`" = "1" ] then echo "Abort del for $Tubelog, he is last." break fi rm -f "$TMP/$FILEDEL" echo "del: $FILEDEL" done fi } while true do if [ -z "$1" ] then if pidof showYouTube then WATCH STO="Stop_download" else STO= MSG= fi showRadio "zYouTube" "$MSG" "Add" "Play" "List" "Clear cache" "Settings" $STO RADIO=$? else RADIO=1 fi case "$RADIO" in 6) killall -9 curl showNotify "zYouTube" "Stoping..." 1 4 ;; 5) showRadio "zYouTube Settings" "Cache dir: $TMP Max size for cache: $SIZE Mb" "Enjoy cache dir" "Max size for cache" case "$?" in 1) FILE=`showFM "zYouTube" "create zYouTube dir in:" /mmc/mmca1/ 2 0` if TESTDIR "$FILE" then export TMP="${FILE}zYouTube" sed -i '/^export TMP=.*/d' ${0%/*}/Config.sh echo "export TMP='${FILE}zYouTube'" >> ${0%/*}/Config.sh fi ;; 2) showRadio "zYouTube" "Max size for cache:" "10 Mb" "25 Mb" "50 Mb" "100 Mb" "200 Mb" "500 Mb" "1 Gb" "2 Gb" "5 Gb" "10 Gb" "15 Gb" "25 Gb" "1 Tb" case $? in 1) SIZ=10 ;; 2) SIZ=25 ;; 3) SIZ=50 ;; 4) SIZ=100 ;; 5) SIZ=200 ;; 6) SIZ=500 ;; 7) SIZ=1000 ;; 8) SIZ=2000 ;; 9) SIZ=5000 ;; 10) SIZ=10000 ;; 11) SIZ=15000 ;; 12) SIZ=25000 ;; 13) SIZ=1000000 ;; *) SIZ=0 ;; esac if [ "$SIZ" != 0 ] then export SIZE="$SIZ" sed -i '/^export /SIZE=.*/d' ${0%/*}/Config.sh echo "export SIZE='$SIZ'" >> ${0%/*}/Config.sh fi ;; esac ;; 4) rm -f $TMP/* ;; 3) FILE=`showFM "zYouTube" "" $TMP/ 3 0 3gp` if [ -f "$FILE" ] then FIL="${FILE##*/}" break else continue fi ;; 2) read FIL <$TMP/Tube.log if [ ! -f "$TMP/$FIL" ] then FIL=`ls -t $TMP/ | sed '/\.3gp$/!d' | sed '1!d'` fi if [ ! -f "$TMP/$FIL" ] then continue fi break ;; 1) if [ -z "$1" ] then dota=`showTextEntry 0 "zYouTube" "Url or identificator:"` elif [ "$1" = 0 ] then dota= else dota="$1" shift fi echo " $dota ; $1 " echo if [ -n "$dota" ] then if ! grep "$dota" $TMP/You.log then echo "$dota" >> $TMP/You.log fi while [ -n "$1" ] do if ! grep "$1" $TMP/You.log then echo "$1" >> $TMP/You.log fi shift done # /ezxlocal/iNative/iNative.sh showNotify "zYouTube" "Loading..." 1 8 & if ! pidof showYouTube then showYouTube fi read FIL <$TMP/Tube.log if [ ! -f "$TMP/$FIL" ] then FIL=`ls -t $TMP/ | sed '/\.3gp$/!d' | sed '1!d'` while pidof showYouTube do killall showNotify & showNotify "zYouTube" "$FIL" 0 20 & for N in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 do sleep 1 if [ ! -f "$TMP/$FIL" ] then echo "NOT FILE!" break elif [ "`ls -l "$TMP/$FIL" | (read r1 r2 r3 r4 r5 r6 r7 r8 r9; echo "$r5")`" -gt "250000" ] then break 2 fi done FIL=`ls -t $TMP/ | sed '/\.3gp$/!d' | sed '1!d'` done fi else continue fi echo $FIL export LD_PRELOAD= WATCH while pidof showQ do sleep 5 killall showQ sleep 5 done & while pidof showYouTube do showQ "zYouTube" "$MSG Play?" 0 if [ "$?" = 143 ] then WATCH elif [ "$?" = 1 ] then break 2 else break fi done ;; 0) exit ;; esac done MINUS(){ if [ "$MI" = "0" ] then MI=1 echo MINUS NOT=`ls -t $TMP/ | sed '/\.3gp$/!d' | sed -n "/^$FIL\$/{n;p;}"` if [ -n "$NOT" ] then echo "$NOT" > $TMP/Tube.log killall mediaplayer else rm -f $TMP/Tube.log # EXIT showNotify "zYouTube" "End PREV list!" 2 3 fi fi } PLUS(){ if [ "$PI" = "0" ] then PI=1 echo PLUS NOT=`ls -t $TMP/ | sed '/\.3gp$/!d' | sed -n "/^$FIL\$/{g;1!p;};h"` if [ -n "$NOT" ] then echo "$NOT" > $TMP/Tube.log killall mediaplayer else rm -f $TMP/Tube.log showNotify "zYouTube" "End NEXT list!" 2 3 # if [ "$FINISH" = "0" ] # then # EXIT # fi fi fi } EXIT(){ CLEAR_SIZE sleep 1 killall showNotify killall mediaplayer killall ${0##*/} } killall showNotify & if [ -f '/tmp/sh_player/DIRKA/SYSqtapp/mediaplayer' ] then killall -18 SH_pley killall sh_player_dz.sh mediaplayer='/tmp/sh_player/DIRKA/SYSqtapp/mediaplayer' else mediaplayer='/usr/SYSqtapp/mediaplayer/mediaplayer' fi while [ -f "$TMP/$FIL" ] do date STOP=0 FINISH=0 PI=0 MI=0 (( $mediaplayer -d "$TMP/$FIL" | while read out do case "$out" in "end MP_AvPlayer::onPlayFinished") echo "-$out" #exit 8 PLUS FINISH=1 STOP=1 ;; "enter MP_AvPlayer::stop()") echo "-$out" STOP=1 ;; "enter MP_AvPlayer::play()") echo "-$out" STOP=0 ;; "=========send media player exit message!!") echo "-$out" echo EXIT if [ "$FINISH" = "0" -a "$PI" = "0" -a "$MI" = "0" ] then EXIT & PLUS #exit 0 fi ;; "enter MP_AvControl::doNext") echo "-$out" if [ "$STOP" = "1" ] then echo "-82" PLUS #exit 2 fi ;; "enter MP_AvControl::doPrevious") echo "-$out" if [ "$STOP" = "1" ] then echo "-80" MINUS #exit 4 fi ;; esac done )) read FI <$TMP/Tube.log if [ "$FI" = "$FIL" -o "$FI" = "" ] then exit else FIL="$FI" fi echo "=$FIL" sleep 1 done