gowherene — это веб-приложение, помогающее сингапурцам наносить на карту рекомендации по питанию, например http://thesmartlocal.com/read/cheap-food-orchard от thesmartlocal.
Эти популярные блоги не имеют карты для своих рекомендаций, поэтому я создал gowherene, чтобы визуализировать географическое расположение рекомендаций для более эффективного принятия решений.
Некоторые тщательно проверенные страницы с рекомендациями:
gowherene также может отображать адреса, а не только рекомендации! Пытаться:
Вам понадобится установленный Clojure CLI не ниже 1.10.1.727.
data
При анализе страницы для поиска информации об адресе код часто ссылается на data
или address-info
, карту:
ключ | ценить |
---|---|
:postal-code-loc | Местоположение (как в случае с гикори), где был найден почтовый индекс вместе с некоторой адресной информацией. |
:header-loc | Местоположение эвристически определенного заголовка для этого :postal-code-loc |
:place | Название этого места |
:address | Адрес этого места |
:latlng | Широта и долгота этого места |
В emacs выполните cider-jack-in
, затем в командной строке user>
выполните
user> (def server (start-gowherene))
... elided ...
#'user/server
А затем проверьте, что бэкэнд работает с помощью curl
:
curl -X GET 'http://localhost:3000/parse/?url=http://thesmartlocal.com/read/restaurants-with-no-gst' | jq
user> (.stop server)
Сделайте Cc MJ
и при появлении запроса введите figwheel-main
. Когда спросят о сборке, введите dev
Должна открыться вкладка браузера, указывающая на http://localhost:9500
.
Строить для производства
make
Это должно построить как бэкэнд, так и интерфейс.
DOCKER_BUILDKIT=1 docker build -t test .
GOWHERENE_DEBUG=1 java -cp target/gowherene.jar clojure.main -m gowherene.core
Вышеупомянутое должно запустить сервер на порту 3000.
С докером сделайте
docker run --rm --publish 3000:3000 --env PORT=3000 --env GOOGLE_API_TOKEN= < token > --env GOWHERENE_DEBUG=1 -it test
Чтобы запросить его,
curl -vv -X GET 'http://localhost:3000/parse/?url=http://thesmartlocal.com/read/restaurants-with-no-gst' | jq
Нажмите «Master», и render.com заберет его с GitHub и развернет.
Перейдите в netlify, перетащите target/dist
для загрузки.
Я ожидаю, что в gowherene
будут установлены следующие переменные среды.
ключ | ценить |
---|---|
:google-api-token | Токен API для API геокодирования Google Maps |
:port | Порт для запуска сервера (по умолчанию 3000). |
:gowherene-debug | Установите значение true , чтобы предотвратить автоматическое перенаправление на HTTPS через порт 443. |
Для разработки я использую файл .lein-env
в каталоге проекта, который выглядит так
{:google-api-token "xxx"
:gowherene-debug true}
.lein-env
работает даже без использования leiningen, потому чтоenviron
ищет этот файл.
Авторские права © 2022 Ackerleytng