Finding out how many users are watching or tracking?

Where Can we find how many users are watching or tracking a topic or a category? Does it save any where in discourse?

There are “_user” tables.
category_users, topic_users, group_users and tag_users
Each has a notification_level field where the integer indicates a members preference - 0 Muted, 1 Normal, 2 Tracked, 3 Watched

So a query something like this should work

SELECT COUNT(id) 
FROM category_users 
WHERE notification_level = 3 
GROUP BY category_id 

to give you how many are Watching each category.

7 Likes

How can I define a function in plugin.rb for using this code?
I want to use a function in my JavaScript code to get the tracking but I don’t know how to configure the plugin.rb file to create a function like that?
Can any body tell me what should I add to plugin.rb to access a function like trakingNumbers(categoryID) in my widget’s javascript code?

If you post a link to your GitHub repo others could look and offer suggestions / PRs

2 Likes

Here is my repo on github.
It is a widget for @angus sidebar widget plugin. but I have stock in finding tracking number. I want to use this number in This file.

2 Likes

I think others will know better than I as to what the best approach might be. My take is that certain values are already available by making an XHR to get the JSON and when they aren’t a controller can be put together to return JSON eg.
https://github.com/Mittineague/discourse-newpage/blob/master/app/controllers/discourse_newpage/newpages_controller.rb#L5-L9
I have seen plugins that use custom queries involving JOINs etc. but I have not experimented doing similar yet.

1 Like