Skip to content

Instantly share code, notes, and snippets.

@moroya
Last active December 14, 2015 05:49
Show Gist options
  • Select an option

  • Save moroya/5038236 to your computer and use it in GitHub Desktop.

Select an option

Save moroya/5038236 to your computer and use it in GitHub Desktop.
穏やかじゃないBot
// Node.jsで走らせるとよいよ三ε(๑^ᴗ^๑)з スイー
//
// node-twitterを利用してるから
// $ npm install twitter
//
// あと次回のアイカツ時間は手動で打ってるから、
// 実務で利用する場合はAPIで取得するようにしたほうが便利だと思う。
var twitter = require('twitter');
var BOT_ID = 'BOT_ID';
var bot = new twitter({
consumer_key : 'CONSUMER_KEY',
consumer_secret : 'CONSUMER_SECRET',
access_token_key : 'ACCESS_TOKEN_KEY',
access_token_secret : 'ACCESS_TOKEN_SECRET'
});
var dic = [
'まずオムライス食べな。',
'アイ!カツ!アイ!カツ!',
'らぶゆ〜♡',
'つぶやきにはご用心!',
'イケナイわね、懺悔しなさい!',
'See you next time!',
'持ち帰るのよ、おしゃもじをマイクに!',
'残酷な夢が夢で夢になるんだ',
'レジェンドと呼ばれる伝説のアイドル…',
'いちごはアイドルのにおいがする!',
'チケット5万枚は2秒で完売したそうよ',
'容疑者、確保!',
'人を惹きつける天性のスターの才能…',
'明日に向かって、Move on now!',
'今夜はクレープみたいな夢に包まれますように…',
'気やすく触れたら、ヤケドするわよ',
'だってあの崖、ぶっちゃけ死にかねない♪',
'穏やかじゃないわね、いちごからDVDの話が出るなんて…',
'穏やかじゃないわね…',
'ドラキュラ伯爵の血を引く吸血鬼の末裔よ!',
'光栄に思いなさい、ユリカ様に血を吸われることを…',
'そんなにユリカ様に血を吸われたいの?',
'青春してるとこ見られた!',
'お見通しなの(ばればれマミー)',
'女子の目は厳しいぞ?',
'リボンどれにしようかなっ そろそろやばっ!'
];
function aikatsuKakugen() {
return dic[Math.floor(Math.random() * dic.length)];
}
function seeYouNextWeek(nextTime) {
var now = new Date();
var nextAikatsu = new Date(nextTime);
var msec = nextAikatsu.getTime() - now.getTime();
var day = Math.floor(msec / (1000*60*60*24));
msec -= (day * (1000*60*60*24));
var hour = Math.floor(msec / (1000*60*60));
msec -= (hour * (1000*60*60));
var min = Math.floor(msec / (1000*60));
msec -= (min * (1000*60));
var sec = Math.floor(msec / 1000);
var msg = '';
if(day !== 0) msg += day + '日と';
if(hour !== 0) msg += hour + '時間';
if(min !== 0) msg += min + '分';
msg += sec + '秒だよ!';
return msg;
}
bot.stream('user', function(stream) {
stream.on('data', function(data) {
var id = ('user' in data && 'screen_name' in data.user) ? data.user.screen_name : null;
var text = ('text' in data) ? data.text.replace(new RegExp('^@' + BOT_ID + ' '), '') : '';
var ifMention = ('in_reply_to_user_id' in data) ? (data.in_reply_to_user_id !== null) : false;
var msg = ('text' in data) ? data.text.replace(/(^\s+)|(\s+$)/g, '') : '';
if(ifMention && msg === '@'+BOT_ID) {
bot.updateStatus('@' + id + ' 次回のアイカツ!まで、あと' + seeYouNextWeek('2013-03-04 19:30:00') + ' ' + aikatsuKakugen() , function(data){
// console.log(data);
});
}
console.log(('text' in data) ? data.text : '');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment