1023 lines
42 KiB
Markdown
1023 lines
42 KiB
Markdown
# v0.15.2 (unreleased)
|
|
|
|
* Dropped support for Python 3.9.
|
|
* Updated Telegram API to layer 179.
|
|
* Added support for receiving reactions when using a bot account.
|
|
* Added option to limit file size by chat type.
|
|
* Fixed reply bridging breaking in some cases.
|
|
|
|
# v0.15.1 (2023-12-26)
|
|
|
|
* Updated Telegram API to layer 169.
|
|
* Updated Docker image to Alpine 3.19.
|
|
* Fixed some potential cases where a portal room would be created for the
|
|
relaybot even if `ignore_unbridged_group_chat` was enabled.
|
|
* Fixed member sync in groups with hidden members causing puppeted Matrix users
|
|
to be kicked even if they're still in the group.
|
|
|
|
# v0.15.0 (2023-11-26)
|
|
|
|
* Removed support for MSC2716 backfilling.
|
|
* Added `add-contact` and `delete-contact` commands.
|
|
* Updated Telegram API layer to 166.
|
|
* Includes receiving view-once media, blockquotes, quote replies and other
|
|
such things
|
|
* Fixed AuthKeyNotFound errors not being handled and causing users to get stuck
|
|
in a non-logged-in state.
|
|
|
|
# v0.14.2 (2023-09-19)
|
|
|
|
* **Security:** Updated Pillow to 10.0.1.
|
|
* Added support for double puppeting with arbitrary `as_token`s.
|
|
See [docs](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new) for more info.
|
|
* Added support for sending webm and tgs files as stickers.
|
|
* Updated to Telegram API layer 161.
|
|
* Fixed cached usernames for Telegram users being cleared incorrectly, leading
|
|
to mentions not being bridged as usernames.
|
|
* Fixed reaction bridging failing if the server running the bridge was rebooted
|
|
less than 12 hours ago.
|
|
|
|
# v0.14.1 (2023-06-26)
|
|
|
|
### Added
|
|
* Added option to delete megolm sessions that were received before the
|
|
automatic ratcheting options were introduced.
|
|
* Added config option to use IPv6 for Telegram connection
|
|
(thanks to [@exciler] in [#920]).
|
|
|
|
### Improved
|
|
* Dropped support for Python 3.8.
|
|
* Updated Docker image to Alpine 3.18.
|
|
* Added timeout for forward backfills to prevent it from getting stuck
|
|
permanently.
|
|
|
|
### Fixed
|
|
* Fixed `bridge.filter.users` config option not being read correctly.
|
|
* Fixed proxy support to use python-socks instead of pysocks.
|
|
|
|
[@exciler]: https://github.com/exciler
|
|
[#920]: https://github.com/mautrix/telegram/pull/920
|
|
|
|
# v0.14.0 (2023-05-26)
|
|
|
|
### Added
|
|
* Added fallback messages for calls and premium gifts.
|
|
* Added options to automatically ratchet/delete megolm sessions to minimize
|
|
access to old messages.
|
|
* Added option to not set room name/avatar even in encrypted rooms.
|
|
* Implemented appservice pinging using MSC2659.
|
|
* Added option to disable or filter bridging direct chats
|
|
(thanks to [@Steffo99] in [#892]).
|
|
* Added options to specify different limits for forward and catchup backfilling
|
|
depending on chat type.
|
|
|
|
### Improved
|
|
* Improved handling logouts and certain connection errors.
|
|
* Changed reaction bridging to preserve timestamps.
|
|
* Disabled creating portals for DMs that don't have any messages when
|
|
`sync_direct_chats` is enabled.
|
|
|
|
### Fixed
|
|
* Fixed syncing mute status when portal is created through incoming message
|
|
rather than in startup sync.
|
|
* Fixed bridge incorrectly trusting member list and kicking users when
|
|
supergroup has member list hidden.
|
|
* Fixed sending messages after creating groups from Matrix using relaybot
|
|
instead of puppet (thanks to [@maltee1] in [#902]).
|
|
|
|
[@Steffo99]: https://github.com/Steffo99
|
|
[@maltee1]: https://github.com/maltee1
|
|
[#892]: https://github.com/mautrix/telegram/pull/892
|
|
[#902]: https://github.com/mautrix/telegram/pull/902
|
|
|
|
# v0.13.0 (2023-02-26)
|
|
|
|
### Added
|
|
* Added `allow_contact_info` config option to specify whether personal names
|
|
and avatars for other users should be bridged.
|
|
* The option is only safe to enable on single-user instances, using it
|
|
anywhere else will cause ghost user profiles to flip back and forth between
|
|
personal and default ones.
|
|
* Added config option to notify Matrix room if bridging an incoming message
|
|
fails.
|
|
|
|
### Improved
|
|
* Updated Docker image to Alpine 3.17.
|
|
* Updated to Telegram API layer 152.
|
|
* Improved handling users getting logged out.
|
|
* Removed support for creating accounts, as Telegram only allows requesting SMS
|
|
login codes on the official mobile clients now.
|
|
* Replaced moviepy with calling ffmpeg directly for generating video thumbnails.
|
|
|
|
### Fixed
|
|
* Fixed handling Telegram chat upgrades when backfilling is enabled.
|
|
* Fixed file transfers failing if transfering the thumbnail fails.
|
|
* Fixed bridging unnamed files with unrecognized mime types.
|
|
* Fixed enqueueing more backfill.
|
|
* Fixed timestamps not being saved in `telegram_file` table.
|
|
* Fixed issues with old events being replayed if the bridge was shut down
|
|
uncleanly.
|
|
|
|
# v0.12.2 (2022-11-26)
|
|
|
|
### Added
|
|
* Added built-in custom emoji packs to allow reacting with any standard unicode
|
|
emoji from Matrix (note that only premium users can use custom emojis).
|
|
* Added infinite backfill using [MSC2716].
|
|
* The new system includes a backwards compatibility mechanism which uses the
|
|
old method of just sending events to the room. By default, MSC2716 is not
|
|
enabled and the legacy method will be used.
|
|
|
|
### Improved
|
|
* Redacting reactions on Matrix no longer removes the user's other reactions to
|
|
the same message (premium users can have up to 3 reactions per message).
|
|
* Changes to default user permissions on Telegram are now bridged.
|
|
* Added database index to make reaction polling more efficient
|
|
(thanks to [@AndrewFerr] in [#862]).
|
|
|
|
### Fixed
|
|
* Fixed provisioning API not working with URL-encoded parameters.
|
|
|
|
[MSC2716]: https://github.com/matrix-org/matrix-spec-proposals/pull/2716
|
|
[@AndrewFerr]: https://github.com/AndrewFerr
|
|
[#862]: https://github.com/mautrix/telegram/pull/862
|
|
|
|
# v0.12.1 (2022-09-26)
|
|
|
|
### Added
|
|
* Support for custom emojis in reactions.
|
|
* Like other bridges with custom emoji reactions, they're bridged as `mxc://`
|
|
URIs, so client support is required to render them properly.
|
|
|
|
### Improved
|
|
* The bridge will now poll for reactions to 20 most recent messages when
|
|
receiving a read receipt. This works around Telegram's bad protocol that
|
|
doesn't notify clients on reactions to other users' messages.
|
|
* The docker image now has an option to bypass the startup script by setting
|
|
the `MAUTRIX_DIRECT_STARTUP` environment variable. Additionally, it will
|
|
refuse to run as a non-root user if that variable is not set (and print an
|
|
error message suggesting to either set the variable or use a custom command).
|
|
* Moved environment variable overrides for config fields to mautrix-python.
|
|
The new system also allows loading JSON values to enable overriding maps like
|
|
`login_shared_secret_map`.
|
|
|
|
### Fixed
|
|
* `ChatParticipantsForbidden` is handled properly when syncing non-supergroup
|
|
info.
|
|
* Fixed some bugs with file transfers when using SQLite.
|
|
* Fixed error when attempting to log in again after logging out.
|
|
* Fixed QR login not working.
|
|
* Fixed error syncing chats if bridging a message had previously been
|
|
interrupted.
|
|
|
|
# v0.12.0 (2022-08-26)
|
|
|
|
**N.B.** This release requires a homeserver with Matrix v1.1 support, which
|
|
bumps up the minimum homeserver versions to Synapse 1.54 and Dendrite 0.8.7.
|
|
Minimum Conduit version remains at 0.4.0.
|
|
|
|
### Added
|
|
* Added provisioning API for resolving Telegram identifiers (like usernames).
|
|
* Added support for bridging Telegram custom emojis to Matrix.
|
|
* Added option to not bridge chats with lots of members.
|
|
* Added option to include captions in the same message as the media to
|
|
implement [MSC2530]. Sending captions the same way is also supported and
|
|
enabled by default.
|
|
* Added commands to kick or ban relaybot users from Telegram.
|
|
* Added support for Telegram's disappearing messages.
|
|
* Added support for bridging forwarded messages as forwards on Telegram.
|
|
* Forwarding is not allowed in relay mode as the bot wouldn't be able to
|
|
specify who sent the message.
|
|
* Matrix doesn't have real forwarding (there's no forwarding metadata), so
|
|
only messages bridged from Telegram can be forwarded.
|
|
* Double puppeted messages from Telegram currently can't be forwarded without
|
|
removing the `fi.mau.double_puppet_source` key from the content.
|
|
* If forwarding fails (e.g. due to it being blocked in the source chat), the
|
|
bridge will automatically fall back to sending it as a normal new message.
|
|
* Added options to make encryption more secure.
|
|
* The `encryption` -> `verification_levels` config options can be used to
|
|
make the bridge require encrypted messages to come from cross-signed
|
|
devices, with trust-on-first-use validation of the cross-signing master
|
|
key.
|
|
* The `encryption` -> `require` option can be used to make the bridge ignore
|
|
any unencrypted messages.
|
|
* Key rotation settings can be configured with the `encryption` -> `rotation`
|
|
config.
|
|
|
|
### Improved
|
|
* Improved handling the bridge user leaving chats on Telegram, and new users
|
|
being added on Telegram.
|
|
* Improved animated sticker conversion options: added support for animated webp
|
|
and added option to convert video stickers (webm) to the specified image
|
|
format.
|
|
* Audio and video metadata is now bridged properly to Telegram.
|
|
* Added database index on Telegram usernames (used when bridging username
|
|
@-mentions in messages).
|
|
* Changed `/login/send_code` provisioning API to return a proper error when the
|
|
phone number is not registered on Telegram.
|
|
* The same login code can be used for registering an account, but registering
|
|
is not currently supported in the provisioning API.
|
|
* Removed `plaintext_highlights` config option (the code using it was already
|
|
removed in v0.11.0).
|
|
* Enabled appservice ephemeral events by default for new installations.
|
|
* Existing bridges can turn it on by enabling `ephemeral_events` and disabling
|
|
`sync_with_custom_puppets` in the config, then regenerating the registration
|
|
file.
|
|
* Updated to API layer 144 so that Telegram would send new message types like
|
|
premium stickers to the bridge.
|
|
* Updated Docker image to Alpine 3.16 and made it smaller.
|
|
|
|
### Fixed
|
|
* Fixed command prefix in game and poll messages (thanks to [@cynhr] in [#804]).
|
|
|
|
[MSC2530]: https://github.com/matrix-org/matrix-spec-proposals/pull/2530
|
|
[@cynhr]: https://github.com/cynhr
|
|
[#804]: https://github.com/mautrix/telegram/pull/804
|
|
|
|
# v0.11.3 (2022-04-17)
|
|
|
|
**N.B.** This release drops support for old homeservers which don't support the
|
|
new `/v3` API endpoints. Synapse 1.48+, Dendrite 0.6.5+ and Conduit 0.4.0+ are
|
|
supported. Legacy `r0` API support can be temporarily re-enabled with `pip install mautrix==0.16.0`.
|
|
However, this option will not be available in future releases.
|
|
|
|
### Added
|
|
* Added `list-invite-links` command to list invite links in a chat.
|
|
* Added option to use [MSC2246] async media uploads.
|
|
* Provisioning API for listing contacts and starting private chats.
|
|
|
|
### Improved
|
|
* Dropped Python 3.7 support.
|
|
* Telegram->Matrix message formatter will now replace `t.me/c/chatid/messageid`
|
|
style links with a link to the bridged Matrix event (in addition to the
|
|
previously supported `t.me/username/messageid` links).
|
|
* Updated formatting converter to keep newlines in code blocks as `\n` instead
|
|
of converting them to `<br/>`.
|
|
* Removed `max_document_size` option. The bridge will now fetch the max size
|
|
automatically using the media repo config endpoint.
|
|
* Removed redundant `msgtype` field in sticker events sent to Matrix.
|
|
* Disabled file logging in Docker image by default.
|
|
* If you want to enable it, set the `filename` in the file log handler to a
|
|
path that is writable, then add `"file"` back to `logging.root.handlers`.
|
|
* Reactions are now marked as read when bridging read receipts from Matrix.
|
|
|
|
### Fixed
|
|
* Fixed `!tg bridge` throwing error if the parameter is not an integer
|
|
* Fixed `!tg bridge` failing if the command had been previously run with an
|
|
incorrectly prefixed chat ID (e.g. `!tg bridge -1234567` followed by
|
|
`!tg bridge -1001234567`).
|
|
* Fixed `bridge_matrix_leave` config option not actually being used correctly.
|
|
* Fixed public channel mentions always bridging into a user mention on Matrix
|
|
rather than a room mention.
|
|
* The bridge will now make room mentions if the portal exists and fall back
|
|
to user mentions otherwise.
|
|
* Fixed newlines being lost in unformatted forwarded messages.
|
|
|
|
[MSC2246]: https://github.com/matrix-org/matrix-spec-proposals/pull/2246
|
|
|
|
# v0.11.2 (2022-02-14)
|
|
|
|
**N.B.** This will be the last release to support Python 3.7. Future versions
|
|
will require Python 3.8 or higher. In general, the mautrix bridges will only
|
|
support the lowest Python version in the latest Debian or Ubuntu LTS.
|
|
|
|
### Added
|
|
* Added simple fallback message for live location and venue messages from Telegram.
|
|
* Added support for `t.me/+code` style invite links in `!tg join`.
|
|
* Added support for showing channel profile when users send messages as a channel.
|
|
* Added "user joined Telegram" message when Telegram auto-creates a DM chat for
|
|
a new user.
|
|
|
|
### Improved
|
|
* Added option for adding a random prefix to relayed user displaynames to help
|
|
distinguish them on the Telegram side.
|
|
* Improved syncing profile info to room info when using encryption and/or the
|
|
`private_chat_profile_meta` config option.
|
|
* Removed legacy `community_id` config option.
|
|
|
|
### Fixed
|
|
* Fixed newlines disappearing when bridging channel messages with signatures.
|
|
* Fixed login throwing an error if a previous login code expired.
|
|
* Fixed bug in v0.11.0 that broke `!tg create`.
|
|
|
|
# v0.11.1 (2022-01-10)
|
|
|
|
### Added
|
|
* Added support for message reactions.
|
|
* Added support for spoiler text.
|
|
|
|
### Improved
|
|
* Support for voice messages.
|
|
* Changed color of blue text from Telegram to be more readable on dark themes.
|
|
|
|
### Fixed
|
|
* Fixed syncing contacts throwing an error for new accounts.
|
|
* Fixed migrating pre-v0.11 legacy databases if the database schema had been
|
|
corrupted (e.g. by using 3rd party tools for SQLite -> Postgres migration).
|
|
* Fixed converting animated stickers to webm with >33 FPS.
|
|
* Fixed a bug in v0.11.0 that broke mentioning users in groups
|
|
(thanks to [@dfuchss] in [#724]).
|
|
|
|
[@dfuchss]: https://github.com/dfuchss
|
|
[#724]: https://github.com/mautrix/telegram/pull/724
|
|
|
|
# v0.11.0 (2021-12-28)
|
|
|
|
* Switched from SQLAlchemy to asyncpg/aiosqlite.
|
|
* The default database is now Postgres. If using SQLite, make sure you install
|
|
the `sqlite` [optional dependency](https://docs.mau.fi/bridges/python/optional-dependencies.html).
|
|
* **Alembic is no longer used**, schema migrations happen automatically on startup.
|
|
* **The automatic database migration requires you to be on the latest legacy
|
|
database version.** If you were running any v0.10.x version, you should be on
|
|
the latest version already. Otherwise, update to v0.10.2 first, upgrade the
|
|
database with `alembic`, then upgrade to v0.11.0 (or higher).
|
|
* Added support for contact messages.
|
|
* Added support for Telegram sponsored messages in channels.
|
|
* Only applies to broadcast channels with 1000+ members
|
|
(as per <https://t.me/durov/172>).
|
|
* Only applies if you're using puppeting with a normal user account,
|
|
because bots can't get sponsored messages.
|
|
* Fixed non-supergroup member sync incorrectly kicking one user from the Matrix
|
|
side if there was no limit on the number of members to sync (broke in v0.10.2).
|
|
* Updated animated sticker conversion to support [lottieconverter r0.2]
|
|
(thanks to [@sot-tech] in [#694]).
|
|
* Updated Docker image to Alpine 3.15.
|
|
* Formatted all code using [black](https://github.com/psf/black)
|
|
and [isort](https://github.com/PyCQA/isort).
|
|
|
|
[lottieconverter r0.2]: https://github.com/sot-tech/LottieConverter/releases/tag/r0.2
|
|
[#694]: https://github.com/mautrix/telegram/pull/694
|
|
|
|
# v0.10.2 (2021-11-13)
|
|
|
|
### Added
|
|
* Added extensions when bridging unnamed files from Telegram.
|
|
* Added support for custom bridge bot welcome messages
|
|
(thanks to [@justinbot] in [#676]).
|
|
|
|
### Improved
|
|
* Improved handling authorization errors if the bridge was logged out remotely.
|
|
* Updated room syncer to use existing power levels to find appropriate levels
|
|
for admins and normal users instead of hardcoding 50 and 0.
|
|
* Updated to Telegram API layer 133 to handle 64-bit user/chat/channel IDs.
|
|
* Stopped logging message contents when message handling failed
|
|
(thanks to [@justinbot] in [#681]).
|
|
* Removed Element iOS compatibility hack from non-sticker files.
|
|
* Made `max_initial_member_sync` work for non-supergroups too
|
|
(thanks to [@tadzik] in [#680]).
|
|
* SQLite is now supported for the crypto database. Pickle is no longer supported.
|
|
If you were using pickle, the bridge will create a new e2ee session and store
|
|
the data in SQLite this time.
|
|
|
|
### Fixed
|
|
* Fixed generating reply fallbacks to encrypted messages.
|
|
* Fixed chat sync failing if the member list contained banned users.
|
|
|
|
[@justinbot]: https://github.com/justinbot
|
|
[@tadzik]: https://github.com/tadzik
|
|
[#676]: https://github.com/mautrix/telegram/pull/676
|
|
[#680]: https://github.com/mautrix/telegram/pull/680
|
|
[#681]: https://github.com/mautrix/telegram/pull/681
|
|
|
|
# v0.10.1 (2021-08-19)
|
|
|
|
**N.B.** Docker images have moved from `dock.mau.dev/tulir/mautrix-telegram`
|
|
to `dock.mau.dev/mautrix/telegram`. New versions are only available at the new
|
|
path.
|
|
|
|
### Added
|
|
|
|
* Warning when bridging existing room if bridge bot doesn't have redaction
|
|
permissions.
|
|
* Custom flag to invite events that will be auto-accepted using double puppeting.
|
|
* Custom flags for animated stickers (same as what gifs already had).
|
|
|
|
### Improved
|
|
* Updated to Telethon 1.22.
|
|
* Updated Docker image to Alpine 3.14.
|
|
|
|
### Fixed
|
|
* Fixed Bridging Matrix location messages with additional flags in `geo_uri`.
|
|
* Editing encrypted messages will no longer add an asterisk on Telegram.
|
|
* Matrix typing notifications won't be echoed back for double puppeted users anymore.
|
|
* `AuthKeyDuplicatedError` is now handled properly instead of making the user
|
|
get stuck.
|
|
* Fixed `public_portals` setting not being respected on room creation.
|
|
|
|
# v0.10.0 (2021-06-14)
|
|
|
|
* Added options to bridge archive, pin and mute status from Telegram to Matrix.
|
|
* Added custom fields in Matrix events indicating Telegram gifs.
|
|
* Allowed zero-width joiners in displaynames so things like multi-part emoji
|
|
would work correctly.
|
|
* Fixed Telegram->Matrix typing notifications.
|
|
|
|
## rc1 (2021-04-05)
|
|
|
|
### Added
|
|
* Support for multiple pins from/to Telegram.
|
|
* Option to resolve redirects when joining invite links, for people who use
|
|
custom URLs as invite links.
|
|
* Command to update about section in Telegram profile info
|
|
(thanks to [@MadhuranS] in [#599]).
|
|
* Own read marker/unread status from Telegram is now synced to Matrix after backfilling.
|
|
* Support for showing the individual slots in 🎰 dice rolls from Telegram.
|
|
|
|
### Improved
|
|
* Improved invite link regex to allow joining with less precise invite links.
|
|
* Invite links can be customized with the `--uses=<amount>` and
|
|
`--expire=<delta>` flags for `!tg invite-link`.
|
|
* Read receipts where the target message is unknown will now cause the chat to
|
|
be marked as fully read instead of the read receipt event being ignored.
|
|
* WebP stickers are now sent as-is without converting to png.
|
|
* Default power levels in rooms now allow enabling encryption with PL 50 if
|
|
e2be is enabled in config (thanks to [@Rafaeltheraven] in [#550]).
|
|
* Updated Docker image to Alpine 3.13 and removed all edge repo stuff.
|
|
|
|
### Fixed
|
|
* Matrix->Telegram location message bridging no longer flips the coordinates.
|
|
* Fixed some user displaynames constantly changing between contact/non-contact
|
|
names and other similar cases.
|
|
|
|
[@Rafaeltheraven]: https://github.com/Rafaeltheraven
|
|
[@MadhuranS]: https://github.com/MadhuranS
|
|
[#550]: https://github.com/mautrix/telegram/pull/550
|
|
[#599]: https://github.com/mautrix/telegram/pull/599
|
|
|
|
# v0.9.0 (2020-11-17)
|
|
|
|
* Fixed cleaning unidentified rooms.
|
|
|
|
## rc3 (2020-11-12)
|
|
|
|
### Added
|
|
* Added retrying message sending if server returns 502.
|
|
|
|
### Fixed
|
|
* Fixed Matrix → Telegram name mentions.
|
|
* Fixed some bugs with replies.
|
|
|
|
## rc2 (2020-11-06)
|
|
|
|
### Improved
|
|
* Ephemeral event handling should be faster by not checking the database for
|
|
user existence.
|
|
* Using the register command now sends a link to the Telegram terms of service.
|
|
* The `bridge_connected` metric is now only set for users who are logged in.
|
|
|
|
### Fixed
|
|
* Fixed bug where syncing members sometimes kicked ghosts of users who were
|
|
actually still in the chat.
|
|
* Fixed sending captions to Telegram with `!tg caption` (broken in rc1).
|
|
* Logging out will now delete private chat portals, instead of only kicking the
|
|
user and leaving the portal in a broken state.
|
|
* Unbridging direct chat portals is now possible.
|
|
|
|
## rc1 (2020-10-24)
|
|
|
|
### Breaking changes
|
|
* Prometheus metric names are now prefixed with `bridge_`.
|
|
* An entrypoint script is no longer automatically generated. This won't affect
|
|
most users, as `python -m mautrix_telegram` has been the official way to start
|
|
the bridge for a long time.
|
|
|
|
### Added
|
|
* Support for logging in by scanning a QR code from another Telegram client.
|
|
* Automatic backfilling of old messages when creating portals.
|
|
* Automatic backfilling of missed messages when starting bridge.
|
|
* Option to update `m.direct` list when using double puppeting.
|
|
* PNG thumbnails for animated stickers when converted to webm.
|
|
* Support for receiving ephemeral events pushed directly with [MSC2409]
|
|
(requires Synapse 1.22 or higher).
|
|
|
|
### Improved
|
|
* Switched end-to-bridge encryption to mautrix-python instead of a hacky
|
|
matrix-nio solution.
|
|
* End-to-bridge encryption no longer requires `login_shared_secret`, it uses
|
|
[MSC2778] instead (requires Synapse 1.21 or higher).
|
|
* The bridge info state event is now updated whenever the chat name or avatar changes.
|
|
* Double puppeting is no longer limited to users on the same homeserver as the bridge.
|
|
* Delivery receipts are no longer sent in unencrypted private chat portals, as
|
|
the bridge bot is usually not present in them.
|
|
|
|
### Fixed
|
|
* File captions are now sent as a separate message like photo captions.
|
|
* The relaybot no longer drops Telegram messages with commands.
|
|
* Bridging events of a user whose power level is malformed (i.e. a string
|
|
instead of an integer) now works.
|
|
|
|
[MSC2409]: https://github.com/matrix-org/matrix-spec-proposals/pull/2409
|
|
[MSC2778]: https://github.com/matrix-org/matrix-spec-proposals/pull/2778
|
|
|
|
# v0.8.2 (2020-07-27)
|
|
|
|
* Fixed deleting messages from Matrix.
|
|
* Fixed Alpine edge dependencies in Docker image.
|
|
|
|
Note: this release is not on PyPI, as the only changes were a mautrix-python
|
|
update (v0.5.8) and a fix to the Docker image.
|
|
|
|
# v0.8.1 (2020-06-08)
|
|
|
|
* Fixed starting bridge for the first time failing due to not registering the bridge bot.
|
|
* Updated Docker image to Alpine 3.12.
|
|
|
|
# v0.8.0 (2020-06-03)
|
|
|
|
* Updated to mautrix-python 0.5.0 and matrix-nio 0.12.0.
|
|
|
|
## rc5 (2020-05-30)
|
|
|
|
* Added option to disable removing avatars from Telegram ghosts.
|
|
* Added option to send delivery error notices.
|
|
* Added option to send delivery receipts.
|
|
* Bumped maximum Telethon version to 1.14.
|
|
* Possibly fixed infinite loop of avatar changes when using double puppeting.
|
|
|
|
## rc3 (2020-05-22)
|
|
|
|
* Moved private information to trace log level.
|
|
* Added `private_chat_portal_meta` option. This is implicitly enabled when
|
|
encryption is enabled, it was only added as an option for instances with
|
|
encryption disabled.
|
|
* Removed avatars are now synced properly from Telegram, instead of leaving the
|
|
last known avatar forever.
|
|
* Fixed admin detection on Telegram-side relaybot commands
|
|
(thanks to [@davidmehren] in [#468]).
|
|
* Fixed bug handling `ChatForbidden` when syncing chats.
|
|
|
|
[@davidmehren]: https://github.com/davidmehren
|
|
[#468]: https://github.com/mautrix/telegram/pull/468
|
|
|
|
## rc2 (2020-05-20)
|
|
|
|
* Implemented [MSC2346]: Bridge information state event for newly created rooms.
|
|
* Fixed `sync_direct_chats` option creating non-working portals.
|
|
* Fixed video thumbnailing sometimes leaving behind downloaded videos in `/tmp`.
|
|
|
|
[MSC2346]: https://github.com/matrix-org/matrix-spec-proposals/pull/2346
|
|
|
|
## rc1 (2020-04-25)
|
|
|
|
### Added
|
|
* Command for backfilling room history from Telegram.
|
|
* arm64 support in docker images.
|
|
* Optional end-to-bridge encryption support.
|
|
See [docs](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) for more info.
|
|
* Bridging for Telegram dice roll messages.
|
|
|
|
### Fixed
|
|
* Riot iOS not showing stickers properly.
|
|
* Updated to Telethon 1.13 to fix bugs like [#443].
|
|
|
|
[#443]: https://github.com/mautrix/telegram/issues/443
|
|
|
|
# v0.7.2 (2020-04-04)
|
|
|
|
* No changes since rc1.
|
|
|
|
## rc1 (2020-02-08)
|
|
|
|
* Fixed enabling double puppeting causing saved messages to become unusable.
|
|
* Fixed receiving channel messages when `ignore_own_incoming_events` was enabled.
|
|
|
|
# v0.7.1 (2020-02-04)
|
|
|
|
* Fixed missing responses in logout provisioning API.
|
|
|
|
## rc2 (2020-01-25)
|
|
|
|
* Fixed import in database migration script (thanks to [@cubesky] in [#409]).
|
|
* Fixed relaybot messages being allowed through to Matrix even when
|
|
`ignore_own_incoming_events` was set to `true`.
|
|
|
|
[@cubesky]: https://github.com/cubesky
|
|
[#409]: https://github.com/mautrix/telegram/pull/409
|
|
|
|
## rc1 (2020-01-11)
|
|
|
|
* Fixed incorrect parameter name causing `!tg config set` to throw an error.
|
|
* Fixed potential dictionary size changed during iteration crash.
|
|
|
|
# v0.7.0 (2019-12-28)
|
|
|
|
* No changes since rc4.
|
|
|
|
## rc4 (2019-12-25)
|
|
|
|
* Fixed handling of Matrix `m.emote` events.
|
|
|
|
## rc3 (2019-12-25)
|
|
|
|
* Added option to log in to custom puppet with shared secret
|
|
(<https://github.com/devture/matrix-synapse-shared-secret-auth>).
|
|
* Updated Docker image to Alpine 3.11.
|
|
* Improved displayname syncing by trusting any displayname if user is not a contact.
|
|
* Fixed error when cleaning up rooms.
|
|
* Fixed stack traces being printed to non-admin users.
|
|
* Fixed invite rejections being handles as leaves.
|
|
* Fixed `version` command output in CI docker builds not showing the correct
|
|
git commit hash.
|
|
|
|
## rc2 (2019-12-01)
|
|
|
|
* Added command to get bridge version.
|
|
* Made bridge refuse to start if config contains example values.
|
|
* Removed some debug stack traces.
|
|
* Ignored `ChatForbidden` when syncing chats that was causing the sync to fail.
|
|
* Fixed DB migration causing some incorrect values to be left behind.
|
|
|
|
## rc1 (2019-11-30)
|
|
|
|
### Important changes
|
|
* Dropped Python 3.5 compatibility.
|
|
* Moved docker registry to [dock.mau.dev](https://mau.dev/tulir/mautrix-telegram/container_registry).
|
|
|
|
### Added
|
|
* Support for bridging animated stickers (thanks to [@sot-tech] in [#366]).
|
|
* Requires [LottieConverter](https://github.com/sot-tech/LottieConverter),
|
|
which is included in the docker image.
|
|
* Can be [configured](https://github.com/mautrix/telegram/blob/v0.7.0-rc1/example-config.yaml#L174-L187).
|
|
* Support for MTProxy (thanks to [@sot-tech] in [#344]).
|
|
* [Config option](https://github.com/mautrix/telegram/blob/v0.7.0-rc1/example-config.yaml#L117-L118)
|
|
for max length of displayname, with the default being 100.
|
|
* Separate [config option](https://github.com/mautrix/telegram/blob/v0.7.0-rc1/example-config.yaml#L232-L238)
|
|
for `m.emote` formatting of logged in users.
|
|
* Streamed file transfers and parallel telegram file download/upload.
|
|
* Files are streamed from telegram servers to the media repo rather than
|
|
downloading the whole file into memory.
|
|
* File transfers use multiple connections to telegram servers to transfer faster.
|
|
* Parallel and streamed file transfers can be enabled in the
|
|
[config](https://github.com/mautrix/telegram/blob/v0.7.0-rc1/example-config.yaml#L166-L169).
|
|
* Command to set caption for files and images when sending to telegram.
|
|
* Bridging bans to telegram.
|
|
* Helm chart.
|
|
|
|
### Improved
|
|
* Switched from mautrix-appservice-python to [mautrix-python](https://github.com/mautrix/python).
|
|
* Users with Matrix puppeting can now bridge their "Saved Messages" chat.
|
|
* The bridge will refuse to start without access to the example config file.
|
|
* Changed default port to 29317.
|
|
* Mentions are now marked as read on Telegram when bridging read receipts using
|
|
double puppeting.
|
|
* Kicking or banning the bridge bot will now unbridge the room.
|
|
* Shrinked Docker image from 151mb to 77mb.
|
|
|
|
### Fixed
|
|
* The bridge will no longer crash if one user's startup fails.
|
|
* (hopefully) Incorrect peer type being saved into database in some cases.
|
|
* File names when bridging to Telegram.
|
|
* Alembic config interpolating passwords with `%`.
|
|
* A single chat failing to sync preventing any chat from syncing.
|
|
* Users logged in as a bot not receiving any messages.
|
|
* Username matching being case-sensitive in the database and preventing
|
|
telegram->matrix pillifying.
|
|
* IndexError if running `!tg set-pl` with no parameters.
|
|
|
|
[@sot-tech]: https://github.com/sot-tech
|
|
[#344]: https://github.com/mautrix/telegram/pull/344
|
|
[#366]: https://github.com/mautrix/telegram/pull/366
|
|
|
|
# v0.6.0 (2019-07-09)
|
|
|
|
* Fixed vulnerability in event handling.
|
|
|
|
## rc2 (2019-07-06)
|
|
|
|
* Nested formatting is now supported by Telegram, so the bridge also supports it.
|
|
* Strikethrough and underline are now bridged into native Telegram formatting
|
|
rather than unicode hacks.
|
|
* Fixed displayname not updating for users who the bridge only saw via a logged
|
|
in user who had the problematic user in their contacts.
|
|
* Fixed handling unsupported media.
|
|
* Added handling for `FileIdInvalidError` in file transfers that could disrupt
|
|
`sync`s.
|
|
|
|
## rc1 (2019-06-22)
|
|
|
|
### Added
|
|
* Native Matrix edit support and new fallback format.
|
|
* Config options for `retry_delay` and other TelegramClient constructor fields.
|
|
* Config option for maximum document size to let through the bridge.
|
|
* External URL field for chat and private channel messages.
|
|
* Telegram user info (puppet displayname & avatar) is now updated every time
|
|
the user sends a message.
|
|
* Command to change Telegram displayname.
|
|
* Possibility to override config fields with environment variables
|
|
(thanks to [@pacien] in [#332]).
|
|
|
|
### Improved
|
|
* Simplified bridged poll message.
|
|
* Telegram user info updates are now accepted from any logged in user as long
|
|
as the logged in user doesn't see a phone number for the Telegram user.
|
|
* Some image errors are now handled by resending the image as a document.
|
|
* Made getting started more user-friendly.
|
|
* Updated to Telethon 1.8.
|
|
|
|
### Fixed
|
|
* Portal peer type not being saved in database after Telegram chat upgrade.
|
|
* Newlines in unformatted messages not being bridged when using relaybot.
|
|
* Mime type info field for stickers converted to PNG.
|
|
* Content after newlines being stripped in messages sent by some clients.
|
|
* Potential `NoneType is not iterable` exception when logging out
|
|
(thanks to [@turt2live] in [#315]).
|
|
* Handling of Matrix messages where `m.relates_to` is null.
|
|
* Internal server error when logging in with an account on another DC.
|
|
* Spaces between command and arguments are now trimmed.
|
|
* Changed migrations to use `batch_alter_table` for adding columns to have less
|
|
warnings with SQLite.
|
|
* Error when `ping`ing without being logged in.
|
|
* Terminating sessions with negative hashes.
|
|
* State cache not being updated when sending events, causing invalid cache if
|
|
the server doesn't echo the sent events.
|
|
|
|
[@pacien]: https://github.com/pacien
|
|
[#315]: https://github.com/mautrix/telegram/pull/315
|
|
[#332]: https://github.com/mautrix/telegram/pull/332
|
|
|
|
# v0.5.2 (2019-05-25)
|
|
|
|
* Fixed null `m.relates_to`'s that break Synapse 0.99.5.
|
|
|
|
# v0.5.1 (2019-03-21)
|
|
|
|
* Fixed Python 3.5 compatibility.
|
|
* Fixed DBMS migration script.
|
|
|
|
# v0.5.0 (2019-03-19)
|
|
|
|
* Replaced rawgit with cdnjs in public website as rawgit is deprecated.
|
|
* Fixed login command throwing error when web login is enabled.
|
|
* Updated telethon-session-sqlalchemy to fix logging into an account on another DC.
|
|
* Stopped adding reply fallback to caption when sending caption and image as
|
|
separate messages.
|
|
|
|
## rc4 (2019-03-16)
|
|
|
|
* Added verbose flag to migration script.
|
|
* Added pytest setup and some tests (thanks to [@V02460] in [#290]).
|
|
* Fixed scripts (DBMS migration and Telematrix import) not being included in builds.
|
|
* Fixed some database problems.
|
|
* Removed remaining traces of ORM that might have been the causes of some other
|
|
database problems.
|
|
* Removed option to use lxml in HTML parsing as it was messing up emoji offset
|
|
handling. The new HTML parser supports using the default python HTMLParser
|
|
class since 0.5.0rc1, so lxml wasn't really useful anway.
|
|
|
|
[#290]: https://github.com/mautrix/telegram/pull/290
|
|
|
|
## rc3 (2019-02-16)
|
|
|
|
* Fixed bridging documents without thumbnails to Matrix.
|
|
* Added option to set maximum size of image to send to Telegram. Images above
|
|
the size limit will be sent as documents without the compression Telegram
|
|
applies to images.
|
|
* Fixed saving user portals and contacts.
|
|
* Added Telegram -> Matrix poll bridging and a command to vote in polls.
|
|
|
|
## rc2 (2019-02-15)
|
|
|
|
* Added missing future-fstrings comments that caused the bridge to not start on
|
|
Python 3.5.
|
|
* Fixed handling of document thumbnails.
|
|
* Fixed private chat portals failing to be created.
|
|
* Made relaybot handle Telegram chat upgrade events.
|
|
|
|
## rc1 (2019-02-14)
|
|
|
|
### Added
|
|
* More config options
|
|
* Option to to use Telegram test servers.
|
|
* Option to disable link previews on Telegram.
|
|
* Option to disable startup sync.
|
|
* Option to skip deleted members when syncing member lists.
|
|
* Option to change number of dialogs to handle in startup sync.
|
|
* More commands
|
|
* `username` for setting Telegram username.
|
|
* `sync-state` for updating Matrix room state cache.
|
|
* `matrix-ping` for checking Matrix login status (thanks to [@krombel] in [#271]).
|
|
* `clear-db-cache` for clearing internal database caches.
|
|
* `reload-user` for reloading and reconnecting a Telegram user.
|
|
* `session` for listing and terminating other Telegram sessions.
|
|
* Added argument to `login` to allow admins to log in for other users.
|
|
* Added warning when logging in that it grants the bridge full access to the
|
|
telegram account.
|
|
* Telegram->Matrix bridging:
|
|
* Telegram games
|
|
* Message pins in normal groups
|
|
* Custom message for unsupported media like polls
|
|
* Added client ID in logs when making requests to telegram.
|
|
* Added handling for Matrix room upgrades.
|
|
|
|
### Improved
|
|
* Removed lxml dependency from the new HTML parser and removed the old parser
|
|
completely.
|
|
* Switched mautrix-appservice-python state store and most mautrix-telegram
|
|
tables to SQLAlchemy core. This should speed things up and reduce problems
|
|
with the ORM getting stuck.
|
|
* `ensure_started` is now only called for logged in users, which should improve
|
|
performance for large instances.
|
|
* Displayname template extras (e.g. the `(Telegram)` suffix) are now stripped
|
|
when mentioning Telegram users with no username.
|
|
* Updated Telethon.
|
|
* Switched Dockerfile to use setup.py for dependencies to avoid dependency
|
|
updates breaking stuff.
|
|
* The telematrix import script will now warn about and skip over duplicate portals.
|
|
* Relaybot will now be used for users who have logged in, but are not in the chat.
|
|
|
|
### Fixed
|
|
* Bug where stickers with an unidentified emoji failed to bridge.
|
|
* Invalid letter prefixes in clean-rooms output.
|
|
* Messages forwarded from channels showing up as "Unknown source".
|
|
* Matrix->Telegram room avatar bridging.
|
|
|
|
[@krombel]: https://github.com/krombel
|
|
[#271]: https://github.com/mautrix/telegram/pull/271
|
|
|
|
# v0.4.0 (2018-11-28)
|
|
|
|
* No changes since rc2.
|
|
|
|
## rc2 (2018-11-15)
|
|
|
|
* Fixed kicking Telegram puppets from Matrix.
|
|
|
|
## rc1 (2018-11-15)
|
|
|
|
### Added
|
|
* Flag to indicate if user can unbridge portal in provisioning API
|
|
(thanks to [@turt2live] in [#225]).
|
|
* Option to send captions as second message (replaces option to send caption
|
|
in `body`.
|
|
* Room-specific settings.
|
|
|
|
### Improved
|
|
* (internal) Added type hints everywhere (mostly thanks to [@V02460] in [#206]).
|
|
* Telegram->Matrix formatter now uses `<pre>` tags for multiline code even if
|
|
said code was in the telegram equivalent of inline code tags.
|
|
* Better bullets and linebreak handling in Matrix->Telegram formatter.
|
|
* Logging in will now show your phone number instead of `@None` if you don't
|
|
have a username.
|
|
* Significantly improved performance on high-load instances (t2bot.io) by
|
|
moving most used database tables to SQLAlchemy Core.
|
|
|
|
### Fixed
|
|
* Bugs that caused database migrations to fail in some cases.
|
|
* Editing the config (e.g. whitelisting chats) corrupting the config.
|
|
* Negative numbers (chat IDs) in `/connect` of the provisioning API
|
|
(thanks to [@turt2live] in [#223]).
|
|
* Relaybot creating portals automatically when receiving message.
|
|
* Not being able to use a bridge bot localpart that would also match the puppet
|
|
localpart format.
|
|
* Matrix login sync failing completely if the homeserver stopped during a sync
|
|
response.
|
|
* Errors when cleaning rooms.
|
|
* Bridging code blocks without a language.
|
|
* Error and lost messages when trying to bridge PM from new users in some cases.
|
|
* Logging in with an account that someone has already logged in failing
|
|
silently and then breaking the bridge.
|
|
* Relaybot message when adding/removing Matrix displaynames.
|
|
|
|
[@V02460]: https://github.com/V02460
|
|
[#206]: https://github.com/mautrix/telegram/pull/206
|
|
[#223]: https://github.com/mautrix/telegram/pull/223
|
|
[#225]: https://github.com/mautrix/telegram/pull/225
|
|
|
|
# v0.3.0 (2018-08-15)
|
|
|
|
* Added database URI format examples.
|
|
* Bumped maximum Telethon version to 1.2, possibly fixing the catch_up option.
|
|
|
|
## rc3 (2018-08-08)
|
|
|
|
* Improved Telegram message deduplication options.
|
|
* Added pre-send message database check for deduplication.
|
|
* Made dedup cache queue length configurable.
|
|
|
|
## rc2 (2018-08-06)
|
|
|
|
* Added option to change max body size for AS API.
|
|
* Fixed a minor error regarding power level changes (thanks to [@turt2live] in [#203]).
|
|
* Updated minimum mautrix-appservice version to include some recent bugfixes.
|
|
|
|
[@turt2live]: https://github.com/turt2live
|
|
[#203]: https://github.com/mautrix/telegram/pull/203
|
|
|
|
## rc1 (2018-08-05)
|
|
|
|
### Added
|
|
* Logging in with a bot
|
|
(see [docs](https://docs.mau.fi/bridges/python/telegram/authentication.html#bot-token) for usage).
|
|
* You can log in with a personal Telegram bot to appear almost like a real
|
|
user without logging in with a real Telegram account.
|
|
* Replacing your Telegram account's Matrix puppet with your Matrix account
|
|
(see [docs](https://docs.mau.fi/bridges/general/double-puppeting.html) for usage).
|
|
* Formatting options for relaybot messages.
|
|
* Real displaynames are now supported and enabled by default.
|
|
* State events (join/leave/name change) can be independently disabled by
|
|
setting the format to a blank string.
|
|
* New config sections
|
|
* Proper log config, including logging to file (by default)
|
|
* Proxy support (requires installing PySocks)
|
|
* Separate field for appservice address for homeserver
|
|
(useful if using a reverse proxy).
|
|
* New permission levels to allow initiating bridges without allowing puppeting
|
|
and to allow Telegram puppeting without allowing Matrix puppeting.
|
|
* Telematrix import script (see [docs](https://docs.mau.fi/bridges/python/telegram/migrating-from-telematrix.html) for usage).
|
|
* Provisioning API (see [docs](https://docs.mau.fi/bridges/python/telegram/provisioning-api.html) for more info).
|
|
* DBMS migration script (see [docs](https://docs.mau.fi/bridges/python/telegram/dbms-migration.html) for usage).
|
|
|
|
### Improved
|
|
* Tabs are now replaced with 4 spaces so that Telegram servers wouldn't change
|
|
the message.
|
|
* Help page now detects your permissions and only shows commands you can use.
|
|
* Moved Matrix state cache to the main database. This means that the
|
|
`mx-state.json` file is no longer needed and all non-config data is
|
|
stored in the main database.
|
|
* Better lxml-based HTML parser for Matrix->Telegram formatting bridging.
|
|
lxml is still optional, so the old parser is used as fallback if lxml is not
|
|
installed.
|
|
* Disabled Telegram->Matrix bridging of messages sent by the relaybot.
|
|
Can be re-enabled in config if necessary.
|
|
|
|
### Fixed
|
|
* A `ValueError` in some cases when syncing power levels.
|
|
* Telegram connections being created for unauthenticated users possibly
|
|
triggering spam protection connection delays in the Telegram servers.
|
|
* Logging out if a portal had been deleted/unbridged.
|
|
|
|
# v0.2.0 (2018-06-08)
|
|
|
|
* No changes since rc6.
|
|
|
|
## rc6 (2018-06-06)
|
|
|
|
* Added warning about `delete-portal` kicking all room members.
|
|
* Fixed error when upgrading/creating SQLite database.
|
|
|
|
## rc5 (2018-06-01)
|
|
|
|
* Fixed relaybot automatically creating portal rooms when invited to Telegram chat ([#145]).
|
|
* Fixed kicking Telegram puppets and fix error message when bridging chats you've left.
|
|
* Fixed integrity error deleting portals from database.
|
|
|
|
[#145]: https://github.com/mautrix/telegram/issues/145
|
|
|
|
## rc4 (2018-05-29)
|
|
|
|
* ~~Fixed~~ Added Postgres compatibility.
|
|
* Fixed manual bridging (`!tg bridge`) for unauthenticated users.
|
|
* Fixed inviting unauthenticated Matrix users from Telegram (via `/invite <mxid>`).
|
|
* Changed Alembic to read database path from the config, so editing `alembic.ini`
|
|
is no longer necessary. Use `alembic -x config=/path/to/config.yaml ...` to
|
|
specify the config path.
|
|
|
|
## rc3 (2018-05-25)
|
|
|
|
* Reworked Dockerfile to remove virtualenv and use Alpine packages (thanks to
|
|
[@jcgruenhage] in [#142]). This fixes webp->png conversion for stickers.
|
|
|
|
[#142]: https://github.com/mautrix/telegram/pull/142
|
|
|
|
## rc2 (2018-05-21)
|
|
|
|
* Added Dockerfile (thanks to [@jcgruenhage] in [#136]).
|
|
|
|
[#136]: https://github.com/mautrix/telegram/pull/136
|
|
[@jcgruenhage]: https://github.com/jcgruenhage
|
|
|
|
## rc1 (2018-05-19)
|
|
|
|
* Added
|
|
* Option to exclude telegram chats from being bridged.
|
|
* Support for using a relay bot to relay messages for unauthenticated users
|
|
* Bridging for message pinning and room mentions/pills.
|
|
* Matrix->Telegram sticker bridging.
|
|
* `!command` to `/command` conversion at the start of Matrix message text.
|
|
* Conversion of t.me message links to matrix.to message links
|
|
* Timestamp massaging (bridge Telegram timestamps to Matrix)
|
|
* Support for out-of-Matrix login (useful if you don't want your 2FA password to be stored in the homeserver)
|
|
* Optional HQ gif/video thumbnails using moviepy.
|
|
* Option to send bot messages as `m.notice`
|
|
* Improved deduplication
|
|
* Matrix file uploads are now reused if the same Telegram file (e.g. a sticker) is sent multiple times
|
|
* Room metadata changes and other non-message actions are now deduplicated
|
|
* Improved formatting bridging
|
|
* Improved Telegram user display name handling in cases where one or more users have set custom display names for other users.
|
|
* Fixed Alembic setup and removed automatic database generation.
|
|
* Fixed outgoing message deduplication in cases where message is sent to other clients before responding to the sender.
|
|
* Moved mautrix-appservice-python to separate repository.
|
|
* Switched to telethon-session-sqlalchemy to have the session databases in the main database.
|
|
* Switched license from GPLv3 to AGPLv3
|
|
* Probably a bunch of other stuff I forgot
|
|
|
|
# v0.1.1 (2018-02-18)
|
|
|
|
Fixed bridging formatted messages from Matrix to Telegram
|
|
|
|
# v0.1.0 (2018-02-17)
|
|
|
|
First release.
|
|
|
|
Things work.
|