Archive #programming-help threads on the website #28

Open
opened 2022-05-26 14:37:04 +00:00 by bvisness · 1 comment
Owner

Now that #programming-help uses threads, we have the ability to easily archive these threads to the website for later searching. This would expose the infinite wisdom of Martins to the broader internet and generally avoid one of the big downsides of doing programming help in a chat server.

I don't think we want this to be a full forum integration in some way. The cadence of conversation on Discord is

like

pretty different from what you do on a forum

and having all these messages show up as separate forum posts would be pretty disastrous for the rest of the UI

So, I think it is fine for this to be a one-way message archive, and not a live thing.

One question is how to represent users who have not linked a Discord account. We don't want to show their actual username and profile photo, because we want people to retain a level of anonymity. However, I think conversations would not be very readable if we simply said "Anonymous User" for everyone without a linked account. Therefore, I propose that we give each unlinked conversation participant a random profile pic from Anime Girls Holding Programming Books.

As for privacy in general, I feel that it is fine to reproduce the contents of #programming-help on the website because it is both explicitly on-topic and posted on a public Discord server. We should however respect message and thread deletion and reflect that on the site. Also, we could possibly add an explicit opt-out that an admin can manually set for a Discord user (linked or not), in case someone is uncomfortable having their programming questions being exposed to search engines, even in anonymous form.

We will have to modify our Discord code and data structures somewhat to allow us to save message content even for users without a linked account, because we have not done so up until this point. At the moment I think we have a beautiful setup that does nice cascading deletes of message content when you unlink an account. Sadly, that might have to go.

Now that #programming-help uses threads, we have the ability to easily archive these threads to the website for later searching. This would expose the infinite wisdom of Martins to the broader internet and generally avoid one of the big downsides of doing programming help in a chat server. I don't think we want this to be a full forum integration in some way. The cadence of conversation on Discord is like pretty different from what you do on a forum and having all these messages show up as separate forum posts would be pretty disastrous for the rest of the UI So, I think it is fine for this to be a one-way message archive, and not a live thing. One question is how to represent users who have not linked a Discord account. We don't want to show their actual username and profile photo, because we want people to retain a level of anonymity. However, I think conversations would not be very readable if we simply said "Anonymous User" for everyone without a linked account. Therefore, I propose that we give each unlinked conversation participant a random profile pic from [Anime Girls Holding Programming Books](https://github.com/cat-milk/Anime-Girls-Holding-Programming-Books). As for privacy in general, I feel that it is fine to reproduce the contents of #programming-help on the website because it is both explicitly on-topic and posted on a public Discord server. We should however respect message and thread deletion and reflect that on the site. Also, we could possibly add an explicit opt-out that an admin can manually set for a Discord user (linked or not), in case someone is uncomfortable having their programming questions being exposed to search engines, even in anonymous form. We will have to modify our Discord code and data structures somewhat to allow us to save message content even for users without a linked account, because we have not done so up until this point. At the moment I think we have a beautiful setup that does nice cascading deletes of message content when you unlink an account. Sadly, that might have to go.
Author
Owner

Here are some concrete steps to follow to get this going:

  1. Update the discord scrapechannel command to support threads. This will involve adding a new table to our database to store thread info, and will require us to extend the discord message table to store thread/channel IDs if it doesn't already.
  2. Currently, we don't save message contents unless the author of the message has linked their Discord account. We do this so that when someone unlinks their Discord account, we delete message contents to preserve their privacy somewhat. But that obviously doesn't work for #programming-help; we want to always save the message contents but simply show them as "anonymous" somehow. I think we can just start always saving message contents from both #project-showcase and #help.
  3. Update the real-time gateway stuff if necessary to support message creates, edits, and deletes in #help threads. However, most or all of this should already have been handled by step 1, since all that message-handling code is centralized

Of course, at the end we'll have to test the hell out of showcase, library, and help stuff again to make sure we didn't mess up any edge cases.

After that is all done, the rest is just building UI.

Here are some concrete steps to follow to get this going: 1. Update the `discord scrapechannel` command to support threads. This will involve adding a new table to our database to store thread info, and will require us to extend the discord message table to store thread/channel IDs if it doesn't already. 1. Currently, we don't save message contents unless the author of the message has linked their Discord account. We do this so that when someone unlinks their Discord account, we delete message contents to preserve their privacy somewhat. But that obviously doesn't work for #programming-help; we want to always save the message contents but simply show them as "anonymous" somehow. I think we can just start always saving message contents from both #project-showcase and #help. 1. Update the real-time gateway stuff if necessary to support message creates, edits, and deletes in #help threads. However, most or all of this should already have been handled by step 1, since all that message-handling code is centralized Of course, at the end we'll have to test the hell out of showcase, library, and help stuff again to make sure we didn't mess up any edge cases. After that is all done, the rest is just building UI.
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: hmn/hmn#28
No description provided.