Skip to content

Instantly share code, notes, and snippets.

@suneo3476
Created April 21, 2014 16:46
Show Gist options
  • Save suneo3476/11148415 to your computer and use it in GitHub Desktop.
Save suneo3476/11148415 to your computer and use it in GitHub Desktop.
https://gist.github.com/suneo3476/11142718 でcallback処理を書き直したもの
module.exports.pattern = '^.?@%me% .+';
module.exports.main = function(twi, data, cfg){
console.log('JIKANWARI called');
var BOT_ID = cfg.my_screen_name;
var twUserId = data.user.screen_name;
var keyword = data.text.replace(new RegExp('^.?@' + BOT_ID + ' '), '');
//keywordで検索した結果がコールバック関数の引数replyStrとして返ってきます
search(keyword, function(replyStr){
twi.updateStatus('@' + twUserId + ' ' + replyStr + '', function (error,data) {
if(!(error && error.statusCode)){
console.log('updateStatus done');
}else{
console.log(error);
console.log('updateStatus failed');
}
});
});
function search(keyword, callback) {
var csv = require('ya-csv');
var reader = csv.createCsvFileReader('./commands/jikanwari/jikanwari.csv');
var data = [];
var terms = ['前期','後期'];
var term = '前期';//hard-cording TODO
var days = ['日','月','火','水','木','金','土'];
var day = days[(new Date()).getDay()] + '曜';
reader.on('data', function(record) {
data.push(record);
}).on('end', function() {
var result = [];
//一致したものをresultにつめて
for(var i = 1; i < data.length; i++){
if( data[i][3] != term) continue; // 学期フィルタ
if( data[i][4] != day ) continue; // 曜日フィルタ
if( (new RegExp('' + keyword.replace(/\W/g,'\\$&') + '').test(data[i][0])) )
result.push(data[i].join(' '));
}
//コールバック!
if(result.length > 0 )
callback(result.join(' | '));
else
callback('???');
});
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment