Discourse API Obtener Tema Actual

¡Hola!

Veo que el complemento de script de la API de Discourse puede obtener al usuario actual:

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

¿Existe un comando similar para obtener el tema actual? Mi caso de uso es cambiar la URL del botón de redirección al final de una publicación a un enlace prellenado para un mensaje privado dirigido al autor original. Para encontrar el nombre de usuario del autor original, parece que necesitaría obtener primero el ID del tema y luego consultar al autor original mediante "/t/<TOPIC_ID>.json".

El complemento del botón incluye <TOPIC_ID> integrado, pero no estoy seguro de cómo lograr esto usando JavaScript en Administración > Personalización. ¡Gracias!

No estoy seguro de si este es el mejor enfoque, pero es posible obtener el nombre de usuario del creador del tema de esta manera:

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

Esto no funciona directamente en la etiqueta <script>. Probablemente quieras usarlo en un api.onPageChange o en algún otro evento (en una prueba rápida también funcionó con un setTimeout de 0 ms, pero no sé si haya efectos secundarios).

2 Me gusta