Created
December 20, 2014 04:50
-
-
Save bouzuya/6d1771b5d7dfa636a6f1 to your computer and use it in GitHub Desktop.
Hubot Advent Calendar 2014 からリンクをつくる
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// npm install request-b cheerio | |
var request = require('request-b'); | |
var cheerio = require('cheerio'); | |
var formatTexts = function(items) { | |
return items.map(function(item) { | |
var t = item.title.replace(/ - Qiita$/, ''); | |
var d = (item.day < 10 ? '0' + item.day : '' + item.day); | |
return '[' + t + '][hubot-adventar-2014-' + d + ']'; | |
}).join('\n'); | |
}; | |
var formatLinks = function(items) { | |
return items.map(function(item) { | |
var d = (item.day < 10 ? '0' + item.day : '' + item.day); | |
return [ | |
'[hubot-adventar-2014-' + d + ']:', | |
item.url | |
].join(' '); | |
}).join('\n'); | |
}; | |
var url = 'http://www.adventar.org/calendars/384' | |
request(url).then(function(r) { | |
var $ = cheerio.load(r.body); | |
var items = []; | |
$('.mod-entryList .mod-entryList-body').each(function(index) { | |
var e = $(this); | |
var day = (index + 1); | |
var title = e.find('.mod-entryList-title').text(); | |
var url = e.find('.mod-entryList-url a').attr('href'); | |
var item = { | |
day: day, | |
title: title, | |
url: url | |
}; | |
items.push(item); | |
}); | |
console.log(formatTexts(items)); | |
console.log(); | |
console.log(formatLinks(items)); | |
}); | |
// Sample Output: | |
// | |
// [Hubot / ChatOps とは][hubot-adventar-2014-01] | |
// [Hubot のインストール][hubot-adventar-2014-02] | |
// [Hubot を Heroku で動かして Slack から話す][hubot-adventar-2014-03] | |
// [Hubot スクリプトを追加インストールしよう & 自分だけの Hubot スクリプトをつくろう][hubot-adventar-2014-04] | |
// [Hubot で docomo 「雑談対話」API を使う — “敬称”を Hubot コマンドに | 半月記][hubot-adventar-2014-05] | |
// [簡単な Hubot スクリプトをゼロからつくろう][hubot-adventar-2014-06] | |
// [簡単な Hubot スクリプトをもっとつくろう (おみくじ系)][hubot-adventar-2014-07] | |
// [carrierモジュールで雑にHubotからコマンドを打つ - killed_by?(Charity)][hubot-adventar-2014-08] | |
// [スクレイピングする Hubot スクリプトをつくろう][hubot-adventar-2014-09] | |
// [Hubot でホームページをつくろう][hubot-adventar-2014-10] | |
// [Hubot スクリプトの読み込み処理を読んでみよう][hubot-adventar-2014-11] | |
// [研究室でHubot使ってる話][hubot-adventar-2014-12] | |
// [hubot-slack アダプタ v2 から v3 へ | 半月記][hubot-adventar-2014-13] | |
// [Slack と Qiita:Team を使って気楽に日報 #qiita_hackathon - ja.ngs.io][hubot-adventar-2014-14] | |
// [我が家を支えるChatOps - 恥知らずのウェブエンジニア][hubot-adventar-2014-15] | |
// [設定を読み込む Hubot スクリプトをつくろう][hubot-adventar-2014-16] | |
// [Hubotで「どのコマンドにも一致しない」ときの処理][hubot-adventar-2014-17] | |
// [robot.brain を使った Hubot スクリプトをつくろう][hubot-adventar-2014-18] | |
// [robot.brain を永続化する Hubot スクリプトをつくろう][hubot-adventar-2014-19] | |
// [][hubot-adventar-2014-20] | |
// | |
// [hubot-adventar-2014-01]: http://qiita.com/bouzuya/items/c7d0ad80c357aab6b696 | |
// [hubot-adventar-2014-02]: http://qiita.com/bouzuya/items/11c0c6da2b3ad54b827f | |
// [hubot-adventar-2014-03]: http://qiita.com/bouzuya/items/2a200c9e8a45e2478bc2 | |
// [hubot-adventar-2014-04]: http://qiita.com/bouzuya/items/4c0206d72ff22ade9339 | |
// [hubot-adventar-2014-05]: http://pasero.net/~mako/blog/s/685 | |
// [hubot-adventar-2014-06]: http://qiita.com/bouzuya/items/4e051f68f8d68a2944b0 | |
// [hubot-adventar-2014-07]: http://qiita.com/bouzuya/items/2e935c99647b93d8ee1d | |
// [hubot-adventar-2014-08]: http://udzura.hatenablog.jp/entry/2014/12/08/182744 | |
// [hubot-adventar-2014-09]: http://qiita.com/bouzuya/items/587c4e920151342e6f1d | |
// [hubot-adventar-2014-10]: http://qiita.com/bouzuya/items/8e8ee8e2e8f83513ad35 | |
// [hubot-adventar-2014-11]: http://qiita.com/bouzuya/items/3e239bc530e7c2c3a26c | |
// [hubot-adventar-2014-12]: http://qiita.com/hiconyan/items/3e5481a61657890624dc | |
// [hubot-adventar-2014-13]: http://pasero.net/~mako/blog/s/689 | |
// [hubot-adventar-2014-14]: http://ja.ngs.io/2014/12/14/hubot-qiita/ | |
// [hubot-adventar-2014-15]: http://youngforever.hatenablog.com/entry/2014/12/15/113236 | |
// [hubot-adventar-2014-16]: http://qiita.com/bouzuya/items/d65a394cac9e76b56d3d | |
// [hubot-adventar-2014-17]: http://qiita.com/hiconyan/items/baf6ac56129a26d8ac0c | |
// [hubot-adventar-2014-18]: http://qiita.com/bouzuya/items/d5fd0ef9a8cb100933f4 | |
// [hubot-adventar-2014-19]: http://qiita.com/bouzuya/items/ae1cb5610a64794bc522 | |
// [hubot-adventar-2014-20]: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment