Discourse API Obtenir le sujet actuel

Salut !

Je vois que le plug-in de script de l’API de Discourse peut récupérer l’utilisateur connecté :

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

Existe-t-il une commande similaire pour récupérer le sujet actuel ? Mon cas d’usage est de modifier l’URL du bouton de redirection à la fin d’un message vers un lien pré-rempli pour un MP à l’auteur original. Pour trouver le nom d’utilisateur de l’auteur original, il semblerait que je doive d’abord récupérer l’ID du sujet, puis interroger l’auteur original via "/t/<TOPIC_ID>.json" ?

Le plug-in du bouton intègre <TOPIC_ID>, mais je ne suis pas sûr de savoir comment cela peut être fait en JavaScript sous Administration > Personnalisation. Merci !

Je ne suis pas sûr que ce soit la meilleure approche, mais il est possible d’obtenir le nom d’utilisateur du créateur du sujet de cette manière :

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

Cela ne fonctionne pas directement dans la balise <script>. Vous voudrez probablement l’utiliser dans un événement api.onPageChange ou un autre événement (dans un test rapide, cela a également fonctionné avec un setTimeout de 0 ms, mais je ne sais pas s’il y a des effets secondaires).