hubot-hatena-counting
Notify and Respond Count Up/Down images from Hatena Counting.
Demo
Installation
npm install @moqada/hubot-hatena-counting --save
Then add @moqada/hubot-hatena-counting to your external-scripts.json
:
["@moqada/hubot-hatena-counting"]
Sample Interaction
User> hubot counting
Hubot>
https://i.gyazo.com/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.png
User> hubot counting add http://counting.hatelabo.jp/count/xxxxxx
Hubot>
Added: http://counting.hatelabo.jp/count/xxxxxx
User> hubot counting list
Hubot>
http://counting.hatelabo.jp/count/yyyyyy
http://counting.hatelabo.jp/count/xxxxxx
User> hubot counting delete http://counting.hatelabo.jp/count/xxxxxx
Hubot>
Deleted: http://counting.hatelabo.jp/count/xxxxxx
User> hubot counting add http://counting.hatelabo.jp/count/xxxxxx
Hubot> Added: http://counting.hatelabo.jp/count/xxxxxx
User> hubot counting list
Hubot> http://counting.hatelabo.jp/count/xxxxxx
User> hubot counting periods
Hubot>
CountUp:
- 100d
- 500d
- 1000d (rootine)
- 1y (rootine)
CountDown:
- 0d
- 1d
- 2d
- 3d
- 4d
- 5d
- 10d
- 50d (rootine)
Commands
hubot counting - List registered counter images
hubot counting list - List registered counter urls
hubot counting [add|register] <url> - Register counter
hubot counting [del|delete] <url> - Delete registered counter
hubot counting periods - List configured periods
Configurations
HUBOT_HATENA_COUNTING_GYAZO_TOKEN - Gyazo API Token (requirement)
HUBOT_HATENA_COUNTING_COUNTDOWN_PERIODS - Notification periods for count down (ex. 0d,1d,2d,3d,4d,5d,10d,*/50d)
HUBOT_HATENA_COUNTING_COUNTUP_PERIODS - Notification periods for count up (ex. 100d,500d,*/1000d,*/1y)
HUBOT_HATENA_COUNTING_SCHEDULE - Notification schedule (ex. '0 9 * * *')
HUBOT_HATENA_COUNTING_ROOM - Target chat room id
HUBOT_HATENA_COUNTING_MESSAGE_NO_COUNTERS - Message of no counters
HUBOT_HATENA_COUNTING_MESSAGE_NO_PERIODS - Message of no periods
Tips
Garbled characters (文字化け)
Sometimes, generated images includes garbled characters.
You may fix this problem putting .fonts
directory and font files into your Hubot repository.
More details, see this article.
Scheduled notification
You can automate to notify images on specific day. you need to set following Configurations.
HUBOT_HATENA_COUNTING_COUNTDOWN_PERIODS='0d,1d,2d,3d,4d,5d,10d,*/50d'
HUBOT_HATENA_COUNTING_COUNTUP_PERIODS='100d,500d,*/1000d,*/1y'
HUBOT_HATENA_COUNTING_SCHEDULE='0 9 * * *'
HUBOT_HATENA_COUNTING_ROOM='<foo>@conference.<bar>.xmpp.slack.com'
This means are...
- Notify every 9 o'clock if there are target counters.
- Notify to room (
<foo>@conference.<bar>.xmpp.slack.com
). - target counters are decided following conditions.
- count down: that day, prev day, 2-5 days before, 10 days before, every 50 days
- count up: 100 days, 500 days, every 1000 days, every 1 year
Alias
hubot-alias is useful scripts if you want to replace command (ex. hubot counting
to hubot 記念日
).
User> hubot alias 記念日=counting
User> hubot 記念日
Hubot>
https://i.gyazo.com/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.png
Related
Greatly inspired from this article.