EionRobb / purple-teams

A MS Teams plugin for libpurple/Pidgin (3rd party client)
GNU General Public License v3.0
159 stars 12 forks source link

Use more human-readable identifier for threads in channels #24

Open NoTuxNoBux opened 2 years ago

NoTuxNoBux commented 2 years ago

Currently, if someone posts a new thread in a channel, it opens automatically in Pidgin, which is nice. However, the name becomes something like 19:2e3881cb62984ca4962589d0cddc38ab@thread.v2 in the contact list and window title, which makes it hard to identify.

This is similar to https://github.com/EionRobb/purple-teams/issues/4, but not quite the same as that is about meetings, which are already separate rooms and have a nice title, whilst this is about threads in a channel.

The chat window itself does show the channel it is part of underneath the title, which helps, and it makes sense that the thread title is not the same as the channel title, but perhaps there is a way to show it more nicely. I posted some ideas below - they are not mutually exclusive.

Contact List Tree

An ideal solution would be to have something similar to what Teams does: show all threads and their contents of a channel in the chat window, making the channel itself the "contact". Since this will be difficult in Pidgin due to it having a flat text structure in the chat window, perhaps there is some way to have a tree structure in the contact list? The channel itself would then be the parent node, and all related threads child nodes.

This will also help declutter the contact list as all threads will be grouped under their respective channels.

Prefix Channel Name To Long ID

Another idea is to prefix the long ID with the channel name and a dash - this allows visually grouping and sorting threads from related channels together in the contact list, which helps.

Replace Long ID With Excerpt

What Teams itself does in the activity tab is not show IDs, but show an excerpt of the post that started the thread, which is also better than an ID.

zoltan-dulac commented 8 months ago

I would like to mention that this was an issue with the Slack Plugin for Pidgin, and it was solved by implementing a set of commands to support threads:

/thread|th [thread-timestamp] [message]: post message in a thread, where thread-timestamp matches the configured display format (either thread_timestamp or thread_datestamp) /getthread|gth [thread-timestamp]: fetch messages in a thread, where thread-timestamp matches the configured display format (either thread_timestamp or thread_datestamp)

This works pretty well from my experience, and it is a nice compromise given the restrictions of pidgin's UI. It is also something users would be familiar with if they use pidgin for slack. And I think that it would be nicer from a UX standpoint than having a new tab for each thread (which can escalate very quickly).

What do you all think?