mautrix / telegram

A Matrix-Telegram hybrid puppeting/relaybot bridge
https://matrix.to/#/#telegram:maunium.net
GNU Affero General Public License v3.0
1.34k stars 176 forks source link

Misleading 'online' status transmitted (potential Telegram ToS violation) #752

Closed blattersturm closed 2 years ago

blattersturm commented 2 years ago

Disclaimer: I don't use your product, but recently a contact of mine switched to use it. I'm therefore reporting this from the perspective of a 'native' Telegram user.

It appears that this bridge is transmitting 'online' status to Telegram based on the user being online on Matrix, which is not how Telegram usually behaves: in Telegram, online status is transmitted based on the user having the app currently foregrounded. This affects sorting order for native client users in groups, and leads to other state (such as 'last seen' indication) breaking as well.

This also likely violates the Telegram API Terms of Service (relevant part highlighted in bold):

1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user's knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the 'read' statuses of messages (e.g. implementing a 'ghost mode'), preventing typing statuses from being sent/displayed, etc.

The 'tampering with the read statuses' part is also curious, since I've seen numerous cases where this user ended up marking every message (across multiple groups and DMs) as 'read' instantly, which can be seen as a 'ghost mode' as well.

tulir commented 2 years ago

Presence is bridged as accurately as possible and the telegram docs don't seem to specify what should count as online.

Read receipts are also bridged mostly accurately, although in some cases the bridge might mark everything in a single chat as read instead of up to a specific message. That never affects multiple chats though, and it's always triggered by the user opening the chat in question.