f-list / fserv

Repository for the F-Chat server implementation.
BSD 2-Clause "Simplified" License
10 stars 5 forks source link

Unique Identifiers from libuuid to give unique IDs to messages #36

Closed princesstrash closed 9 years ago

princesstrash commented 9 years ago

specific ids that can uniquely identify a message (for a very long period of time) Added getUUID function to lua_chat Makefile was adjusted to link libuuid (uuid and uuid-dev)

kiranoot commented 9 years ago

Unfortunately due to the limited impact of this change, and the potentially large overhead of this system. I am rejecting it. If the scope and user demand of the request grows to warrant such overhead it can be reconsidered.

princesstrash commented 9 years ago

While I garner support for this, let me enumerate the number of things possible by adding this feature since I never properly or clearly stated it before in my excitement for a single feature:

Developer Feature: Unique IDs on a message At the current time, there is no way to unique identify a message and many messages sent by the same character with the same contents (e.g., "♥" from somebody named LovesEveryone, the usual "lmao" or "lol" one-liners, etc.) is non-unique to any other short messages with the same contents. Essentaly, there's no way of guaranteeing some kind of separation between messages, and they all essentially become lossfully encoded into a big text stream, where differentiation is near-impossible

This Pull Request allows for a unique ID to be tagged to the system at a low CPU cost and an extremely low maintenance overhead (one LuaChat function, well documented, commented in case concerns arise in the future).

Let's look at some of the User Benefits potential from this:

There are more potential things to do, like favoriting/cumming-on/indicating-enjoyment-of a particular message, which would actually be a very interesting roleplay feature for public players and other things of that nature. However, they're only really possible with a few other additions.

However, I think these benefits far outweigh the potential cost of developers might not allowing people to use them. The ability to edit/remove a message MIGHT requre another field on MSG and PRI to be added to indicate whether a message is editing a previously sent message (or you just check if the id of a message is the same as one of the ones sent before it, potentially with a 2 minute limit on it to prevent attempting to edit messages from aeons ago), but the last one is entirely a client-side use of the new uuid features.

Please reconsider the addition of UUIDs or any kind of identifier for chat messages.

kiranoot commented 9 years ago

The ability to edit or remove previously sent messages was a conscious omission. As F-Chat is community based and involves volunteer moderators, the ability to modify messages after being sent is a feature that will not be implemented or endorsed.

princesstrash commented 9 years ago

I'm not quite understanding the link between community based and volunteer mods and the inability to endorse this feature. What about that precludes the usefulness of being able to remove or edit a message sent?

WreckedAvent commented 9 years ago

The important thing I saw was:

a conscious omission

When users can edit the actual log history (particularly in PMs) then it makes moderation much more difficult, especially if you are a private room owner/moderator, as someone can just delete something offensive they say and then have logs to prove they never said it. Even things like skype do not give you unfettered edit-after-send.

princesstrash commented 9 years ago

I should have noted that part of the change should be the ability to only be able to change or remove a message for either 1 or 2 minutes after it was sent, which is a condition that can be enforced server-side since the server would be the one to produce the message.

Secondly, because F-Chat isn't the one storing its history, any log or history the client provides fully retains the ability to create a per-message history and show previous iterations of a message or even a deleted message.

The goal was that, visually, a client would provide the latest message (for the sake of fixing messed up tags, early-enters on long posts, etc.) and would also provide users the ability to redact very dumb things that they say (within the 1 to 2 minute limit).

This also provides another important ability for moderators, which is the ability to have the server send a message which hides / nukes a message from the visual presentation of users. Current moderation techniques are retroactive and cannot really save or help users if a disturbing link or particularly nasty piece of wording is said: you may be banned or kicked, but the link or your last words still remain and can still do damage. The ability for not only users to edit their messages and remove messages (again, within the at most 2 minute limit) but for moderators to swing a kill-switch on bad messages is a tool that would allow them to prevent individuals who read the chat later to have the option of not seeing the crap they don't want to see.

I certainly agree that unfettered history tampering is bad: I think that strictly controlled history tampering is good. It also gives users the chance to, in the case that they have one slip-up, offer them the ability to genuinely redact bad things, which I think is a more merciful and graceful system for communication. Repeat offenders, of course, can always still be banned/kicked/timeout at a moderator's discretion.