#!/bin/bash
# Adopted from https://aur.archlinux.org/cgit/aur.git/tree/zoipdl.sh?h=zoiper-bin
set -euo pipefail
IFS=$'\n\t'

tmpdir="/tmp"
usrdir="/usr/local/applications/Zoiper5"

rm -rf -- "$tmpdir"/Zoiper5_*_x86_64.tar.xz

_fn_zoip() {
  _cookie='/tmp/zoiper_cookies.txt'
  _url1='https://www.zoiper.com/en/voip-softphone/download/current'
  _url2='https://www.zoiper.com/en/voip-softphone/download/zoiper5/for/linux'
  _uagent='Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0'
  _opts=(--user-agent "${_uagent}") # Yay, same option curl and wget
  _fn_moreopts() {
    _opts+=(--header 'Accept: text/html')
  }

  if :; then
    cd $tmpdir
    curl -c "${_cookie}" "${_opts[@]}" -f -s -o '/dev/null' "${_url1}"
    _fn_moreopts
    curl -b "${_cookie}" "${_opts[@]}" -f -O -J -s "${_url2}"
  fi
  rm -f "${_cookie}"
  if [ ! -z "${1:-}" ] && [ "${1}" != "${1%.part}" ] && [ -f "${1%.part}" ]; then
    mv "${1%.part}" "${1}"
  fi
}

_fn_zoip

VERSION=$(ls $tmpdir | grep Zoiper | awk -F'_' '{print $2}')
mkdir -p "$usrdir"
tar -xJf "$tmpdir/Zoiper5_${VERSION}_x86_64.tar.xz" -C "$usrdir" --strip-components=1
