Plugin de Localizações 🌍

Eu só queria levantar isso novamente como uma solicitação de recurso.

Estamos tendo isso em nossa comunidade ao planejar um evento. As pessoas agora usam o Google Maps para ver a que distância o local do evento sugerido está.

Também é útil ao verificar a que distância o outro usuário está. (Nós administramos um fórum de mergulho e as pessoas procuram por parceiros de mergulho em nosso fórum.)

3 curtidas

@Roi, você pode se interessar por isto:

Com este lançamento, introduzimos a pesquisa (experimental) em linguagem natural para locais de usuários com o Discourse Chatbot :robot: , para que você possa perguntar coisas como:

  • “Listar os cinco usuários mais próximos da minha localização” … (se você registrou uma localização) … ou até mesmo
  • “Listar todos os usuários a até 500 km da minha localização.”
  • “Listar os usuários a até 200 km de Berlim.”

Ainda não suporta Tópicos de Localização … mas isso está 2/3 concluído e em andamento …

Há uma migração de dados neste lançamento, então, por favor, me avise se alguém tiver algum problema e eu tentarei ajudar.

8 curtidas

Sei que isto ainda está em desenvolvimento, então talvez já saiba disto…\n\n1) Às vezes, quando abro o Mapa do Utilizador, obtenho um mapa em branco, ou seja, o mapa dos países é exibido, mas sem utilizadores. Se eu atualizar a página, os utilizadores mapeados reaparecem. Não encontrei uma forma garantida de replicar isto, mas vejo o mapa em branco pelo menos 50% das vezes que abro o mapa do utilizador. O mapa em branco parece aparecer apenas no mapa do utilizador. Não o vi no mapa do tópico, pelo menos até agora.\n\n2) Há uma caixa branca em branco à esquerda dos campos de botões de rádio de nome/nome de utilizador/etc., por exemplo\n\nimage

1 curtida
  1. Sim, a solução não é perfeita. Não é meu foco no momento. PR aceito.

  2. é totalmente intencional: é uma caixa de pesquisa.

1 curtida

Ahhh! Então é isso.

Acabei de descobrir outra coisa. Meu mapa de tópicos não tem muitas entradas, mas nos EUA tenho 3 agrupadas na costa leste e duas agrupadas na costa oeste. Se eu clicar no cluster da costa leste, ele amplia para exibir os três locais de tópicos individuais. Se eu clicar em qualquer um desses locais, em vez de abrir o tópico associado, ele amplia para mostrar os dois locais da costa oeste. Isso é repetível - tente no meu site https://discourse.weather-watch.com/map

2 curtidas

Muito curioso mesmo! Estranhamente, eles estão funcionando bem nos meus dados. Também notei no seu mapa um erro ao passar o mouse sobre um cluster.

A versão do Leaflet está seriamente desatualizada… pode ser um problema…

1 curtida

Ok, empurrei a versão do Leaflet e seu popular plugin de cluster de marcadores para a mais recente, veja se isso ajuda:

Podemos muito bem quebrá-lo corretamente com o código mais recente :sweat_smile:

(não adianta nem discutir tais problemas se estivermos executando uma biblioteca antiga, quem sabe o que eles consertaram!).

3 curtidas

Obrigado pela rápida atualização. Em um teste inicial, está se comportando melhor agora. Não tive o estranho salto de leste a oeste nas poucas tentativas que fiz. Farei mais testes amanhã.

2 curtidas

Sim, eu consigo ver. Ótimo! Obrigado por verificar novamente prontamente.

2 curtidas

Após mais testes hoje, parece que a última atualização corrigiu o mapa em branco na primeira abertura e também o estranho salto de costa a costa de locais agrupados :grinning:

4 curtidas

Obrigado por me apontar isso, e desculpe por não estar por aqui há alguns dias para comentar.

Isso realmente parece promissor. :slight_smile: Mas, no momento, não temos o Chatbot de IA ativo em nosso fórum. Ainda estou lutando para adivinhar quanto isso nos custaria para obter uma chave de API da OpenAI. Como administramos nossa comunidade sem fins lucrativos e não cobramos, mal conseguimos cobrir os custos de servidor e domínio com as poucas doações e outras coisas assim. Portanto, este é um tópico importante para nós. :wink:

O link para a resposta no post com os cálculos de exemplo não funciona mais. Você pode me dizer onde encontrá-lo? :slight_smile:

E além da integração do Chatbot de IA: você está pensando em incluir uma informação de distância no plugin também? Então, simplesmente mostrando a distância do usuário conectado atualmente a um evento ou a outro usuário - se ambos os lados definiram uma localização? Essa foi a maneira simples como foi tratada no plugin de localização para phpBB que usamos antes.

Receio que a postagem de custo foi excluída porque o Tópico estava ficando estupidamente longo. Vou remover isso do OP. (Feito)

Sugiro tentar: permissão apenas para a equipe inicialmente.

Não, não pretendo disponibilizá-lo no plugin de Localizações sem o Chatbot.

Para todos vocês, usuários de subpastas subversivas, o @renato gentilmente fez um PR para garantir que os marcadores funcionem em tal configuração:

Muito obrigado, @renato! :pray:

5 curtidas

OBRIGADO!
Uma pergunta rápida:
Como atualizo este plugin? run ./reset-all-repos parece arriscado.
O objetivo é apenas atualizar este plugin e não perder os dados dos 180 projetos já inseridos.

1 curtida

Essa não é exatamente uma pergunta específica do plugin, mas você precisará estar executando tests-passed e atualizando para a versão mais recente para que todas as novidades funcionem.

É sempre arriscado :sweat_smile: , a menos que você queira executar uma instalação Estável? (caso em que esta atualização ainda não é relevante).

A atualização online (de /admin/upgrade) pode funcionar para você, ou como de costume, reconstrua com ./launcher rebuild app - assumindo que você esteja executando uma instalação padrão?

Não posso garantir os níveis de manutenção do restante dos seus plugins, mas boa sorte! :sweat_smile:

1 curtida

Encontrei o mesmo problema.

Tentei o método listado aqui

Mas não funcionou.
Sistema Ubuntu, reinicialização não funcionou,
./launcher restart app, ./launcher start app não funcionaram.

Mensagem de erro ao executar ./launcher rebuild app

......
111:M 12 Dec 2023 12:11:02.199 * DB salvo em disco
111:M 12 Dec 2023 12:11:02.200 # Redis está pronto para sair, até logo...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' falhou com retorno #<Process::Status: pid 3553 exit 1>
Localização da falha: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap falhou com código de saída 1
** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.

Obrigado a @itsbhanusharma

Diz que foi causado por um erro anterior, eu os listo aqui

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'

e a mensagem do 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

Seu erro não é o mesmo do OP. Você poderia fornecer o log completo da reconstrução?

Obrigado Bhanu, refiz o processo de reconstrução e gerei os “erros anteriores” na postagem anterior. Você poderia, por favor, ajudar a entender e resolver o problema?

Parece um problema com o plugin de localizações. Você poderia tentar compilar sem ele para ver se isso resolve o problema de compilação?

1 curtida

Ótimo! Acabei de reconstruir o sistema e ele funciona.

Embora eu tenha que dizer, o plugin de localização é muito bom. Então espero que a depuração relativa possa ser feita.