Last active
December 14, 2015 05:49
-
-
Save moroya/5038236 to your computer and use it in GitHub Desktop.
穏やかじゃないBot
This file contains hidden or 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
| // 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