Как получить комнату в Берлине, используя Firestore + Google Functions + Google Scheduler
Table Of Content
Первая часть этой серии постов была о создании инструмента парсинга на NodeJS, который позволял нам отправлять сообщение владельцу по шаблону.
Основная проблема, возникающая с таким подходом, заключается в том, чтобы иметь скрипт, работающий 24 часа в сутки. Возможностью является развертывание его на бесплатной виртуальной машине или использование выделенного Raspberry Pi, но оба варианта подразумевают мониторинг, настройку, развертывание и т. д.
В этом случае я использую альтернативу:
- Firestore для хранения данных
- Cloud Functions для скрипта
- Cloud Scheduler для повторения
Целью является иметь также бесплатную альтернативу, поэтому я оставлю это простым.
Предварительные требования
- Иметь учетную запись Google Cloud. https://console.cloud.google.com
- Установленный и настроенный Firebase CLI: https://github.com/firebase/firebase-tools
Приступим
Создание и настройка проекта Firebase
- Дайте вашему проекту понятное название
- В этом случае Google Analytics необязателен
-
После создания проекта пришло время создать базу данных для хранения данных. Мы будем использовать Firestore для этого.
-
Перейдите в раздел "База данных"
- Начните в тестовом режиме, чтобы разрешить быструю запись
- Установите правильное местоположение. Для Wg-gesucht лучше всего разместить его в Европе:
- После создания базы данных Firestore пришло время создать коллекцию для хранения данных.
Клонирование и развертывание функции
Теперь нам нужно развернуть функции, чтобы начать парсинг и отправку сообщений владельцам. Функции находятся в этом репозитории. Чтобы развернуть их в проекте, вы можете:
git clone [https://github.com/juancruzmartino/wg-gesucht-scrapper-firebase](https://github.com/juancruzmartino/wg-gesucht-scrapper-firebase)
Измените FILTER_URL и credentials внутри index.js перед продолжением.
cd functionsnpm installcd ..firebase deploy —YOUR-PROJECT-ID
Настройка планировщика Google
- Настройте парсер:
-
Замените URL, чтобы он соответствовал идентификатору вашего проекта.
-
Сделайте то же самое для функции автоматического бронирования:
С этого момента скрипты должны выполняться каждые 5 минут, получая все новые комнаты, соответствующие вашему фильтру, и отправляя сообщение владельцу с использованием указанных шаблонов.
Вы можете изменить частоту выполнения или отключить функции по мере необходимости.