ElJaviLuki / GrindrPlus

Making Grindr funnier than ever before!
GNU General Public License v3.0
167 stars 32 forks source link

increased user accountability #6

Open Lanchon opened 2 years ago

Lanchon commented 2 years ago

hi, thanks, great work!

a shitty thing about grindr is that the service tries to convey a fake sensation of unlimited guys. it does this by deleting old messages, unblocking profiles you previously blocked, and the like. a user can also block you and immediately unblock you to wipe your message history, in which the user might have acted impolitely and you might have chosen to thumb him down for it for instance.

i once hacked grindr and did several changes to lessen the impact of the "no history" features of grindr. some changes i remember:

many other changes, but those were most of the ones related to increased accountability. anyway, just food for thought.

ElJaviLuki commented 2 years ago

I really want to get to it!

By the way, I hadn't realized that the messages were automatically deleted; which is perhaps surprising given the amount of time I've been using Grindr since I've known it. How interesting!

Lanchon commented 2 years ago

yes there was a cleanup periodically ran on the local msg db. it erases messages older than X time. in grindr 1 it was totally absurd: it erased messages AFTER 30 DAYS lol. now the timeout is longer, maybe a year. in contrast, scruff never wipes history except if you block (which is stupid because you can unblock later and you'd have forgotten why you blocked in the first place).

Lanchon commented 2 years ago

i think the original motivation for 30 day deletion was that there were absolutely no indexes defined on the local msg db so it would turn crazy slow as messages were added. later they added some indexes but not enough to optimize the queries they used. grindr 1 looked like it was written by a 10 year old.

Lanchon commented 2 years ago

regarding blocks:

last time i looked, the app received remote blocks as chat objects. when received it would wipe the messages and the threads, and add the profile to a local block-rx db. when you block, it would send the remote block chat object itself, then invoke a block user server request, then add the profile to a local block-tx db.

but whenever you started grindr, it would resync the block-rx and block-tx dbs from the server. so only filtering the remote block chat object might not be enough.