29 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
## Предупреждаю сразу. Код может показаться плохим, и возможно, так оно и есть. Некоторые элементы переписываются со временем.
 | 
						||
 | 
						||
# godotbot
 | 
						||
Godette Bot for Godot Engine Russian community
 | 
						||
 | 
						||
Кармабот и бот-триггер в одном. Подсчитывает общую карму для всех заданных чатов, реагирует на кодовые наборы символов и отправляет в ответ сообщения из базы.
 | 
						||
 | 
						||
### Зависимости проетка:
 | 
						||
 | 
						||
- [node-telegram-bot-api](https://github.com/yagop/node-telegram-bot-api)
 | 
						||
- [Mongoose](https://mongoosejs.com/)
 | 
						||
 | 
						||
### Что нужно для запуска:
 | 
						||
 | 
						||
- MongoDB сервер
 | 
						||
- Docker не обязателен, можно запустить напрямую на основной машине, установив зависимости через `yarn install`
 | 
						||
 | 
						||
Также для запуска необходимо установить переменные среды:
 | 
						||
 | 
						||
- `MONGO_HOST` - адрес и порт сервера MongoDB. Без `mongodb://`. Создаётся база данных `godot`.
 | 
						||
- `TOKEN` - токен для доступа к Telegram Bot API
 | 
						||
- `NEW_CHATS` - ставится на первое время для того, чтобы в БД записалась информация о нужных чатах. Как только чаты появятся в `godot.chats`, можно перезапустить бота без данной переменной, и он не будет принимать сообщения из других чатов. Можно поставить `NEW_CHATS=1`, например.
 | 
						||
 | 
						||
В коллекцию `godot.triggers` желательно добавить по одной фразе для триггеров:
 | 
						||
- `tooFast` - слишком быстрые изменения кармы;
 | 
						||
- `selfLike` - самолайк;
 | 
						||
- `offtop` - применяется, если у данного чата есть отдельный чат для оффтопа, на который также надо будет указать ссылку. Пока делается напрямую в коде;
 | 
						||
- `docs` - кидает ссылку на поиск по документации. Можно вырезать целиком, если не нужно.
 | 
						||
- `karmaForMe` и `minusForMe` - изменения кармы для самого бота. |