Бот ВКонтакте (планируется версия для телеграма), который присылает открытку с otkritkiok каждое утро в 7:00 по времени сервера, кроме воскресенья и каникул. На винде не будет работать потому что кому нужна винда ахахаю.
Есть поддержка TypeScript! См. секцию сборка.
Обязательные требования:
- Node (самый новый, желательно от 2022)
- npm (любой из новых)
- git
Желательно также иметь cron
Node и npm можно установить с помощью nvm: nvm install --lts && nvm use --lts
- Клонируйте репозиторий локально:
git clone [email protected]:VityaSchel/goodmorning-bot.git
- Затем установите зависимости:
npm i
- Запустите сборку проекта с помощью TypeScript:
npm run build
После локального клонирования и любых изменений в коде (папка src), обязательно необходимо написать npm run build
для сборки проекта в папку out. Именно оттуда и будет запускаться скрипт out/index.js
- Заходим в богомерзкий вконтакте и создаем новое сообщество, от имени которого будет писать бот. В настройках разрешаем сообщения и разрешаем добавлять бота. Дальше в настройках сообщества заходим в раздел Работа с API и создаем ключ доступа, как его создать разберетесь сами.
- Вставляем ключ в файл
.env
(в корне репозитория) послеVK_API_ACCESS_TOKEN=
, этот файл должен будет выглядеть примерно так:
VK_API_ACCESS_TOKEN=5owvnyk7cppug1gtdo6nbl8lf21gqnrjqbvntiovhvpphpkxrm6lqh7llqakflzzulxaizdm7vxwevrqq1wuc
- Заходим на любой сайт открыток и парсим, должны получиться адреса png, jpeg или gif картинок, но на другие форматы никакой гарантии не даю, это на усмотрение вк апи (см. раздел загрузка файлов в докцментации вк).
- Открываем файл
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
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. Внутри файла также можно поменять категорию, в которой парсятся картинки и размер итогового списка.