Уникальная группа
			
			
				
					
				
			
		- Статус
 - Оффлайн
 
- Регистрация
 - 18 Апр 2016
 
- Сообщения
 - 452
 
- Реакции
 - 256
 
Такс, простите если че, первая тема, не бейте пж (и за говнокод тож не баньте пжпж);
Кароч седня научу вас делать топ ботов 1337 на NodeJS;
1. Подготовка
Нам нужен буит сам NodeJS последенй версии, его качаем с офф сайта:
https://nodejs.org
Так же не лишним буит сайт с модулями:
https://www.npmjs.com
А еще скорее всего вам нужен буит сайт для проверки своих регулярок:
https://regexr.ru/
Ну и любой текстовый редактор (хоть блокнот), я лично юзаю Notepad++.
Качаем ноду, устанавливаем, там ничо сложного, дальше, чтоб проверить установлена ли нода, открываем консоль (терминал) и пишем
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Нам должно выдать текущую версию NodeJS на пк
	
	
		
			
		
		
	
	
		
	
		
	
Дальше нам нужны модули для работы с API ВКонтакте, можете написать свой если вы иллюминат (там ниче особо сложного нет, но все же)
Я юзаю модуль VK-IO и считаю его лучшим для работы с ВКонтакте, но есть аналог ввиде VK-Promise, с которого стартуют новички.
Чтоб установить правильно установить модули, создаем папку в любом удобном месте и называем ее типа TopBotInTheWorld.
Переходим туды с помощью
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
.
Такс, теперь ставим модули.
Пишем в консоль следующее:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Дальше в этой папке создаем файлик типа index.js или bot.js или vk.js (без разницы, я думаю вы поняли, что важно только расширение .js);
На этом этап подготовки окончен и мы приступаем к коду!
2. Кодим скелет
Открываем наш файлик.js и пишем туды
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
		
			
		
	
		
	
Скелет готов, дальше буим пилить функционал.
3. Первая команда.
Можно как нубы сделать if(message.text == '/start') { return message.send("вы крутой!11"); }, но мы же не нубы и темболее не говнокодеры, сделаем все топово.
Пишем простейшую функцию:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
дополняем наш листенер такими строками кода (после нашего if() пишем):
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
		
			
		
	
		
	
Собсна полноценный "слушатель команд" готов.
Пишем свою первую команду после листенера:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Логичный вопрос, а нахера мы пишем описание если мы его не юзаем? Ща заюзаем, сделаем команду /help :)
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
		
			
		
	
		
	
4. Запуск и тест бота:
Открываем опять консоль, переходим к папке (юзаем cd), прописываем node название_файла.js.
Все бот буит работать, но в случае критической ошибки он не перезапустит сам себя, для этого устанавливаем еще один модуль:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
И теперь запускаем нашего бота через 
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Собсна простой бот на NodeJS готов, если вам зайдет эта статья, сделаю чет поинтереснее (можем потрахаца с канвасом, сделать переводчика/прогноз погоды, а можем впихнуть игоры)
	
	
		
			
		
	
		
	
Source: https://pastebin.com/xusxFpe6
UPD. исправил 1 ссылку на сайт теста регулярок
UPD. 17.08.2018.
!!! ВНИМАНИЕ !!!
фикс ошибки TypeError: require(...) is not a constructor, так как мой любимый ВК-ИО обновился и перешел на 4-ю версию, мои гайды слегка устарели, чтобы не было больше вопросов ко мне в лс, напишу сразу фикс здесь.
Короче, чтоб пофиксить необходимо установить старый VK-IO, делается это следующим образом:
npm install vk-io@3.2.0
				
			Кароч седня научу вас делать топ ботов 1337 на NodeJS;
1. Подготовка
Нам нужен буит сам NodeJS последенй версии, его качаем с офф сайта:
https://nodejs.org
Так же не лишним буит сайт с модулями:
https://www.npmjs.com
А еще скорее всего вам нужен буит сайт для проверки своих регулярок:
https://regexr.ru/
Ну и любой текстовый редактор (хоть блокнот), я лично юзаю Notepad++.
Качаем ноду, устанавливаем, там ничо сложного, дальше, чтоб проверить установлена ли нода, открываем консоль (терминал) и пишем
			
				Код:
			
		
		
		node -v
	
	Я юзаю модуль VK-IO и считаю его лучшим для работы с ВКонтакте, но есть аналог ввиде VK-Promise, с которого стартуют новички.
