Плагин Locations 🌍

Этот плагин остаётся без финансирования, поэтому его будущее под вопросом. Однако на данный момент я добавил следующее:

@viddekla, это должно решить вашу проблему.

Если вы считаете Locations отличным плагинном и что я хорошо поработал, вы можете поддержать меня чашкой кофе :coffee:

5 лайков

Следует добавить новую кнопку «Быстрый поиск текущего местоположения», чтобы она работала и для локаций тем, если отключить поля ввода местоположения. :+1:

Нужна лишь небольшая правка стилей …

4 лайка

Важное исправление ошибки, пожалуйста, обновитесь:

(касается только локаций пользователей, введенных с момента патча в эти выходные — просто введите их снова)

4 лайка

Отличная работа! Я вижу дополнительный сломанный флаг под именем пользователя. Есть идеи, почему это происходит?

2 лайка

Это заставляет меня подумать, что это из Locations Plugin 🌍.

5 лайков

Да, теперь запускать оба плагина больше не нужно. В плагине Locations определение кода страны тривиально, так почему бы не добавить к нему флаг?

3 лайка

Вам нужно привести код страны к нижнему регистру, @merefield

2 лайка

Коды стран в модуле Locations по умолчанию в нижнем регистре. Возможно, это связано с поставщиком сторонних данных.

Я предлагаю платную поддержку, если кому-то нужно, чтобы я внимательнее разобрался, или приветствую pull-запросы.

В этом и проблема: я вручную перевел это в нижний регистр, и оно загрузилось. Пробовал Mapquest и Mapbox — результат тот же. Напишу тебе в личные сообщения, Роб.

2 лайка

Здравствуйте, спасибо за этот замечательный плагин!

Я пытаюсь отобразить на карте название моей темы, но у меня есть только координаты местоположения.

Нужно ли активировать какой-либо параметр?

Спасибо.

1 лайк

Несколько обновлений:

@Renato любезно исправил проблему в настройках категорий:

Мы получили вклад для русского языка, спасибо!

И наконец, я добавил экспериментальный новый фильтр списка тем под названием «Рядом»:

Он отображает все темы в радиусе x км (настройка) от указанного авторизованным пользователем местоположения.

@Barney_Lodge это было вдохновлено вашим кейсом и заняло большую часть моего воскресенья :slight_smile:

Также это исправляет встроенный селектор местоположения для тем в модальном окне.

8 лайков

Ого!!! Мне очень нравится Discourse!!

С уважением,

Барни Лодж

3 лайка

В одном из недавних релизов была ошибка в логике заполнения данных о местоположении пользователей. Она уже исправлена, но это могло повлиять на некоторые данные.

В данный момент это не вызывает серьёзных проблем, но может повлиять на карту в будущем.

Чтобы проверить, есть ли у вас эта проблема, выполните следующую команду в консоли Rails:

array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)

Если результат не пустой, просто выполните:

array_for_fix.each do |id|
  Locations::UserLocationProcess.upsert(id)
end

Другой способ исправления — вручную заново ввести местоположение пользователя на карте. В дальнейшем любые изменения местоположения пользователя просто перезапишут некорректные данные.

Приносим извинения за доставленные неудобства.

Если кто-то захочет написать миграцию или задачу Rake, мы с радостью примем ваш pull request.

6 лайков

Возможно ли реализовать следующую функцию:

После публикации пользователем темы или ответа автоматически определять его местоположение на основе текущего IP-адреса и отображать его под аватаром в теме/посте — вместо того чтобы требовать от пользователей выбирать его вручную или указывать в профиле.

Я готов предоставить платную поддержку для реализации этого.

Так же, как на ZHIHU.

1 лайк

Принудительное обновление местоположения пользователя стало бы значительным отходом от текущей концепции этого плагина, поскольку до сих пор он полагался на добровольную отправку данных и, следовательно, на согласие каждого пользователя.

Однако я вижу в этом смысл. Это сделало бы сбор данных о местоположении пользователей гораздо более надежным и менее зависимым от действий самих пользователей.

На каждом посте уже есть метка с местоположением пользователя. Поэтому, на мой взгляд, эта часть уже решена.

Я считаю, что автоматическое обновление местоположения пользователя как опция сайта при публикации постов осуществимо и разумно при условии, что:

  • Сайты обновят свои Условия использования (T&C);
  • Местоположение будет указываться с достаточной приблизительностью, например, до ближайшего города? Для меня отслеживание людей до уровня улицы вряд ли расположит пользователей к сайту! Возможно, стоит предусмотреть опцию выбора точности: город, провинция (если это вообще возможно с точки зрения данных) или страна. Меня интересовало бы мнение других администраторов по этому вопросу.

Было бы оптимально стандартизировать использование MaxMind, который является стандартной службой геолокации по IP, встроенной в ядро Discourse.

Я с готовностью рассмотрю возможность спонсирования для внедрения автоматизации на бэкенде как опции сайта. Я свяжусь с вами через личные сообщения, чтобы обсудить возможность достижения соглашения.

4 лайка

Достаточно указать город. Если же указывать улицу, это будет слишком страшно.

4 лайка

Наличие опции детализации по умолчанию для всего сайта было бы замечательно. Как и возможность для пользователей изменять уровень детализации или отказаться от неё.

Для двух национальных форумов, которые я веду, детализация по области была бы идеальна. Для локального форума отлично подошла бы детализация по району.

Легко представить сайты, использующие все доступные варианты.

3 лайка

Спасибо, я выполнил эти команды, и они нашли что-то:

discourse(prod)> array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)
=> [175, 12, 578, 1347, 1355, 1, 590]
discourse(prod)* array_for_fix.each do |id|
discourse(prod)*   Locations::UserLocationProcess.upsert(id)
discourse(prod)> end
=> [175, 12, 578, 1347, 1355, 1, 590]

Затем я снова выполнил первую команду, и она всё ещё нашла 590, которое также не исчезло после выполнения второй команды:

discourse(prod)> array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)
=> [590]
discourse(prod)* array_for_fix.each do |id|
discourse(prod)*   Locations::UserLocationProcess.upsert(id)
discourse(prod)> end
=> [590]

Что мне делать? :thinking:

С радостью сообщаем, что и @祁同伟, и @nathank согласились профинансировать :money_bag: работу по определению местоположения пользователя по IP-адресу.

Эта работа какое-то время будет экспериментальной, но я также с радостью сообщаю, что соответствующий Pull Request уже доступен здесь:

Это не просто простой запрос по базе данных — мы делаем больше. Теперь вы сможете устанавливать определённую степень детализации (например, город) для всех автоматически определяемых местоположений, чтобы защитить конфиденциальность пользователей и одновременно повысить доверие в сообществе.

(Да, будут определённые проблемы с VPN, и, боюсь, мы не сможем легко их обойти).

Как только я буду уверен, что всё работает достаточно хорошо, я объединю изменения.

В любом случае эта функция будет скрыта за флагом.

Я буду держать вас в курсе, но это захватывающие времена — это потенциально одно из лучших дополнений к Locations за долгое время.

Ещё раз спасибо @祁同伟 и @nathank!!

И да, также будет создана rake-задача для применения этого ко всем существующим пользователям…

12 лайков

Возможно ли отображать уведомления на бэкенде Discourse через плагин, как в данном случае?
Я мог легко пропустить ваш пост :slight_smile:

1 лайк