| config | ||
| src | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
Доброе утро и чудесного дня!
Бот ВКонтакте (планируется версия для телеграма), который присылает открытку с otkritkiok каждое утро в 7:00 по времени сервера, кроме воскресенья и каникул. На винде не будет работать потому что кому нужна винда ахахаю.
Есть поддержка TypeScript! См. секцию сборка.
Требования
Обязательные требования:
- Node (самый новый, желательно от 2022)
- npm (любой из новых)
- git
Желательно также иметь cron
Node и npm можно установить с помощью nvm: nvm install --lts && nvm use --lts
Установка
- Клонируйте репозиторий локально:
git clone git@github.com: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
⚠️ У вас может быть установлен 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. Внутри файла также можно поменять категорию, в которой парсятся картинки и размер итогового списка.
