将 OP 用户名添加到 Body Css Classes

你好,
有人能帮我将话题发起人(OP)的用户名添加为 <body> 的 CSS 类吗?
我需要编写一些样式,并且需要为某些用户名设置不同的属性。

有些用户要求我们从他们的个人资料中删除该话题,但并未坚持要完全删除。因此,我们创建了一个匿名用户来更改这些话题的所有权。

现在,如果话题发起人(OP)是匿名用户,我们需要对页面元素进行修改,包括隐藏引用、提及等内容。

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange((url, title) => {
        if (/^\/t\/.*$/.test(url)) {
            const opUser = API.????? <--------------------------- 如何获取 OP 用户对象
            if (opUser && opUser.id === 1234) {
                document.querySelector("body").classList.add("anon");
            }
        } else {
            document.querySelector("body").classList.remove("anon");
        }
    });
</script>

有没有办法通过 JavaScript API 获取主题信息?

api.getCurrentUser()

调用 api.getCurrentUser() 方法会返回当前登录用户。我正在寻找一个能获取主题信息(包括主题所有者)的方法。

哦,抱歉,我看错了。:confused:

不客气,我觉得这比问一个简单的问题要复杂一些:+1::sweat_smile:

为了解决我的问题,我通过阅读以下页面找到了解决方案:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/lib/plugin-api.js#L1138-L1140

<script type="text/discourse-plugin" version="0.8">
    const specialTopicUserId = 1000;
    api.decorateTopicTitle((topicModel, node, topicTitleType) => {
        if (topicModel && topicModel.user_id === specialTopicUserId) {
            $("#topic").addClass("anon");
        }
    });
</script>