#!/bin/bash
# Special thank to Shiroko, he give me the insight of coding in proper way

################################# Here we import our tools


################################# Here we set the configs
REALPATH=`realpath $0`
HERE_PATH=`dirname $REALPATH`
STORE_APP_PATH="$HERE_PATH"
WORKDIR=`mktemp -d`
ARCH="" # Define it later
ARCH_ANOTHERWAY="" # Define it later

PKG_NAME="linuxqq"
APP_NAME="QQ"
SOURCE_LIST_FILE=""
GITHUB_REPO=""
VERSION="" #Here we use other way to get version so do not write here
TAGS="ubuntu;deepin;uos"
CATAGORY="chat" #https://gitee.com/deepin-community-store/spark-store/blob/dev/DOCS/spk-doc.md
DETAIL="QQ Linux 官方版，由 https://gitee.com/spark-building-service/linuxqq/ 自动维护，感谢 @wcbing 的代码\n\n本渠道为公测版，可能比官网版本高。" # This should be written as json format
MAINTAINER="shenmo<shenmo@spark-app.store>"
HOMEPAGE="https://im.qq.com/linuxqq/index.shtml"


################################# Fill the variables below only if you use write_control function

SECTION=""
PRIORITY=""
DEPENDS=""
DESCRIPTION_SHORT=""
DESCRIPTION_LONG=""
PROVIDES=""
REPLACES=""
RECOMMENDS=""

source /opt/bashimport/sbs-utils.bashimport
source /opt/bashimport/sbs-build-helper.bashimport

if [ "$1" = "amd64" ] || [ "$1" = "x64" ];then
ARCH="amd64"
ARCH_ANOTHERWAY="-amd64"
ARCH_FOR_QQ="amd64"
elif [ "$1" = "arm64" ] || [ "$1" = "arm" ];then
ARCH="arm64"
ARCH_ANOTHERWAY="-aarch64"
ARCH_FOR_QQ="arm64"
elif [ "$1" = "loong64" ];then
ARCH="loong64"
ARCH_ANOTHERWAY="-loong64"
ARCH_FOR_QQ="loongarch64"
else
log.error "Err:Invalid Architecture"
exit 1
fi


function prepare(){
    download_link=$(curl -fs 'https://docs.qq.com/dop-api/opendoc?u&id=DVXNoRlpKaWhEY015&normal=1&noEscape=1&callback=clientVarsCallback' -H 'referer: https://docs.qq.com/doc/DVXNoRlpKaWhEY015' | grep -o "https:[0-9a-zA-Z\/\.\_\-]*\.deb" | grep --max-count 1 "_${ARCH_FOR_QQ}.deb")

    PKG_VER_UPSTREAM=$(echo ${download_link}| grep -oP 'linuxqq_\K[0-9]+\.[0-9]+\.[0-9]+-[0-9]+(?=_)')
    PKG_VER_APTSS=`get_version_from_source_list_file ${PKG_NAME}:${ARCH} /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore${ARCH_ANOTHERWAY}.list`

    compare_version ${PKG_VER_APTSS} ${PKG_VER_UPSTREAM}
    # Compare version will also give the value to $VERSION
    # Now we should have the $VERSION 
    if [ -e $VERSION ];then
    log.error "VERSION is empty. This should not happen! exit."
    fi
}




function build(){

pushd $STORE_APP_PATH

wget ${download_link} -O QQ.deb

if [ "${ARCH}" = "loong64" ];then
./repack-loongarch-to-loong.sh ./QQ.deb
#https://gitee.com/amber-ce/ace-host-package-creator/blob/master/repack-loongarch-to-loong.sh
else
mv -v QQ.deb ${PKG_NAME}_${VERSION}_${ARCH}.deb
fi
popd

}


prepare
build
write_json $STORE_APP_PATH

rm -rf $WORKDIR
