|
verifyCmd() { |
|
for cmd in ${@}; do |
|
if [ -z "$(which $cmd)" ]; then |
|
echo "$cmd not found in PATH: $PATH" |
|
return 1 |
|
fi |
|
done |
|
} |
|
|
|
GOOGLE_BUCKET_ID= # |
|
APP_PACKAGE= # |
|
SLACK_URL= # |
|
DIR=$(cd $(dirname $0); pwd) |
|
|
|
verifyCmd "gsutil" "awk" "curl" "jq" "nkf" "mktemp" "comm" || exit 1 |
|
|
|
backupdir=_back |
|
mkdir ${backupdir} |
|
if [ $? -ne 0 ]; then |
|
echo "[$(date)] Failed to create a backup directory: ${backupdir}. It might indicate the previous execution failed." |
|
exit 1 |
|
fi |
|
|
|
if [ ! -z $(ls -1 *.csv | head -n 1) ]; then |
|
cp *.csv ${backupdir} || exit 1 |
|
fi |
|
|
|
echo "...Retrieving reviews." |
|
gsutil -m cp -r "gs://${GOOGLE_BUCKET_ID}/reviews/reviews_${APP_PACKAGE}_*" . |
|
if [ $? -ne 0 ]; then |
|
echo "[$(date)] Failed to download the latest reviews." |
|
exit 1 |
|
fi |
|
|
|
echo "...Looking for and posting new reviews." |
|
i=0 |
|
$DIR/printNewReviews.sh ${backupdir} . | awk -F "," '{print $7 "," $9 "," $10 "," $11 "," $15}' | while read src; do |
|
datetime=$(echo $src | awk -F "," '{print $1}') |
|
star_count=$(echo $src | awk -F "," '{print $2}') |
|
star="" |
|
for (( i = 0; i < 5; i++ )); do |
|
if [[ i -lt star_count ]]; then |
|
star+="★" |
|
else |
|
star+="☆" |
|
fi |
|
done |
|
color="danger" |
|
if [[ $star_count = 5 ]] || [[ $star_count = 4 ]]; then |
|
color="good" |
|
elif [[ $star_count = 3 ]] || [[ $star_count = 2 ]]; then |
|
color="warning" |
|
else |
|
color="danger" |
|
fi |
|
title=$(echo $src | awk -F "," '{print $3}') |
|
text=$(echo $src | awk -F "," '{print $4}') |
|
review_url=$(echo $src | awk -F "," '{print $5}') |
|
msg=$(echo \"${star}\\n\<${review_url}\|${title:-"(タイトルなし)"}\>\\n\\n${text:-"(本文なし)"}\\n${datetime} \<${review_url}\|レビューに返信\>\" | jq -a '.') |
|
curl -X POST --data-urlencode "payload={ |
|
\"channel\": \"#android-review\", |
|
\"username\": \"Android-Review\", |
|
\"icon_emoji\": \":android:\", |
|
\"attachments\": [ |
|
{ |
|
\"fallback\": ${msg}, |
|
\"text\": ${msg}, |
|
\"color\": \"${color}\" |
|
} |
|
] |
|
}" $SLACK_URL |
|
if [ $? -ne 0 ]; then |
|
echo "[$(date)] Failed to post to the Slack. src: ${src}" |
|
exit 1 |
|
else |
|
printf "Num Posted: %d\r" $i |
|
fi |
|
i=$(expr $i + 1) |
|
done |
|
|
|
if [ $? -ne 0 ]; then |
|
echo "[$(date)] Failed to diff old and new reviews." |
|
else |
|
echo "...Done!" |
|
fi |
|
|
|
rm -rf ${backupdir} |
|
exit $? |