Locations Plugin 🌍

この機能を再度機能リクエストとして提起したいと思います。

イベントを計画しているコミュニティで、まさにこの問題が発生しています。人々は現在、Googleマップを使用して、提案されたイベント会場までの距離を確認しています。

また、他のユーザーまでの距離を確認するのにも役立ちます。(私たちはスキューバダイビングフォーラムを運営しており、人々はフォーラムでダイビング仲間を探しています。)

「いいね!」 3

@Roi、これも興味深いかもしれません。

このリリースでは、Discourse Chatbot によるユーザーの場所の(実験的な)自然言語検索を導入します :robot:。これにより、次のようなことを尋ねることができます。

  • 「私の場所から最も近い5人のユーザーをリストしてください」…(場所を登録している場合)…あるいはさらに
  • 「私の場所から500km以内のすべてのユーザーをリストしてください。」
  • 「ベルリンから200km以内のユーザーをリストしてください。」

まだトピックの場所はサポートしていませんが…それは完了の2/3で、パイプラインにあります…

このリリースにはデータ移行が含まれているため、問題が発生した場合はお知らせください。対応させていただきます。

「いいね!」 8

これはまだ作業中のものだと承知しておりますので、既にご存知かもしれませんが…

  1. ユーザーマップを開くと、時々マップが空白になることがあります。つまり、国の地図は表示されますが、ユーザーは表示されません。ページを更新すると、マップ上のユーザーが再表示されます。これを確実に再現する方法は見つかっていませんが、ユーザーマップを開くたびに少なくとも50%の確率で空白のマップが表示されます。空白のマップはユーザーマップにのみ表示されるようです。トピックマップでは、少なくとも今のところは見たことがありません。

  2. 名前/ユーザー名/その他のラジオボタンフィールドの左側に、空白の白いボックスが表示されます。例:

image

「いいね!」 1
  1. はい、そのソリューションは完璧ではありません。現時点では私の焦点ではありません。PRは受理されました。

  2. は完全に意図的です。検索ボックスです。

「いいね!」 1

ああ!そうだったんですね。

別のものを見つけました。私のトピックマップには多くのエントリがありませんが、米国では東海岸に3つ、西海岸に2つクラスターがあります。東海岸のクラスターをクリックすると、3つの個々のトピックの場所が表示されるようにズームインします。それらの場所のいずれかをクリックすると、関連するトピックが開くのではなく、西海岸の2つの場所が表示されるようにズームインします。これは再現可能です。私のサイト https://discourse.weather-watch.com/map で試してみてください。

「いいね!」 2

実に興味深いですね!奇妙なことに、私のデータでは正常に動作しています。また、あなたのマップでは、クラスターにカーソルを合わせたときにエラーが発生することにも気づきました。

Leafletのバージョンがかなり古いですね…問題かもしれません…

「いいね!」 1

Leaflet とその人気のマーカークラスタープラグインを最新バージョンにプッシュしました。これで役立つか確認してください。

最新のコードで完全に壊してしまうのも同じことです :sweat_smile:

(古いライブラリを実行している場合、このような問題を議論する意味はありません。彼らが何を修正したか誰が知っているでしょうか!)

「いいね!」 3

迅速なアップデートありがとうございます。最初のテストでは、以前より動作が改善されました。試した数回のテストでは、奇妙な東西海岸間のジャンプは発生しませんでした。明日、さらにテストを行います。

「いいね!」 2

はい、わかります。素晴らしいです!迅速な再確認ありがとうございます。

「いいね!」 2

本日さらにテストを行ったところ、最初の起動時の空白マップと、集約された場所からの奇妙な東西海岸ジャンプが最後のアップデートで修正されたようです :grinning:

「いいね!」 4

これに興味があるかもしれません。数日間コメントするためにここにいなかったことをお詫びします。

それは本当に有望に聞こえます。 :-)しかし、現時点では、私たちのフォーラムでAIチャットボットをアクティブにしていません。OpenAIからAPIキーを取得するにはいくらかかるかを推測するのに苦労しています。私たちは非営利でコミュニティを運営しており、料金を請求していないため、サーバーとドメインの費用を少数の寄付やその他のものから賄うことはほとんどできません。したがって、それは私たちにとって重要なトピックです。 :wink:

例の計算に関する投稿へのリンクは機能しなくなりました。どこで見つけられるか教えていただけますか? :slight_smile:

AIチャットボットの統合はさておき、プラグインに距離情報も組み込むことを考えていますか?つまり、現在ログインしているユーザーからイベントまたは別のユーザーまでの距離を表示するだけです。両方の側が場所を設定している場合。それは、以前使用していたphpBBのロケーションプラグインで処理されていた簡単な方法でした。

