#!/bin/sh
# getflash 0.5 original code by technosaurus and by Barry K. http://bkhome.org/blog/?viewDetailed=01897
# 13 Nov 2011 01micko http://www.murga-linux.com/puppy/viewtopic.php?t=72805&start=201
# v0.6 - 21 Dec 2011 shinobar: puppy version independent (may work 4.0 and later), flashblock checkbox, registration, i18n
# v0.8 - 11 Jan 2012 shinobar: flashplayer version info (stu90), fix was not able to uninstall
# v0.9 - 25 Mar 2012 shinobar: fix was the ownership under /usr messing up
# v0.9.9 -  3 May 2012 shinobar: version choice, jwm -reload for no flicker(01mico)
# v1.0 - 5 May 2012 shinobar: flashplayer11-11.2.202.228, insert sudo line
# v1.1 - 9 Jun 2012 shinobar: URL changed, download size
# v1.2 - 21 Jul 2012 shinobar: fix download pets,flashplayer10.3.183.23
# v1.3 - 8 Oct 2013: change adobe url (ETP), forum URL by OscarTalks
# v1.4 - 23 Nov 2013: fix was always offer flashblock
# v1.5 - 4 Feb 2014: flashplayer10-10.3.183.90 from smokey01.com
#150305 BK: adobe site now https:. fix pet repo. fix register with ppm.
#150310 BK: weird, some testers report that http: only works. test for either.
#150311 BK: Argolance: bug fixes. refer: http://murga-linux.com/puppy/viewtopic.php?p=833174#833174
#150311 yaf-splash (gtkdialog-splash) is deprecated in Quirky, in favour of 'popup'

. /etc/DISTRO_SPECS #150305

VERSION=1.5
#OFFERFB="y"	# comment out this line if you do not want to offer flashblock
#CHECKURL='http://get.adobe.com/jp/flashplayer/completion/?installer=Flash_Player_11.2_for_other_Linux_(.tar.gz)_32-bit'
#CHECKURL='http://get.adobe.com/flashplayer/download/?installer=Flash_Player_11.2_for_other_Linux_(.tar.gz)_32-bit&standalone=1' # That may do the trick ETP
#location.href = 'http://fpdownload.macromedia.com/get/flashplayer/pdc/11.2.202.236/install_flash_player_11_linux.i386.tar.gz';
ARCH=$(uname -m)
lsuffix=
case "$ARCH" in #01micko, support 64 bit. 150305 BK now https: 150310 maybe either:
 i?86)CHECKURL='://get.adobe.com/flashplayer/download/?installer=Flash_Player_11.2_for_other_Linux_(.tar.gz)_32-bit&standalone=1'
      FORUMURL=http://www.murga-linux.com/puppy/viewtopic.php?t=84267
 ;;
 *64)CHECKURL='://get.adobe.com/flashplayer/download/?installer=Flash_Player_11.2_for_other_Linux_(.tar.gz)_64-bit&standalone=1'
     lsuffix=64
 ;;
 *)exit 1
 ;;
esac
FORUMURL=http://www.murga-linux.com/puppy/viewtopic.php?t=84267

[ "$UID" != "0" ] && which sudo &>/dev/null exec sudo $0

export TEXTDOMAIN=getflash
export TEXTDOMAINDIR=/usr/share/locale
export OUTPUT_CHARSET=UTF-8
LANG_USER=$LANG

[ "$HOME" ] || HOME='/root'

T_title="GetFlashPlayer v$VERSION"
WAIT_PLS=$(gettext "Please wait...")
_WHICH=$(gettext "Which version do you want to install?")
_NOTE=$(gettext "NOTE: It is reported that the latest flashplayer11 has a problem with some old AMD CPU's. Choose older version in this case.")
_UNABLE_INTERNET=$(gettext "Please check your internet connection")
_UNABLE_SERVER=$(gettext "Unable to contact the server, please check your internet connection")

GTKDIALOG=gtkdialog3
which gtkdialog4 &>/dev/null && GTKDIALOG=gtkdialog4
for P in $BROWSER defaultbrowser seamonkey firefox $DEFAULTBROWSER; do
  which $P &>/dev/null && MYBROWSER=$P && break
done
RXVT=urxvt
which $RXVT &>/dev/null || RXVT=rxvt
export X1PID=""

#150311 yaf-splash (gtkdialog-splash) is deprecated in Quirky, in favour of 'popup'
POPUPFLAG=0
[ `which popup` ] && POPUPFLAG=1
#[ `which popadd` ] || POPUPFLAG=0

