-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtwit_reserves.sh
63 lines (53 loc) · 1.72 KB
/
twit_reserves.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#====================================================#
# #
# Copyright (c) 2019 K, Kijinosippo #
# #
# This code is released under the MIT License. #
# http://opensource.org/licenses/mit-license.php #
# #
#====================================================#
# chinachuAPIアドレス
FQDN_OR_IP="127.0.0.1"
PORT="10772"
API_BASE="/api"
API_ENDPOINT="/reserves.json"
# BASIC認証を行うか
IS_BASIC=0
USER="user"
PASSWORD="password"
# 何時間後まで取得するか
RANGE=24
# リプライ先(空欄でも可能)
RE=""
# twit.jsのパス
TWIT_JS="/home/pi/chinachu/twit.js"
# 以下処理
echo Start process.
URL="http://${FQDN_OR_IP}:${PORT}${API_BASE}${API_ENDPOINT}"
if [ ${IS_BASIC} -eq 1 ]; then
URL="http://${USER}:${PASSWORD}@${FQDN_OR_IP}:${PORT}${API_BASE}${API_ENDPOINT}"
fi
TIME=$(date +%s)
RESERVES=$(curl -s ${URL})
RESERVES_LENGTH=$(echo $RESERVES | jq length)
TWEET=""
for i in $(seq 0 $((${RESERVES_LENGTH} - 1))); do
ITEM=$(echo ${RESERVES} | jq .[$i])
START=$(echo ${ITEM} | jq .start)
DELTA_SEC=$(($((${START} / 1000)) - $(date +%s)))
DELTA=$((${DELTA_SEC} / 3600))
if [ ${DELTA} -lt ${RANGE} ]; then
START_STR=$(date -d @$(($START / 1000)) +%H:%M)
TITLE=$(echo ${ITEM} | jq .title)
STR="${START_STR}${TITLE}/"
if [ $((${#RE} + ${#TWEET} + ${#STR})) -ge 135 ]; then
node ${TWIT_JS} "${RE}${TWEET:0:-1}"
TWEET=""
fi
TWEET="${TWEET}${STR}"
fi
done
if [ ${#TWEET} -gt 0 ]; then
node ${TWIT_JS} "${RE}${TWEET:0:-1}"
fi
echo Finished process.