申し訳ありませんが、トピックが不必要に長くなっていたため、コスト投稿は削除されました。OPから削除します。(完了)

まず試してみることをお勧めします:最初は権限のあるスタッフのみ。

いいえ、チャットボットなしでLocationsプラグインで利用できるようにする予定はありません。

サブフォルダーをご利用の皆さまへ、@renato さんがそのような構成でもマーカーが機能するようにプルリクエストを作成してくれました。

@renato さん、本当にありがとうございます!:pray:

「いいね!」 5

ありがとうございます!
簡単な質問が一つあります。
このプラグインを更新するにはどうすればよいですか? run ./reset-all-repos は危険なように思えます。
目標は、このプラグインのみを更新し、既に入力されている180プロジェクトのデータを失わないようにすることです。

「いいね!」 1

それはプラグイン固有の質問ではありませんが、すべての新しい機能が動作するように tests-passed を実行し、最新バージョンに更新する必要があります。

常にリスクが伴います :sweat_smile:。安定版のインストールを実行したいのでなければ?(その場合、このアップデートはまだ関係ありません)。

オンラインアップグレード(/admin/upgrade から)が機能するかもしれませんし、通常どおり ./launcher rebuild app で再構築することもできます。標準的なインストールを実行していると仮定します。

他のプラグインのメンテナンスレベルについては保証できませんが、幸運を祈ります! :sweat_smile:

「いいね!」 1

同じ問題に遭遇しました。

こちらに記載されている方法を試しました。

しかし、うまくいきません。
Ubuntuシステムで、再起動しても動作せず、
./launcher restart app./launcher start appも動作しません。

./launcher rebuild app実行時のエラーメッセージ

......
111:M 12 Dec 2023 12:11:02.199 * DB saved on disk
111:M 12 Dec 2023 12:11:02.200 # Redis is now ready to exit, bye bye...



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3553 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

@itsbhanusharma さん、ありがとうございます。

以前のエラーが原因だと表示されているので、ここに記載します。

I, [2023-12-13T00:50:13.222274 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundl                e exec rake db:migrate'
2023-12-13 00:50:18.347 UTC [3597] discourse@discourse ERROR:  invalid input syntax for type double precision: ""

2023-12-13 00:50:18.347 UTC [3597] discourse@discourse STATEMENT:  INSERT INTO locations_topic                 (topic_id, latitude, longitude, name, street, district, city, state, postalcode, country, count                rycode, international_code, locationtype, boundingbox, updated_at, created_at) (
          SELECT
          tc.topic_id,
          (tc.value::json->'geo_location'->>'lat')::FLOAT,
          (tc.value::json->'geo_location'->>'lon')::FLOAT,
          tc.value::json->'geo_location'->>'name',
          tc.value::json->'geo_location'->>'street',
          tc.value::json->'geo_location'->>'district',
          tc.value::json->'geo_location'->>'city',
          tc.value::json->'geo_location'->>'state',
          tc.value::json->'geo_location'->>'postalcode',
          tc.value::json->'geo_location'->>'country',
          tc.value::json->'geo_location'->>'countrycode',
          tc.value::json->'geo_location'->>'international_code',
          tc.value::json->'geo_location'->>'type',
          ARRAY[
            (tc.value::json->'geo_location'->'boundingbox'->>0)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>1)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>2)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>3)::FLOAT
          ],
          tc.updated_at,
          tc.created_at
        FROM topic_custom_fields tc
        WHERE tc.name = 'location'
        AND tc.value NOT IN ('"{}"', '{}', '')
        AND tc.value::json->'geo_location'->>'lat' IS NOT NULL
        AND tc.value::json->'geo_location'->>'lon' IS NOT NULL
        )
        ON CONFLICT DO NOTHING

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  invalid input syntax for type double precision: ""
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

#--------------
Caused by:
PG::InvalidTextRepresentation: ERROR:  invalid input syntax for type double precision: "" (PG:: InvalidTextRepresentation)
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

docker ps のメッセージ

/var/discourse# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED             STATUS         PORTS                                                                      NAMES
d3c8e85149a8   local_discourse/app   “/sbin/boot”   About an hour ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

あなたのエラーはOPと同じではありません。再構築の完全なログを提供していただけますか?

Bhanuさん、ありがとうございます。再構築プロセスをやり直し、前の投稿で「以前のエラー」を生成しました。問題の理解と解決にご協力いただけますでしょうか?

ロケーションプラグインに問題があるようです。ビルドの問題が解決するかどうか、プラグインなしで再ビルドしてみてください。

「いいね!」 1

素晴らしい!システムを再構築したところ、動作しました。

Locationプラグインは非常に優れていると言わざるを得ません。そのため、相対デバッグが可能になることを願っています。