- VK-IO | https://www.npmjs.com/package/vk-io
 - VK-Promise | https://www.npmjs.com/package/VK-Promise
 
Чтоб установить правильно установить модули, создаем папку в любом удобном месте и называем ее типа TopBotInTheWorld.
Переходим туды с помощью
			
				Код:
			
		
		
		cd C:\TopBotInTheWorld
	Такс, теперь ставим модули.
Пишем в консоль следующее:
			
				Код:
			
		
		
		npm install vk-io --save
npm install request
или
npm install vk-io --save;npm install request (типа в одну строку, мы молодцы)
	На этом этап подготовки окончен и мы приступаем к коду!
2. Кодим скелет
Открываем наш файлик.js и пишем туды
			
				Код:
			
		
		
		const vk = new (require('vk-io')),
request = require('request'),
BOTID = 1246544; // Здесь айди страницы бота
// Дальше подключаем токен
vk.setToken('token');
// и врубаем лонгпулл
vk.longpoll.start();
// Массив для будущих команд:
var commands = [];
// дальше пишем листенер месседжов
vk.longpoll.on('message' (message) => {
// Пишем простоейший фильтр от недочета ио (он имеет свойство отвечать на собственный месседжи)
if(message.user == BOTID) return;
});
	
	3. Первая команда.
Можно как нубы сделать if(message.text == '/start') { return message.send("вы крутой!11"); }, но мы же не нубы и темболее не говнокодеры, сделаем все топово.
Пишем простейшую функцию:
			
				Код:
			
		
		
		function command(_regex, _desc, _func) {
commands.push({r: _regex, f: _func, d: _desc}); // Прост красиво оформляем пуш значений в массив.
}
	
			
				Код:
			
		
		
		commands.map(function (cmd) {
if(!cmd.r.test(message.text))return; // посылаем, если регулярка не совпадает с месседжом
var params = message.text.match(cmd.r) || []; // создаем группы
params[0] = message; // так надо!1
cmd.f(message, params); // Передаем в функцию message и params, для дальнейшей работы с ними
});
	
	Собсна полноценный "слушатель команд" готов.
Пишем свою первую команду после листенера:
			
				Код:
			
		
		
		command(/^\/test/i, '/start -- проверка бота', function (message, params) {
return message.send("Привет, я работаю!");
});
	
			
				Код:
			
		
		
		command(/^\/help/i, 'none', function (message, params) {
return message.send("Команды бота:\n" + commands.filter(e => e.d != 'none').map(x => x.d).join("\n"));
});
	
	Открываем опять консоль, переходим к папке (юзаем cd), прописываем node название_файла.js.
Все бот буит работать, но в случае критической ошибки он не перезапустит сам себя, для этого устанавливаем еще один модуль:
			
				Код:
			
		
		
		npm install pm2 -g
	
			
				Код:
			
		
		
		pm2 start название_файла.js
	Собсна простой бот на NodeJS готов, если вам зайдет эта статья, сделаю чет поинтереснее (можем потрахаца с канвасом, сделать переводчика/прогноз погоды, а можем впихнуть игоры)
	Source: https://pastebin.com/xusxFpe6
UPD. исправил 1 ссылку на сайт теста регулярок
UPD. 17.08.2018.
!!! ВНИМАНИЕ !!!
фикс ошибки TypeError: require(...) is not a constructor, так как мой любимый ВК-ИО обновился и перешел на 4-ю версию, мои гайды слегка устарели, чтобы не было больше вопросов ко мне в лс, напишу сразу фикс здесь.
Короче, чтоб пофиксить необходимо установить старый VK-IO, делается это следующим образом:
npm install vk-io@3.2.0
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							
				
 Ну и шоб больше не было вопросов мне лс, написал фикс сюды, а в целом советую посмотреть доку нового вк-ио и переписать уже под него 