#!/bin/bash

###### 檔案資訊 ######
#
# 檔名: send_messages
#
# 功能: 將檢測空間達到設定上限的資訊,
#       發送至各版本的 Skype / Google Meet 群組
#
###### 檔案資訊 ######

[ "$6" == "" ] && exec echo "Usage: $0 <MESSAGES_TYPE> <MESSAGES_LOG_NAME> <MESSAGES_TITLE> <TAG_NAME> <TIME_TYPE> <TIME_INTERVAL>"

MESSAGES_TYPE="$1"
MESSAGES_LOG_NAME="$2"
MESSAGES_TITLE="$3"
TAG_NAME="$4"
TIME_TYPE="$5"
TIME_INTERVAL="$6"

# 指定輸出的 LOG 檔
LOG_OUTPUT="/tmp/${MESSAGES_LOG_NAME}_monitor.log"
MESSAGES_OUTPUT="/tmp/${MESSAGES_LOG_NAME}_monitor_messages.log"

# 如果 gamerc 存在, 則載入它
[ -f ~/.gamerc ] && source ~/.gamerc

# 如果是非 Ctrl 架構請自行設定遊戲名稱跟國家名稱
[ -z "${GAME_TYPE}" ] && GAME_TYPE="非Ctrl架構, 自行設定"
[ -z "${COUNTRY_CODE}" ] && COUNTRY_CODE="非Ctrl架構, 自行設定"

# 如果有需要自訂或是修改顯示的遊戲與國家名稱, 請自行修正
[ "${GAME_TYPE}" == "AK" ] && GAME_TYPE_DISPLAY="M7" || GAME_TYPE_DISPLAY=${GAME_TYPE}
COUNTRY_CODE_DISPLAY=${COUNTRY_CODE_DISPLAY}

# API ROUTE 設定, 如果需要可自行修改
[ ! -z "${COUNTRY_CODE_DISPLAY}" ] && ROUTE=$(echo ${GAME_TYPE}-${COUNTRY_CODE_DISPLAY}) || ROUTE=$(echo ${GAME_TYPE}-${COUNTRY_CODE})
#ROUTE="INTERNAL-TEST"

# 舊的發送訊息 LOG 檔案如果存在, 則進行刪除
[ -f "${MESSAGES_OUTPUT}" ] && rm -rf ${MESSAGES_OUTPUT}

# 如果輸出的 LOG 檔案有內容, 則發送訊息到 API, 請機器人送群組
LOG_SIZE=$(stat --printf="%s" ${LOG_OUTPUT})

# 發送當下時間
DATETIME_OUTPUT=$(date +"%Y-%m-%d %T %Z")
DATETIME_FOR_TK=$(date +"%Y%m%d%H%M%S")

# 產生 Google Chat Thread Key
THREAD_KEY=$(google_chat_thread_generater_by_tag ${TAG_NAME} ${DATETIME_FOR_TK} ${TIME_TYPE} ${TIME_INTERVAL})

if [ "${LOG_SIZE}" -gt 0 ]; then
    # 首行變數化
    CHAT_BOT_TITLE=$(echo ${MESSAGES_LOG_NAME^^} | sed 's/_/ /g')
    # 發送訊息
    cat ${LOG_OUTPUT} > ${MESSAGES_OUTPUT}
    sed -i "1s/^/[${MESSAGES_TYPE}: ${MESSAGES_TITLE}]\n${DATETIME_OUTPUT}\n\n[${GAME_TYPE_DISPLAY}-${COUNTRY_CODE_DISPLAY}]\n/" ${MESSAGES_OUTPUT}
    MESSAGES=$(cat ${MESSAGES_OUTPUT})

    # 發送訊息
MESSAGE_GOOGLE_CHAT=$(printf "
{
  \"thread\": {
        \"threadKey\": \"${THREAD_KEY}\"
  },
  \"cards\": [
    {
      \"sections\": [
        {
          \"widgets\": [
            {
              \"image\": {
                \"imageUrl\": \"https://dlg.x-legend.tw/apk/new_update_m.jpg\",
              },
            },
            {
              \"textParagraph\": {
                \"text\": \"<b>[${CHAT_BOT_TITLE} NOTIFY]</b><br><b>${GAME_TYPE_DISPLAY}-${COUNTRY_CODE_DISPLAY}</b> <b><font color='#008000'>(${DATETIME_OUTPUT})</font></b><br><b><font color=
'#ff0000'>${MESSAGES}</font></b>\"
              }
            },
          ]
        }
      ]
    }
  ]
}
")
    # 送出資訊給 Google Chat Webhook
    curl -sS -X POST -H 'Content-Type: application/json' $GOOGLE_CHAT_WEBHOOK_URL_THREAD -d "${MESSAGE_GOOGLE_CHAT}"
fi
