我目前正在使用node.js创建一个IRC bot.机器人允许用户将歌曲链接添加到数据库.每当有人提交一首歌曲时,它就会被添加到新的"shuffle.txt"行中:
user1,The Beatles,Yesterday,(youtube link) user2,The Rolling Stones,Angie,(youtube link) user1,The Bealtes,Yellow Sumbarine,(youtube link)
请注意,user1在最新添加的内容中输错了一些信息.我正在尝试制作UNDO命令,以便用户可以删除最近输入的行.我打算通过在shuffle.txt中查找最新出现的名称并删除它所找到的整行来做到这一点.这是我的消息监听器:
bot.addListener('message', function(from, to, message) { if (message.indexOf(config.prefix) == 0) { message = message.slice(1); var token = message.split(" "); if (token[0] == 'undo') { //find and delete } } });
输入命令的用户存储为 from
我假设我必须按照以下方式做点什么:
var songList = fs.readFileSync('shuffle.txt', 'utf8'); var position = songList.indexOf(from); if (position != -1) { //if 'from' found //find LAST occurrence of 'from' //get length from here to next occurrence of '\n' //substr(length + 1) fs.writeFile('shuffle.txt', songList, function(err) { if (err) { console.log (err); } }
我是JavaScript新手,这是我第一次使用node.js,所以我可以使用任何帮助!感谢大家.
编辑:我还应该指出,我不需要命令识别方面的帮助.我只需要查找/删除部分的帮助.干杯!