@eHoTuK1488

Не получается сделать таймер Node JS, как сделать?

в общем суть скрипта такова, он должен отвечать в беседе на сообщения пользователя которого указан ID в скрипте текстом из текстового документа. Реализовать это смог но не могу сделать таймер на ответ, к примеру человек написал любое слово а бот ему должен через определенное время ему отвечать а не сразу либо рандомно по времени чтобы сделать вид как будто пишет человек(что-то вроде автоответчика) помогите сделать, буду благодарен))) А если еще и поможете сделать чтобы был вид типо человек печает по методу messages.setActivity то цены вам не будет))
const { VK, keyboard } = require('vk-io');
const vk = new VK();
const rq = require("prequest");
const { api } = vk;
const fs = require("fs");
const acc = require("./base/acc.json");

var ls_arr = fs.readFileSync('ls.txt').toString().split("\n");


vk.setOptions({ token: 'сюда токен'});
const { updates, snippets } = vk;

updates.startPolling();
console.log(`Хелло Ворлд`)

updates.on('message', async (message) => {
	if(message.senderId == 581661789) return;
	var a = message.senderId;
		if(a == сюда айди жертвы без скобок)
		{
				acc.ls++;
	console.log(acc.ls);
	return message.reply(ls_arr[acc.ls%ls_arr.length]);

}
});

setInterval(function(){
	fs.writeFileSync("./base/acc.json", JSON.stringify(acc, null, "\t")) 
}, 3500);
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@cython
Перед отправкой вызываете метод api messages.setActivity, который будет 10 держаться 10 секунд.
Далее:
setTimeout(() => {
  message.reply("Ответ");
}, Math.floor(Math.random() * Math.floor(10))); // Рандомное число от 0 до 10

Также непонятно, зачем вы делаете интервал на 3,5 секунд, в котором синхронно записываете в json, лучше выполнять запись асинхронно и после каждого сообщения, или после каждых N сообщений.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы