Discourse API Obter Tópico Atual

OLÁ!

Vejo que o plug-in de script da API do Discourse pode obter o usuário atual:

<script type="text/discourse-plugin" version="0.8.18">
    if(api.getCurrentUser() != null) {
        $("#logged-in-user").text(" " + api.getCurrentUser().username);
    }
</script>

Existe um comando similar para obter o tópico atual? Meu caso de uso é alterar a URL do botão de redirecionamento no final de uma postagem para um link pré-preenchido para MP direcionado ao autor original. Para encontrar o nome de usuário do autor original, parece que precisaria obter primeiro o ID do tópico e, em seguida, consultar o autor original via "/t/<TOPIC_ID>.json"?

O plug-in do botão já possui <TOPIC_ID> embutido, mas não tenho certeza de como isso pode ser feito usando JavaScript em Administração > Personalização. Obrigado!

Não tenho certeza se essa é a melhor abordagem, mas é possível obter o nome de usuário do criador do tópico assim:

const controller = Discourse.__container__.lookup("controller:topic")
const username = constroller.get("model.details.created_by.username")

Isso não funciona diretamente na tag <script>, você provavelmente gostaria de usá-lo em um api.onPageChange ou em algum outro evento (em um teste rápido, também funcionou em um setTimeout com 0ms, mas não sei se há efeitos colaterais).

2 curtidas