mysplash() {
  if [ $POPUPFLAG -eq 1 ];then #150311
   [ `pidof popup` ] && killall popup #popadd 'name=gfpop terminate=now|'
  else
	[ "$X1PID" ] && kill $X1PID
	killall yaf-splash &>/dev/null
	X1PID=""
	BGCOLOR="orange"
	MYICON="gtk-info"
	TIMEOUT=50
  fi
  while [ "$1" ]; do
	case "$1" in
	-*stop) return;;
	-*bg) shift; BGCOLOR=$1; shift;;
	-*timeout) shift; TIMEOUT=$1; shift;;
	-*icon) shift; MYICON=$1; shift;;
	-*text) shift;;
	-*) shift; shift;;
	*) break;;
	esac
  done
  if [ $POPUPFLAG -eq 1 ];then #150311
   case $BGCOLOR in #hack
    yellow)    BACKCOL='#FFFF00' ;;
    LightPink|hotpink) BACKCOL='#FF30FF' ;;
    orange)    BACKCOL='#FFB030' ;;
    *)         BACKCOL='#FFFF00' ;;
   esac
   LANG=$LANG_USER popup "name=gfpop placement=center fontname='Sans 14' background=${BACKCOL} terminate=${TIMEOUT} level=top|${@}" #daemonizes
  else
	if which gtkdialog-splash &>/dev/null ; then
	  LANG=$LANG_USER gtkdialog-splash -fontsize "large" -icon $MYICON -placement center -bg $BGCOLOR -timeout $TIMEOUT -close never -text "$@" & #150311
	else
	  LANG=$LANG_USER gxmessage -center -wrap -bg $BGCOLOR -title "$T_title" -buttons ''  -timeout $TIMEOUT -nofocus "$@" &
	fi
	X1PID=$!
  fi
}
internet_status() {
  LANG=C route | grep -q 'default[ ].*[ ]0\.0\.0\.0[ ]' && grep -wq 'nameserver' /etc/resolv.conf #&& ping -c1 google.com &>/dev/null
}

   #mysplash -bg yellow "$WAIT_PLS"
    if ! internet_status; then
      mysplash -bg hotpink -timeout 5 -icon gtk-dialog-error "$_UNABLE_INTERNET"
      exit 1
    fi
     mysplash -bg yellow "$WAIT_PLS"

     #111113 changed url, scrapped ping
     #DOWNLOADURL="`curl -s 'http://get.adobe.com/flashplayer/completion/?installer=Flash_Player_11_for_other_Linux_(.tar.gz)_32-bit'|tr ' ' '\n'|grep fpdownload|tr -d ';'`"
     #v1.1: CHECKURL, grep -o
     #DOWNLOADURL=$(curl -s "$CHECKURL" | grep -o 'http://fpdownload.*inux.i386.tar.gz')
     
     #150310 either http: or https:
     DOWNLOADURL=''
     case "$ARCH" in #150305 now https
      i?86)DOWNLOADURL=$(curl -s "https${CHECKURL}" | grep -o 'http.://fpdownload.*inux.i386\.tar\.gz') ;;
      *64)DOWNLOADURL=$(curl -s "https${CHECKURL}" | grep -o 'http.://fpdownload.*inux.x86_64\.tar\.gz') ;;
     esac
     if [ ! "$DOWNLOADURL" ];then #150310
      case "$ARCH" in
       i?86)DOWNLOADURL=$(curl -s "http${CHECKURL}" | grep -o 'http.://fpdownload.*inux.i386\.tar\.gz') ;;
       *64)DOWNLOADURL=$(curl -s "http${CHECKURL}" | grep -o 'http.://fpdownload.*inux.x86_64\.tar\.gz') ;;
      esac
     fi
     if [ ! "$DOWNLOADURL" ];then
      mysplash -bg hotpink -timeout 5 -icon gtk-dialog-error "$_UNABLE_SERVER"
      exit 1
     fi
    echo "$DOWNLOADURL" >&2
     NEWVERSION=$(dirname "$DOWNLOADURL")
     NEWVERSION=$(basename "$NEWVERSION")
     echo "NEWVERSION=$NEWVERSION"
     #v1.1 download size
     LENGTH=$(curl -s -I "$DOWNLOADURL" | grep -i 'Content-Length:' | cut -s -f2 -d':'| tr -dc '0-9') || LENGTH=0
     NEWMB=$((($LENGTH + 52429) / 104858))
     if [ $NEWMB -gt 0 ] ; then
       L=$(echo -n $NEWMB | wc -c)
       M=$(($L -1))
       NEWMB="$(echo $NEWMB -n | cut -c-$M).$(echo -n $NEWMB | cut -c$L)MB"
     else
      NEWMB='---' #150311
     fi
