[Feature] Mask and style messages that are categorized as spoilers, NSFW content, emotes, etc

@Alice, thanks for inspiring me to suggest a feature! I don’t know if this one exists anywhere else.

Idea name: Let users selectively reveal, always show, always hide, or stylize individual messages based on an optional category specified by the message author.

Description: Message authors may not be sure that everyone will want to read their message immediately, or even at all. This could apply to specific types of humor, content that reveals secrets about movies and other mainstream media (spoilers), content that could be considered to be adult/provocative (NSFW: “not safe for work”), stylized text expressing an action, and more.

Use case: As a message author, I want the option to categorize individual messages for other users to selectively reveal based on their category and context. As a message recipient, I want the option to selectively reveal messages by clicking/tapping them… plus the option to choose message categories that I never want to see.

Target user: Any user wanting to share content that others may not want to view immediately (nudity, spoilers, etc.) or might never want to see, plus any user wanting to use Status without concern for nearby people viewing their screen.

Why this is important: This potentially allows Status to be more user-friendly, as it provides an extra layer of customizability for users who may be using the app in professional environments.

Any other comments:

While this could potentially sound complex, I believe that it can just be implemented on the delivery side as additional metadata that is optionally appended to any message content. On the client side, the client would check for the metadata before rendering the message, and show/mask/hide as per client settings.

This could potentially be specified while a new message is being composed, as a click/tap menu icon in the text entry field (perhaps integrating with the sticker icon) and/or by using commands preceded with a slash. Content tagged as a spoiler or NSFW could be masked with its category name and require an extra click/tap. Content tagged as an emote could simply be stylized. Examples:


/nsfw moms-lightsaber.jpg

NSFW


/spoiler snape-kills-dumbledore.jpg

Spoiler


/emote picked the wrong week to quit amphetamines.

Sleepy Exhausted Sloth picked the wrong week to quit amphetamines.


Sorry about the images. :smirk_cat: Users could also potentially customize an option in their preferences (one per category) to hide all content for each individual category, always show it, or reveal it after a click/tap. The “reveal on click/tap” option should probably not exist for emotes.

This also presents SNT use cases if users can create their own content categories. Feedback welcome.


If you think this is a great idea and know how to implement it, consider posting a project proposal on Assemble. If you love this idea, hit the Vote button.

I loved the idea! It could be something similar to what happens on instagram when content is considered “sensitive”.

InstagramBlurredImageSensitiveContent

In this case, the user would select a photo / video or other content and mark it as “hidden content” according to the category. This feature could also include the ability to “single view” equal to the feature that exists in Signal.

view-once-animation

1 Like

I’m glad to hear that we have an implementation to reference! Thank you for the detailed reply, @Alice. :slight_smile: My vision for this is to allow users to get creative with reply masking and formatting in a useful way… like even creating a “guess this image” category where images could be blurred or pixelated to the preferences of the author, “guess the number/word” with a caption of something like “1-100” or “another word for automobile”, adding custom descriptions for the hidden content, making the text color the same as the background color, or any number of creative options that make sense. My hope is for people to make new social connections through creative options that don’t clutter the interface, and encourage unexpected engagement. :slight_smile:

2 Likes

These ideas are fantastic. I think there may also be an option to view a photo / video paying with cryptocurrencies.

Like “View this content for 100 SNT”. This function could be called “pay to see”.

Commenting on “categories” it would be interesting to have a visual difference between NSFW and spoilers, for example.
ff86cc84323459.5d5993106a64d

3 Likes

I really appreciate the feedback and input, @Alice. I hope that aspects of this can be implemented by Status core contributors without protocol changes (though I’d imagine that at least minor changes will be required), as I would imagine that purely client changes are simpler and result in backward compatibility. I have no idea what a message transmitted by the mailserver nodes should look like, but I would imagine that it has some metadata… and my hope is that the metadata could be extended with additional parameters. I’m not sure how the list of categories would live in a decentralized fashion unless there was some sort of complex smart contract aspect to it.

2 Likes

A randomize function would be another engaging way to extend this idea, and I believe that it can be implemented entirely on the client side through built-in random libraries, logic, and potentially third-party API calls if this doesn’t conflict with Status principles. These could encourage any number of social activities, such as text-based games. Examples:

/random number 1-20

Random number from 1 and 20 inclusive: 8

/random verb 2 english

Two random verbs from the English dictionary: swim jump

/random user 20

Random user from the last 20 messages in this channel: @cryptounknown.eth

/random date 04-23-2015 today

Random date from Friday, April 23, 2015 to Monday, June 29, 2020 inclusive: Sunday, May 27, 2018

/random erc20 15

Random ERC20 token from the 15 highest value tokens: BAT (#11, USD $0.2582, 0.000168 ETH)


I’d also love to see a quick way to check and share token prices via such commands.

/value snt usd

SNT = USD $0.022

/value snt eth

SNT = 0.000098 ETH

/value snt 24 minutes

SNT is up 0.12% over last 24 minutes


Some parameters could be optional if the commands were initiated in chat starting with a / command, by combining some default values with the app making intelligent guesses based on things like the user’s time zone and main currency selection.

I may have to rephrase this feature request as something more like slash-style chat commands.

2 Likes