Series of replies should automatically turn into threads
If several (let's say 3) replies happen in a row, discord should automatically turn them into a thread and remove the replies from the main message feed to clean it up. Perhaps this could be disabled on a per-channel basis just like muting in case you don't want this to happen.
-
I like it!
A ‘Thread-mod’ role and role-exclusive emoji :gold_thread: paired with a ‘/weave time:stamp’ or ‘/weave [chain-number]’ command to threadify groups of historic messages bearing :gold_thread: reacts would be a great way to implement this, potentially without server-side code change.
Premise:
With the role and react as a base, a ‘/weave’ bot or command to condense tagged comments into threads would be simple(ish) to implement:
Assuming all discord needs to do is add the role and react: A bot could iterate on and enhance the way the condensing is mediated:Thread mediation/voting:
When checking for reply chains that can be condensed into threads:
1. We add a new emoji :gold_thread: and a new role ‘thread-mod’.
2. We Keep a running count of reply chains within a set number of lines and minutes.
These are [possible-chains] with [possible-comments].
3. When a [possible-chain] surpasses the set timespan/linecount it is a [rejected-chain]:
We forget about it.
4. When a [possible-chain] surpasses a set reply threshold within the set timespan and linecount:
We react to its [possible-comments] with :gold_thread: The [possible-chain] is now a [candidate-chain] with [candidate-comments].5. We assign a rolling sequential number from :one: to :ten: to the new [candidate-chain] as an identifier.
This number is now the chain's [chain-number], and the [candidate-chain] is now a [known-chain] with [known-comments].6. If there are already 10 [known-chains]:
We unassign and unreact this [chain-number] from the oldest [known-chain], so only one chain, the most recent, has that [chain-number].7. The :needle: emoji is our [thread-react] used to give final approval to make a thread.
8. When the last [known-comment] in a [known-chain] or any later chain gets a :[thread-react]: from a thread-mod, the user who posted it, or a pre-set number of other users:
The [known-chain] (or other) gains [thread-consensus] and becomes an [approved-thread], and we skip straight to sending '/weave'.
9. The :gold_thread: and :round_pushpin: emojis are [chain-reacts].
10. When a [known-chain] gets its first [chain-react] from a mod or user:
We react to all [known-comments] in that [known-chain] with its :[chain-number]. The [known-chain] is now an [open-chain] with [open-comments]:
11. If :round_pushpin: is not present:
We also react with :round_pushpin: so users don't have to hunt for it.
12. If an [open-comment] has a [chain-react] from a thread-mod, the user who posted it, or a pre-set number of other users:
The [open-comment] gains [comment-consensus] in that [chain-react].
13. With :gold_thread: [comment-consensus] an [open-comment] becomes an [approved-comment], subject to moving to a thread.14. With :round_pushpin: [comment-consensus] an [open-comment] becomes a [held-comment] and will be copied to the thread but not deleted.
15 The :thread: and :[chain-number]: emojis are [add-reacts].
16. If a non-chain comment gets both [add-reacts] from a thread-mod, the owning user, or a pre-set number of other users:
The comment gains [add-consensus], and becomes an [open-comment], gaining :gold_thread: and :round_pushpin: reacts from the bot to aid in it's possible [comment-consensus]17. When all [open-comments] in an [open-chain] have gained [comment-consensus] and resolved to [approved-comments] and/or [held-comments], The [open-chain] gains [chain-consensus] and become an [approved-chain]
We react to the last tagged comment in the [approved-chain] with :needle:
18.When the last comment in an [approved-chain] (or other chain) gains [thread-consensus] from :needle: the [approved-chain] becomes an [approved-thread].
We send /weave [chain-number].
Thread creation by bot/thread-mod via '/weave':
When /weave is sent:
A. We default to the most recent chain, but accept as arguments:
Timestamp for a :gold_thread: tagged comment, timestamps for first and last (space separated) gold_thread:tagged comments for inclusion of a range of comments, timestamps (comma separated) to include a sequence of :gold_thread: tagged comments,
[chain-number] as a number for a [known-chain], first and last [chain-numbers] (space separated) for a range of [known-chains], or a sequence of comma separated [chain-numbers] for a sequence of [known-chains].
B. We generate an anthology of truncated [comment quotes in the opening thread comment. We might need to send this comment for the short-form previews to generate.
C. We copy the generated previews into a subsequent thread-comment or comments, further collapsing below-preview-length run-on comments by single authors, visually condensing large comments by attaching the rest of rich comments behind ‘show more’ bridges or cramming non-markdown text Into bot annotations, which are padded with less whitespace..
D. With the anthology fully inflated in the second(+) thread-comment(s), we replace the contents of the initial thread-comment with ‘woven by mod | users | consensus, summary follows’
E. We check if any of the tagged main channel comments belong to a user with a ‘no-thread-collapse’ role, classifying any of these as [held-comments]
F. We delete the [approved-comments] from the [approved-thread] in main channel and clear reacts from the remaining [held-comments].
~fin~Retroactive threadification complete!
Discord gods, please hear us out :)0
U moet u aanmelden om een opmerking te plaatsen.
Opmerkingen
1 opmerking