#DOWNTEXT=$(gettext "Click the 'Yes' button to download and install FlashPlayer-%s (6MB).")
#DOWNTEXT=$(printf "$DOWNTEXT" "$NEWVERSION")
if [ ! -f /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so ];then
  FLASHVERSION="0"
  TEXT=$(gettext "The Adobe Flash Player for the web browser is not installed.")
else
  FLASHVERSION=$(strings -n13 /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so  | grep 'FlashPlayer_' | cut -d '_' -f2-5| tr '_' '.')
  echo "INSTALLED=$FLASHVERSION" >&2
  TEXT=$(gettext "The Adobe FlashPlayer-%s for the web browser is already installed.")
  TEXT=$(printf "$TEXT" "$FLASHVERSION")
  if [ "$FLASHVERSION" = "$NEWVERSION" ]; then
    TEXT="$TEXT $(gettext "It seems the latest version. But you can download again and re-install it.")"
  else
    TEXT="$TEXT $(gettext "You can install the latest version.")"
  fi
fi
#TEXT="$TEXT\\n$DOWNTEXT"
#export TEXT
# v1.2 - 21 Jul 2012 shinobar: flashplayer10.3.183.23
# v1.3 - forum URL
# v1.5 - 4 Feb 2014: flashplayer10-10.3.183.90 from smokey01.com
SEE_TITLE=$(gettext "Download from the Forum")
SEE_MSG=$(gettext "Or, you can install the PET provided by OscarTalks.")
SEE_LABEL=$(gettext "look up the forum")
BROWSER_ICON=/usr/local/lib/X11/mini-icons/mini-world.xpm
SEE_FORUM=
if [ "$FORUMURL" ]; then
 if [ "$DISTRO_TARGETARCH" == "x86" ];then #150305
  SEE_FORUM='<frame '$SEE_TITLE'>
   <text><label>"'$SEE_MSG'"</label></text>
  <hbox><button><input file>'$BROWSER_ICON'</input><label>"'$SEE_LABEL'"</label>
  <action>'$MYBROWSER' '$FORUMURL' &</action>
  </button></hbox>
  </frame>'
 else
  SEE_MSG="$(gettext 'No 64-bit PETs available in Forum')"
  SEE_FORUM='<frame '$SEE_TITLE'>
   <text><label>"'$SEE_MSG'"</label></text>
  </frame>'
 fi
