我目前正在使用 node.js 创建一个 IRC 机器人。该机器人允许用户将歌曲链接添加到数据库中。每次有人提交一首歌曲时,它都会添加到“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,因此我可以使用可以获得的任何帮助!感谢大家。
编辑:我还应该指出,我不需要命令识别方面的帮助。我只需要查找/删除部分的帮助。干杯!