cinny icon indicating copy to clipboard operation
cinny copied to clipboard

[Feature Request] GIF Search

Open Heus-Sueh opened this issue 2 years ago • 7 comments

Describe the problem

The problem is that I can't access the gifs easily, which are a fun way to communicate with others

Describe the solution you'd like

Implement Tenor GIFs with a search engine Commet's dev managed to implement it in his app somehow, perhaps it would be interesting to see how the implementation was done to implement it in Cinny https://github.com/commetchat/commet/tree/main/commet/lib/client/components/gif

Alternatives considered

giphy, but their gifs are bad

Additional context

No response

Heus-Sueh avatar Nov 22 '23 01:11 Heus-Sueh

If the problem is a privacy concern as stated in PR #2392, we could go down a similar path to Commet where GIF search is by default off (for privacy reasons) and the user has to manually select it on in settings (like URL previews).

Adding GIF search to Cinny would make it super appealing to the average gamer (and my friends and I) given the discord look it's going for. Please consider this.

ratnik2 avatar Oct 17 '25 00:10 ratnik2

@ajbura Could I discuss this a bit with you? I'd like to see if there's a way we can implement this while addressing any privacy concerns there may be.

nwalkewicz avatar Nov 10 '25 09:11 nwalkewicz

@nwalkewicz Yes, sure. Do you have plan for implementing this?

ajbura avatar Nov 13 '25 04:11 ajbura

@ajbura There are many ways it could technically be done (some cleaner than others), but I'd like to know what your concerns are before spending too much time on a PoC. Is the issue the end user's data being collected by the gif provider and/or the API key holder without their knowledge? If so, I agree that's an issue for a matrix client. Would an opt-in setting (or even a simple notice the first time opening the gif menu) be sufficient for notifying the user that it's a less private option?

nwalkewicz avatar Nov 13 '25 09:11 nwalkewicz

@ajbura I've made the following (crude) mockup. Please let me know if you'd like to see in the actual UI and if you have any questions/suggestions/etc.

Flashbang warning. If you live in dark mode, open the next image.

Image

Dark version of the same image if anyone needs it.

Image

Edit: In my "Notes" section, I mention that Stickers and Emoji are tightly-related. Tightly-integrated is a better term. In the UI code for each, they're almost treated as the same view, just with different logic depending on what tab is selected. My suggestion is to either separate out this UI logic to something more modular, or to just special-case GIFs and otherwise handle emoji/stickers the same as before.

nwalkewicz avatar Nov 18 '25 04:11 nwalkewicz

@nwalkewicz Hey, These mockups looks good. But apart from the end user privacy concern another problem we have with gifs is while sending. When we send a gif as event we cant serve it directly from gif provider because this will create privacy issue for every receiver user (and not all client will support/allow loading image from third-party links). To solve this will need to download gifs from provider and re-upload to matrix content repository before sending an event and this will cause another issue of using server storage in inefficient way like uploading your same favourite gif every time you send it.

imo, some kind of server plug-in which act as bridge between mxc's to gif provider's gif url can be good solution for it. And having an msc for wider matrix ecosystem adoption.

ajbura avatar Nov 18 '25 11:11 ajbura

@ajbura Yeah that's a good point. I think if we don't want to introduce automatically downloading GIFs, an msc is the only option here. I'm very new to the Matrix protocol, so I'm not sure what the logistics would be in introducing something like this into the spec, but I imagine it would take quite a while and even then only would have a chance of being approved.

With that in mind, could we implement a workaround that does just send a URL from the GIF provider and makes the client do whatever they want with that? If someone chooses to have it automatically loaded, they could opt-in. Sort of like the mockup I sent earlier, it would ask if you want to load the GIF the first time you see it, then if rejected, only show the URL as-is and give you the option to change your mind later in Settings. Plus, if you choose to reject the automatic download, the URL itself would at least give you a hint of what the GIF is supposed to be. And if you really want to see it, you can pop it up in Tor or something.

Let me know how you feel about that idea. I'm also down to discuss the msc idea a bit more.

nwalkewicz avatar Nov 25 '25 01:11 nwalkewicz