fi
      _V11X="flashplayer11-$NEWVERSION ($NEWMB)"
      _V11="flashplayer11-11.2.202.228 (6.4MB)"
      _V10="flashplayer10-10.3.183.90 (5.2MB)"
      _V9="flashplayer9_pretend10-20110327 (2.9MB)"
      case "$ARCH" in
        i?86)RADIOBTNS='<radiobutton><label>'$_V11'</label><variable>V11</variable></radiobutton>
        <radiobutton><label>'$_V10'</label><variable>V10</variable></radiobutton>
        <radiobutton><label>'$_V9'</label><variable>V9</variable></radiobutton>'
      esac
      #LANG=C Xdialog --center --title "Adobe Flash Player" --icon "/usr/share/doc/flashlogo.gif" --yesno "$TEXT" 0 0
      export FDLG='<window title="'$T_title'">
      <vbox>
      <hbox>
      <pixmap><width>32</width><input file>/usr/share/doc/flashlogo.gif</input></pixmap>
      <text><label>'"$TEXT"'</label></text>
      </hbox>
      <frame '$_WHICH'>
        <radiobutton><label>'$_V11X'</label><variable>V11X</variable></radiobutton>
        '$RADIOBTNS'
        </frame>
        '$SEE_FORUM'
      <text><label>'"$_NOTE"'</label></text>
      <hbox><button ok></button><button cancel></button></hbox>
      </vbox></window>'
      #echo "$FDLG" >&2
      mysplash --stop
      REPLY=$($GTKDIALOG -p FDLG -c |grep '=') || echo "$FDLG" >&2
      #echo "$REPLY"
      eval "$REPLY"
      [ "$EXIT" = "OK" ] || exit 0
      CHOICE=$(echo "$REPLY" | grep '=.*true'| head -n1| cut -f1 -d'=')
      if [ "$CHOICE" = "V11X" ]; then
       cd /usr/lib${lsuffix}/mozilla/plugins
       #echo -e "#!/bin/sh\nwget -O - http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_11_linux.i386.tar.gz | tar -xz" > /tmp/delayedrun_flashdl
       # v0.9: fix the ownership
       if [ "$(echo -n "$DOWNLOADURL" | grep 'https')" == "" ];then #150305
        echo -e "#!/bin/sh\nwget -O - $DOWNLOADURL | tar --no-same-owner -xz" > /tmp/delayedrun_flashdl
       else
        echo -e "#!/bin/sh\nwget --no-check-certificate -O - $DOWNLOADURL | tar --no-same-owner -xz" > /tmp/delayedrun_flashdl
       fi
       chmod 777 /tmp/delayedrun_flashdl
       $RXVT -bg orange -geometry 80x4 -title "$T_title" -e /tmp/delayedrun_flashdl
       mysplash -bg yellow "$WAIT_PLS"
       ldd /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so > /dev/null 2>&1
       [ $? -ne 0 ] && rm -f /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so 2>/dev/null
       if [ -f /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so ];then
        FLASHSIZE=$(du /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so| cut -f1)
        echo /usr/lib${lsuffix}/mozilla/plugins/libflashplayer.so > /tmp/flashplayer.files #register
        if [ -d /usr/lib${lsuffix}/mozilla/plugins/usr ];then #150305
         rm -rf /usr/lib${lsuffix}/mozilla/plugins/usr/lib 2>/dev/null
         rm -rf /usr/lib${lsuffix}/mozilla/plugins/usr/lib64 2>/dev/null
         rm -rf /usr/lib${lsuffix}/mozilla/plugins/usr/share/kde4 2>/dev/null
         cp -r -f /usr/lib${lsuffix}/mozilla/plugins/usr /
         #find /usr/lib${lsuffix}/mozilla/plugins/usr -type d -printf '/usr/%P/\n'  >> /tmp/flashplayer.files
         #find /usr/lib${lsuffix}/mozilla/plugins/usr -type l -printf '/usr/%P\n'  >> /tmp/flashplayer.files
         find /usr/lib${lsuffix}/mozilla/plugins/usr -type f -printf '/usr/%P\n'  >> /tmp/flashplayer.files
         cd $HOME
         rm -rf /usr/lib${lsuffix}/mozilla/plugins/usr
         grep -vw '^flashplayer11' $HOME/.packages/user-installed-packages > /tmp/user-installed-packages
         NEWENTRY="flashplayer11-$NEWVERSION|flashplayer11|$NEWVERSION||Internet|17580K||flashplayer11-$NEWVERSION.pet||Adobe Flash Player 11 browser plugin and Preferences. Note, this may not work on older PCs, use instead an earlier 11.x or even 10.x||||"
         echo "$NEWENTRY" >> /tmp/user-installed-packages
         PACKAGE_ROOT=flashplayer11-$NEWVERSION	#v1.0
         mv -f /tmp/flashplayer.files /tmp/$PACKAGE_ROOT.files
         cp -f /tmp/$PACKAGE_ROOT.files /tmp/user-installed-packages $HOME/.packages/
         if [ -f /usr/share/applications/flash-player-properties.desktop ];then #fix .desktop for menu
          OLDCATEGORY="`grep "^Categories" /usr/share/applications/flash-player-properties.desktop`"
          NEWCATEGORY="Categories=X-Internet;"
          OLDICON="`grep "^Icon" /usr/share/applications/flash-player-properties.desktop`"
          NEWICON="Icon=/usr/share/icons/flash-player-properties.png"
          sed -i -e "s%$OLDCATEGORY%$NEWCATEGORY%" \
			  -e "s%$OLDICON%$NEWICON%" /usr/share/applications/flash-player-properties.desktop
         fi
         fixmenus
         if [ "`pidof jwm`" != "" ] ; then
           jwm -reload || jwm -restart	#v1.0
         fi
         SUCCESS="y"
        fi
       fi
      else  # v1.5 - 4 Feb 2014: flashplayer10-10.3.183.90 from smokey01.com
         DOWNLOADURL="http://distro.ibiblio.org/quirky/quirky6/${DISTRO_TARGETARCH}/packages/pet_packages-common" #150305
         case "$CHOICE" in
         V11) PACKAGE_ROOT="flashplayer11-11.2.202.228";;
         V10) DOWNLOADURL="http://www.smokey01.com/OscarTalks"
              PACKAGE_ROOT="flashplayer10-10.3.183.90";;
         V9) PACKAGE_ROOT="flashplayer9_pretend10-20110327";;
         *) exit 0;;
         esac
         DOWNLOADURL="$DOWNLOADURL/$PACKAGE_ROOT.pet"
         cd /tmp
         DOWNLOAD_FILE=$(which download_file)
         if [ "$DOWNLOAD_FILE" ]; then
           $DOWNLOAD_FILE "$DOWNLOADURL"
         else
          if [ "$(echo -n "$DOWNLOADURL" | grep 'https')" == "" ];then #150305
           echo -e "#!/bin/sh\nwget -O - $DOWNLOADURL" > /tmp/delayedrun_flashdl
          else
           echo -e "#!/bin/sh\nwget --no-check-certificate -O - $DOWNLOADURL" > /tmp/delayedrun_flashdl
          fi
           chmod 777 /tmp/delayedrun_flashdl
           $RXVT -bg orange -geometry 80x4 -title "$T_title" -e /tmp/delayedrun_flashdl
         fi
         #cd $HOME #V1.2 fix download pets
         if [ -s "$PACKAGE_ROOT.pet" ]; then
           petget +$PACKAGE_ROOT.pet
           [ -s $HOME/.packages/$PACKAGE_ROOT.files ] && SUCCESS="y"
           rm -f $PACKAGE_ROOT.pet
         fi
      fi
      if [ "$SUCCESS" ]; then
        #http://flashblock.mozdev.org/
        #LANG=C Xdialog --center --title "Adobe Flash Player" --icon "/usr/share/doc/flashlogo.gif" --msgbox "The Adobe Flash Player has been downloaded to:\\n /usr/lib/mozilla/plugins/libflashplayer.so\\nYou will need to exit from your web browser and restart it for the player to load" 0 0
        NOFB="`grep -i '^flashblock' $HOME/.packages/*-installed-packages`"
        if [ "$OFFERFB" -a "$NOFB" = "" ];then
         FLASHBLOCK='<hbox>
            <pixmap><input file>/usr/share/icons/flashblock.png</input></pixmap>
         <checkbox>
           <label>'$(gettext "Open your browser at the mozilla Flashblock page")'</label>
           <variable>OPENFB</variable>
           <default>true</default>
          </checkbox></hbox>'
          else FLASHBLOCK='';
        fi 
        TEXT="$(gettext 'The Adobe Flash Player has been downloaded to:')\n/usr/lib${lsuffix}/mozilla/plugins\n$(gettext 'You will need to exit from your web browser and restart it for the player to load')" #150311
        export FDLG='<window title="'$T_title'">
        <vbox>
         <frame><hbox>
          <pixmap><width>32</width><input file>/usr/share/doc/flashlogo.gif</input></pixmap>
          <text usemarkup="true"><input>echo -en "'$TEXT'"</input></text>
         </hbox></frame>
         '"$FLASHBLOCK"'
         <hbox>
          <button ok></button>
         </hbox>
        </vbox>
       </window>'
       mysplash --stop
       #I=$IFS; IFS="" 
		STATEMENTS=$($GTKDIALOG -p FDLG -c) || echo "$FLDG" >&2 
		STATEMENTS=$(echo "$STATEMENTS"|grep '^[A-Z][A-Z]*=')
		eval "$STATEMENTS"
		#IFS=$I
		[ "$EXIT" = "OK" -a "$OPENFB" = "true" ] && \
		exec $MYBROWSER http://flashblock.mozdev.org/
		exit 0
      else
        #LANG=C Xdialog --center --title "Adobe Flash Player" --icon "/usr/share/doc/flashlogo.gif" --msgbox "Sorry, the Player did not download. Try the Puppy Package Manager." 0 0
        TEXT=$(gettext "Sorry, the Player did not download. Try the Puppy Package Manager.")
        export FDLG='<window title="'$T_title'">
        <vbox>
        <hbox>
        <pixmap><width>32</width><input file>/usr/share/doc/flashlogo.gif</input></pixmap>
        <text><input>echo -en "'$TEXT'"</input></text>
        </hbox>
        <hbox><button ok></button></hbox>
        </vbox></window>'
         mysplash --stop
         $GTKDIALOG -p FDLG -c
      fi


