Comments (3)
Slack's threading interface is quite ugly in my opinion, and has several shortcomings. Your suggestion to use dedicated channels per thread is probably the one that better suits IRC, with only the risk is that we create a lot of channels on busy Slack teams. Still, it sounds the best trade-off.
Threads are documented here, https://api.slack.com/docs/message-threading , and to make things weirder they are identified by the first message's... timestamp (see https://api.slack.com/methods/channels.replies ). They can be created from public or private conversations, and the thread replies from a channel can either be sent to the channel, or stay private to the two participants. This is not easy to handle, and I am not sure what would be the saner default (reply privately? Or on the channel?).
Said that, whatever we do won't fit everybody and every case, so let's just try to have not-too-insane defaults here. I would start on what you suggest: creating a channel per thread. Then:
- the topic could reference to the conversation the thread was originated from
- the first message of the thread should be replicated in the thread-channel (which means that the original message should be retrieved by its timestamp when the first reply occurs)
- the channel name should be something like @thread-SOME_ID or similar, with a leading symbol that will avoid ambiguity with private and public channels, and multi-user conversations (we already use "@" for multi-user conversations, it's just an example)
- the reply would go to the channel (I assume this captures the majority of the use cases)
What do you think?
from irc-slack.
Actualy one thing I noticed still missing is creating a threaded conversation from IRC. I can live without this feature, but might be interesting to implement for some users.
Eg: a command where you can pass the number which represents the index of the message in a reverse chronological order. So if you want to reply to the last message you write: /thread 1 my message is here
, for message sent before that /thread 2 ...
, etc.
from irc-slack.
I like it. This could be used to send other slack commands (even raw commands), and deserves its own issue
from irc-slack.
Related Issues (20)
- Reply with RPL_NOTOPIC if no topic is set
- Use slacks 'away' flag when loading slack users HOT 4
- My own messages are shown twice HOT 8
- Getting Connection Timeout Trying to Setup new Connection HOT 9
- Handle certain JOIN failures
- Handle user change event and show nick change if relevant
- App on slack.efi.re throws 502 error HOT 3
- Add feature matrix on README
- Fix `cannot create nick "" for channel "+chan-12345"`
- Messages posted to threads show up in 1-on-1 channels HOT 8
- Clean up resources after disconnecting from a team
- Support threads to self
- Send IM thread to a thread channel
- Support sending messages in thread and multiparty IMs HOT 1
- Failed to fetch users by their IDs: internal_error HOT 2
- irc-slack + znc constantly adding new channels HOT 1
- irc-slack 'reactions' being sent to the wrong channels HOT 1
- Only one private channel working. Other channels sent to <unknown-channel> HOT 1
- Members of private channels and threads not shown HOT 1
- cannot connect anymore since 2023-09-18 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irc-slack.