@moqada/hubot-hatena-counting

1.0.2 • Public • Published

hubot-hatena-counting

NPM version Build Status Dependency Status DevDependency Status License

Notify and Respond Count Up/Down images from Hatena Counting.

🕑 Support Scheduled notifications.

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.

Package Sidebar

Install

npm i @moqada/hubot-hatena-counting

Weekly Downloads

1

Version

1.0.2

License

MIT

Last publish

Collaborators

  • moqada