Skip to content

Бот ВКонтакте (планируется версия для телеграма), который присылает открытку с otkritkiok каждое утро в 7:00 по времени сервера, кроме воскресенья и каникул.

Notifications You must be signed in to change notification settings

VityaSchel/goodmorning-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Доброе утро и чудесного дня!

Бот ВКонтакте (планируется версия для телеграма), который присылает открытку с otkritkiok каждое утро в 7:00 по времени сервера, кроме воскресенья и каникул. На винде не будет работать потому что кому нужна винда ахахаю.

Preview

Есть поддержка TypeScript! См. секцию сборка.

Требования

Обязательные требования:

  • Node (самый новый, желательно от 2022)
  • npm (любой из новых)
  • git

Желательно также иметь cron

Node и npm можно установить с помощью nvm: nvm install --lts && nvm use --lts

Установка

  1. Клонируйте репозиторий локально:
git clone git@github.com:VityaSchel/goodmorning-bot.git
  1. Затем установите зависимости:
npm i
  1. Запустите сборку проекта с помощью TypeScript:
npm run build

Сборка

После локального клонирования и любых изменений в коде (папка src), обязательно необходимо написать npm run build для сборки проекта в папку out. Именно оттуда и будет запускаться скрипт out/index.js

Использование

  1. Заходим в богомерзкий вконтакте и создаем новое сообщество, от имени которого будет писать бот. В настройках разрешаем сообщения и разрешаем добавлять бота. Дальше в настройках сообщества заходим в раздел Работа с API и создаем ключ доступа, как его создать разберетесь сами.
  2. Вставляем ключ в файл .env (в корне репозитория) после VK_API_ACCESS_TOKEN=, этот файл должен будет выглядеть примерно так:
VK_API_ACCESS_TOKEN=5owvnyk7cppug1gtdo6nbl8lf21gqnrjqbvntiovhvpphpkxrm6lqh7llqakflzzulxaizdm7vxwevrqq1wuc
  1. Заходим на любой сайт открыток и парсим, должны получиться адреса png, jpeg или gif картинок, но на другие форматы никакой гарантии не даю, это на усмотрение вк апи (см. раздел загрузка файлов в докцментации вк).
  2. Открываем файл config/pictures.txt и вставляем список адресов, 1 адрес = 1 строка.

Бот при каждом запуске будет использовать самую первую строку в файле config/pictures.txt и перемещать ее в конец файла config/used.txt. Если вам не нужен файл config/used.txt, вы можете поставить в файле конфига config/bot.json значение "removeUsed": true и тогда бот будет просто удалять использованные изображения из начала файла.

Запуск

Для теста:

npm start

Строчка, которую нужно добавить в cron (команда crontab -e) для запуска скрипта каждый день в 7:00 по серверному времени. Серверное время значит не ваше местное время!!! Если у сервера московский часовой пояс, а вы живете в самарочке, надо поставить цифру 6 вместо 7!

0 7 * * * /usr/local/bin/node /path/to/repo/goodmorning-bot/out/index.js > /dev/null

⚠️ У вас может быть установлен nodejs по другому пути, обязательно проверьте путь установки командой which node ⚠️

Конфиг

Файл config/bot.json содержит следующие параметры:

Ключ Значение по-умолчанию Описание
removeUsed false Если true, использованные изображения не перемещаются из файла pictures.txt в used.txt
paused false Если true, бот приостановлен и не будет работать (для отпуска или каникул или чего угодно)
fixedImage null Адрес фиксированного изображения, которое будет показываться, игнорируя файл pictures.txt
vkPeerID 2000000000 ID беседы вконтакте от имени сообщества

Быстрый парсинг открыток

Запустите файл utils/scrapePostcards.js командой node utils/scrapePostcards.js чтобы быстро получить список форматированных url с открытками с сайта otrkitkiok. Внутри файла также можно поменять категорию, в которой парсятся картинки и размер итогового списка.

About

Бот ВКонтакте (планируется версия для телеграма), который присылает открытку с otkritkiok каждое утро в 7:00 по времени сервера, кроме воскресенья и каникул.

Topics

Resources

Stars

Watchers

Forks