website
website copied to clipboard
List popular slack channels and descriptions on site
Issue Type
- [x] Feature Request
Description
I think it would be a good idea to have a list somewhere on the site of popular slack channels @daredevil82 (Ovv) suggested only showing channels with over x amount of people in them.
I wonder how complex it would be to show the most active channels, underneath that we could have a drop down or something that shows them all if anyone is interested and wants a quick list.
I'd love for us to be able to move to the pyslackers/slack-sansio library - perhaps this could be the dogfood for it?
sir-bot-a-lot query once per day the slack api to get the list of channels (it's used for the topics monitoring). Maybe the website can leverage that.
I was looking more into this and realized that the /purpose
and /topic
are user provided, it's probably best to not show these on the site in the off change that a user may updated either in poor taste before we sync and then show it until the next scheduled sync.
Closing for now, but please feel free to re-open if this seems unreasonable.
Also, what defines popular? The easy to find metric is member count, however popularity is probably weighted based on member count and messages per time period, which requires a bit more.
I think showing a list of available channels with their topics is already a nice step for helping people navigate the slack
And what is the best approach to do that ?
The idea i have now is getting the messages from the api once per day, and then compare the length of every channel, and then show the top-5. Any better idea ?
We grab the channels on a schedule here: https://github.com/pyslackers/website/blob/master/pyslackersweb/website/tasks.py#L118
So yeah, from there it’s just finding some way to decide which are the channels to feature. Could be based on messages, member counts, or probably a few other ways.
For now I’d probably just do it based on memberships for anything that isn’t “general” (see the slack channel type here: https://api.slack.com/methods/channels.list). Once sirbot is pulled over we can query a rolling popularity and make the site a little more dynamic.
you/we could potentially also store the daily amount of users, messages etc, and make some long term statistics of each channel and their growth. not for any particular reason but for data purposes.
Could be based on messages, member counts, or probably a few other ways.
Maybe utilize some function based on a combination of those, based on some magic numbers.
That would be pretty cool, maybe a volume weighted average?
Amount of messages is not something slack makes available. While the bot is still split it would make sense to rely on the user count.
Just be sure to ignore the channel with is_general
set to True
, since everyone has to be there (which is #announcements
for our group).