みんなのちからになりたい

コピペでブログラムつくっていきたい

Hubotで電車の運行情報をしゃべらせる

Yahooの運行情報を取得してきてHubotにしゃべらせるScript作ってSlackの社内チャンネルに入れてる。
こんな感じ。

cheerio = require 'cheerio-httpcli'

module.exports = (robot) ->

  robot.respond /電車/i, (msg) ->

    # send HTTP request
    baseUrl = 'http://transit.loco.yahoo.co.jp/traininfo/gc/13/'

    cheerio.fetch baseUrl, (err, $, res) ->
      if $('.elmTblLstLine.trouble').find('a').length == 0
        msg.send "事故や遅延情報はないぜ"
        return
      $('.elmTblLstLine.trouble a').each ->
        url = $(this).attr('href')
        cheerio.fetch url, (err, $, res) ->
          title = "◎ #{$('h1').text()} #{$('.subText').text()}"
          result = ""
          $('.trouble').each ->
            trouble = $(this).text().trim()
            result += "- " + trouble + "\r\n"
          msg.send "#{title}\r\n#{result}"

cronとかで1時間毎とか出勤退勤時刻に15分間隔くらいで流してもたのしいかもしれない。