#!/bin/bash

function upload_to_highload () {
    api_login=$1
    api_key=$2
    filepath=$3

    filepath=$( readlink -f "$filepath" )
    echo "filepath: $filepath" >&2

    filesize=$(stat -c%s "$filepath")
    echo "filesize: $filesize" >&2

    # filesha256=$( sha256sum "$filepath")
    # filesha256=${filesha256%% *}

    # echo "filesha256 $filesha256" >&2

    upload_server=$(curl -s -X GET "https://api.highload.to/file/ul?login=$api_login&key=$api_key" -H "Content-Type: application/json")
    echo "Upload_URL $upload_server" >&2
    upload_server=$(echo $upload_server | jq ".result")
    upload_server=$(echo $upload_server | jq ".url")
    upload_server=${upload_server//\"}
    echo "Location: $upload_server"  >&2

    hoster_url=$(curl -X POST -F login=$api_login -F key=$api_key -F "file=@\"$filepath\"" $upload_server)

    echo "hoster_url: $hoster_url"  >&2

    hoster_url=$(echo $hoster_url | jq ".result")
    # hoster_filename=$(echo $hoster_url | jq ".name")
    # hoster_url=$(echo $hoster_url | jq ".[0]")
    hoster_url=$(echo $hoster_url | jq ".id")
    hoster_url=${hoster_url//\"}
    hoster_url="https://highload.to/f/$hoster_url"
    >&2 echo "hoster_url: $hoster_url"

    if [ "$hoster_url" != "" ] && [ "$hoster_url" != "null" ] && [ "$hoster_url" != "https://highload.to/f/" ]; then
        echo "$hoster_url"
    else
        echo ""
    fi
}

function highload_check_if_file_is_alive () {
    api_login=$1
    api_key=$2
    file_url=$3

    >&2 echo "file_url: $file_url"

    # file_id=${file_url%/*}
    # >&2 echo "File ID: $file_id"
    file_id=${file_url##*/}
    >&2 echo "File ID: $file_id"

    >&2 echo "URL to call: https://api.highload.to/file/info?file=$file_id&login=$api_login&key=$api_key"

    response=$(curl -s -X GET "https://api.highload.to/file/info?file=$file_id&login=$api_login&key=$api_key" -H "Content-Type: multipart/form-data")
    >&2 echo "Response: $response"

    is_alive=$(echo $response | jq ".result")
    is_alive=$(echo $is_alive | jq ".[0]")
    # is_alive=$(echo $is_alive | jq "first(.[])")
    is_alive=$(echo $is_alive | jq ".status")

    # >&2 echo $is_alive

    if [ "$is_alive" -eq "404" ]; then
        echo "false"
    else
        echo "true"
    fi
}
