Чтение текстового файла HTML с жесткого диска не показывает результатов - PullRequest
0 голосов
/ 20 июня 2019

Мой бот посещает веб-сайт, загружает его источник просмотра и сохраняет его в текстовом файле (C: \ ViperBot \ GOW \ trooptable.txt).Я проверил файл, и он выглядит великолепно.Затем он создает персональный файл, который я буду использовать позже.Следующим шагом является чтение текстового файла и начало поиска информации, которую я хочу найти, и передача информации пользователю.

Я перепробовал все построчные программы чтения файлов и каждый из них.не показывает результатов, использую ли я message.channel.send или console.log.Все другие методы обработки файлов работают, за исключением случаев, когда пришло время прочитать файл.Что-то должно быть упущено, и я не знаю, что.

    else if (command === 'troop' || command === 'trp') {
        if (!args.length) {
            return message.channel.send(`${message.author} You must specify a search criteria.\nExample; To search for Abhorath:\n.troop abhorath\n.trp abh`);
        }
        let i = 0;
        let crit = '';

        for (i = 0; i < args.length; crit += args[i] + ' ', i++) {
        }

        crit = crit.slice(0, crit.length - 1);

        message.channel.send(`I got your troop request for ${crit}.`);


        message.channel.send('Parsing...');

        let file = fs.createWriteStream("C:/ViperBot/GOW/trooptable.txt");
        let request = http.get("http://gowdb.com/trooptable", function (response) {
            response.pipe(file);
        });

        message.channel.send('Finished');
        fs.writeFile(`C:/ViperBot/GOW/tmp${message.author.username}.txt`, 'Michael Luna', function (err) {
            if (err) throw err;
        });
        message.channel.send(`File created: tmp${message.author.username}.txt`);

        var stream = fs.createReadStream('C:/ViperBot/GOW/trooptable.txt');
        stream = byline.createStream(stream);

        stream.on('readable', function() {
            var line;
            while (null !== (line = stream.read())) {
                message.channel.send(line);
                message.channel.send('Is anything happening?');
            }
        });

    }

Этот последний метод использует модуль, называемый byline.Все комментарии говорят, что это прекрасно работает.Я использовал каждую строку, которую нашел, и все они не дают результатов.

Все, о чем я могу думать, - это то, что я не делаю.Консоль не показывает ошибок.Бот не останавливается.Он просто не возвращает вывод и возвращается к ожиданию ввода чата.

message.channel.send('Is anything happening?');

Я вставил приведенный выше код только для того, чтобы увидеть, произнесет ли он это, но это не так.Итак, что-то вычисляется, что нет строк для чтения.

Первая строка текстового файла не пуста.Он отформатирован точно так, как выглядело бы, если бы вы сделали источник просмотра в браузере.

...