Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 731d5e028a | |||
| 5ea9e48954 | |||
| 73b26e3fbd | |||
| 48be895938 | |||
| 87909d07ec | |||
| 3609eb2b70 |
@@ -1,3 +1,12 @@
|
||||
# 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.
|
||||
|
||||
+10
-8
@@ -1,9 +1,11 @@
|
||||
FROM dock.mau.dev/tulir/lottieconverter:alpine-3.18
|
||||
FROM dock.mau.dev/tulir/lottieconverter:alpine-3.19
|
||||
|
||||
RUN apk add --no-cache \
|
||||
python3 py3-pip py3-setuptools py3-wheel \
|
||||
#py3-pillow \
|
||||
py3-pillow \
|
||||
py3-aiohttp \
|
||||
py3-asyncpg \
|
||||
py3-aiosqlite \
|
||||
py3-magic \
|
||||
py3-ruamel.yaml \
|
||||
py3-commonmark \
|
||||
@@ -15,6 +17,8 @@ RUN apk add --no-cache \
|
||||
py3-rsa \
|
||||
#py3-telethon \ (outdated)
|
||||
py3-pyaes \
|
||||
py3-aiodns \
|
||||
py3-python-socks \
|
||||
# cryptg
|
||||
py3-cffi \
|
||||
py3-qrcode \
|
||||
@@ -32,21 +36,19 @@ RUN apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
jq \
|
||||
yq \
|
||||
# Temporarily install pillow from edge repo to get up-to-date version
|
||||
&& apk add --no-cache py3-pillow --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
|
||||
yq
|
||||
|
||||
COPY requirements.txt /opt/mautrix-telegram/requirements.txt
|
||||
COPY optional-requirements.txt /opt/mautrix-telegram/optional-requirements.txt
|
||||
WORKDIR /opt/mautrix-telegram
|
||||
RUN apk add --virtual .build-deps python3-dev libffi-dev build-base \
|
||||
&& pip3 install /cryptg-*.whl \
|
||||
&& pip3 install --no-cache-dir -r requirements.txt -r optional-requirements.txt \
|
||||
&& pip3 install --break-system-packages /cryptg-*.whl \
|
||||
&& pip3 install --break-system-packages --no-cache-dir -r requirements.txt -r optional-requirements.txt \
|
||||
&& apk del .build-deps \
|
||||
&& rm -f /cryptg-*.whl
|
||||
|
||||
COPY . /opt/mautrix-telegram
|
||||
RUN apk add git && pip3 install --no-cache-dir .[all] && apk del git \
|
||||
RUN apk add git && pip3 install --break-system-packages --no-cache-dir .[all] && apk del git \
|
||||
# This doesn't make the image smaller, but it's needed so that the `version` command works properly
|
||||
&& cp mautrix_telegram/example-config.yaml . && rm -rf mautrix_telegram .git build
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
__version__ = "0.15.0"
|
||||
__version__ = "0.15.1"
|
||||
__author__ = "Tulir Asokan <tulir@maunium.net>"
|
||||
|
||||
@@ -658,7 +658,11 @@ class AbstractUser(ABC):
|
||||
await portal.delete_telegram_user(self.tgid, sender=None)
|
||||
elif chan := getattr(update, "mau_channel", None):
|
||||
if not portal.mxid:
|
||||
background_task.create(self._delayed_create_channel(chan))
|
||||
if (
|
||||
not self.is_relaybot
|
||||
or not self.config["bridge.relaybot.ignore_unbridged_group_chat"]
|
||||
):
|
||||
background_task.create(self._delayed_create_channel(chan))
|
||||
else:
|
||||
self.log.debug("Updating channel info with data fetched by Telethon")
|
||||
await portal.update_info(self, chan)
|
||||
|
||||
@@ -787,6 +787,8 @@ class Portal(DBPortal, BasePortal):
|
||||
background_task.create(update)
|
||||
await self.invite_to_matrix(invites or [])
|
||||
return self.mxid
|
||||
elif user.is_relaybot and self.config["bridge.relaybot.ignore_unbridged_group_chat"]:
|
||||
raise Exception("create_matrix_room called as relaybot")
|
||||
async with self._room_create_lock:
|
||||
try:
|
||||
return await self._create_matrix_room(
|
||||
@@ -1144,12 +1146,19 @@ class Portal(DBPortal, BasePortal):
|
||||
# We can't trust the member list if any of the following cases is true:
|
||||
# * There are close to 10 000 users, because Telegram might not be sending all members.
|
||||
# * The member sync count is limited, because then we might ignore some members.
|
||||
# * It's a channel, because non-admins don't have access to the member list.
|
||||
# * It's a channel, because non-admins don't have access to the member list
|
||||
# and even admins can only see 200 members.
|
||||
# * The source user is not in the chat, because that likely means it's a group
|
||||
# with the member list hidden (so only admins are visible).
|
||||
trust_member_list = (
|
||||
len(allowed_tgids) < 9900
|
||||
if self.max_initial_member_sync < 0
|
||||
else len(allowed_tgids) < self.max_initial_member_sync - 10
|
||||
) and (self.megagroup or self.peer_type != "channel")
|
||||
(
|
||||
len(allowed_tgids) < 9900
|
||||
if self.max_initial_member_sync < 0
|
||||
else len(allowed_tgids) < self.max_initial_member_sync - 10
|
||||
)
|
||||
and (self.megagroup or self.peer_type != "channel")
|
||||
and source.tgid in allowed_tgids
|
||||
)
|
||||
if not trust_member_list:
|
||||
return None
|
||||
|
||||
@@ -3372,6 +3381,8 @@ class Portal(DBPortal, BasePortal):
|
||||
self, source: au.AbstractUser, sender: p.Puppet | None, evt: Message
|
||||
) -> None:
|
||||
if not self.mxid:
|
||||
if source.is_relaybot and self.config["bridge.relaybot.ignore_unbridged_group_chat"]:
|
||||
return
|
||||
self.log.debug("Got telegram message %d, but no room exists, creating...", evt.id)
|
||||
await self.create_matrix_room(source, invites=[source.mxid], update_if_exists=False)
|
||||
if not self.mxid:
|
||||
@@ -3536,7 +3547,7 @@ class Portal(DBPortal, BasePortal):
|
||||
async def _create_room_on_action(
|
||||
self, source: au.AbstractUser, action: TypeMessageAction
|
||||
) -> bool:
|
||||
if source.is_relaybot and self.config["bridge.ignore_unbridged_group_chat"]:
|
||||
if source.is_relaybot and self.config["bridge.relaybot.ignore_unbridged_group_chat"]:
|
||||
return False
|
||||
create_and_exit = (MessageActionChatCreate, MessageActionChannelCreate)
|
||||
create_and_continue = (
|
||||
|
||||
@@ -14,7 +14,7 @@ qrcode>=6,<8
|
||||
phonenumbers>=8,<9
|
||||
|
||||
#/metrics
|
||||
prometheus_client>=0.6,<0.19
|
||||
prometheus_client>=0.6,<0.20
|
||||
|
||||
#/e2be
|
||||
python-olm>=3,<4
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ commonmark>=0.8,<0.10
|
||||
aiohttp>=3,<4
|
||||
yarl>=1,<2
|
||||
mautrix>=0.20.3,<0.21
|
||||
tulir-telethon==1.33.0a1
|
||||
tulir-telethon==1.34.0a2
|
||||
asyncpg>=0.20,<0.30
|
||||
mako>=1,<2
|
||||
setuptools
|
||||
|
||||
Reference in New Issue
Block a user