Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

increased user accountability #6

Open
Lanchon opened this issue Jun 27, 2022 · 4 comments
Open

increased user accountability #6

Lanchon opened this issue Jun 27, 2022 · 4 comments

Comments

@Lanchon
Copy link
Contributor

Lanchon commented Jun 27, 2022

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:

  • when a chat object was received, if it was a remote block, i changed its type to a text chat message containing the string "[block]". that way the history would remain -pics and all- and i would be notified of the blocking. remote wiping would fail, and i could also block them on other platforms so i wouldn't waste time on that guy again.
  • when i blocked a profile, an outgoing "[block]" text would be added to the local message table. then the thread would be removed from the message thread table, but the associated messages would not be purged. so the next time grind unblocked us, i would find the history there anyway (including my block). but i could still remove the thread from view by blocking.
  • i also disabled the deletion of old messages, and there was something done to the local profile cache to support that. (watch it! the db would grow and the app would get very slow. and i had to add missing indexes to the local sqlite db (the app was THAT bad, lol).)
  • whenever the app received a profile, it updated the local profile cache. i made it so that info would be updated but not deleted from the local cache. so if somebody hid or removed data, i would see the old data instead.
  • and in particular, when somebody changed their profile pic (there was only one pic per profile then) my app would fake a received message: the old pic would be stored in the chat as a received message. so whenever i opened a chat, i could see all their past profile pics. it was GREAT to spot fakes.
  • this was kinda creepy but fun: it also logged all other changes to the profiles as received messages: changes in name, description, age, height, weight, etc. some people were really weird in how the utterly lied about everything.
  • finally all "synthetic" chat messages were permanently marked as "now being delivered" (even the received ones -it worked) so that they would be a different color for easy visual identification (they would be shaded down). also most synthetic chats would not generate receive notifications (but blocks would).

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

@ElJaviLuki
Copy link
Owner

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
Copy link
Contributor Author

Lanchon commented Jun 27, 2022

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
Copy link
Contributor Author

Lanchon commented Jun 27, 2022

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
Copy link
Contributor Author

Lanchon commented Jun 27, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants