#!/bin/bash

# XRay-Core update script
# Dependencies: curl p7zip zenity

#Если сайт доступен - продолжить
#[[ $(fping github.com) ]] || exit;

#Language select
case $LANG in
     ru_RU.UTF-8)
          str=('Обновление XRay-Core' 'Обновить XRay-Core до последней версии?' \
          '1. Обновление займёт примерно 10-15 секунд' \
          '2. Программа будет открыта после обновления')
          ;;
     *)
          str=('XRay-Core Update' 'Update XRay-Core to the latest version?' \
          '1. The update will take about 10-15 seconds' \
          '2. The program will be opened after the update')
          ;;
esac

#Запуск обновления без GUI
test -d ~/.config/xraygui/xray || mkdir -p ~/.config/xraygui/xray

#Версия локального xray
test -f ~/.config/xraygui/xray/xray && lversion=$(~/.config/xraygui/xray/xray --version | head -n1 | awk '{print $2}') || lversion="0"
echo "lversion: Локальная версия: $lversion"
#read a

#URL новейшего архива Xray-linux-64.zip на GitHub (содержимое latest может быть представлено одной строкой)
cd ~/.config/xraygui; curl -m 10 -OL https://api.github.com/repos/XTLS/Xray-core/releases/latest || exit
#Кол-во попыток доступа к API
if [ "$(grep 'limit exceeded' ./latest)" ]; then cat ./latest; exit; fi

archurl=$(cat ./latest | tr -d " \n\"{}[]" | tr "," "\n" | \
grep browser_download_url | grep 'Xray-linux-64.zip$' | cut -f2- -d":")
echo "URL архива на гите: $archurl"
#read a

#Версия Xray-linux-64.zip на гите из URL
rversion=$(echo $archurl | cut -d "/" -f8 | sed 's/[[:alpha:]]*//g')
echo "rversion: Версия на гите: $rversion"
#read a

#Сравнение локальной версии xray и на гите из URL
if [[ $lversion != $rversion ]]; then
zenity --question --title="${str[0]}" --text="${str[1]}\n\n${str[2]}\n${str[3]}" --no-wrap
    if [[ $? -eq 0 ]]; then
	killall xraygui; systemctl --user stop xray; killall xray

	cd ~/.config/xraygui/xray
	curl -OL $archurl
	7z e -y ./*.zip
	rm -f ./*.zip*
	sleep 2; if [[ -z $(pidof xraygui) ]]; then xraygui; fi;
    fi;
fi;

exit 0
