Make automatic full Matrix state syncs optional
This commit is contained in:
@@ -107,6 +107,9 @@ bridge:
|
|||||||
# If no channel admins have logged into the bridge, the bridge won't be able to sync the member
|
# If no channel admins have logged into the bridge, the bridge won't be able to sync the member
|
||||||
# list regardless of this setting.
|
# list regardless of this setting.
|
||||||
sync_channel_members: true
|
sync_channel_members: true
|
||||||
|
# Whether or not to automatically sync the Matrix room state (mostly unpuppeted displaynames)
|
||||||
|
# at startup and when creating a bridge.
|
||||||
|
sync_matrix_state: true
|
||||||
# The maximum number of simultaneous Telegram deletions to handle.
|
# The maximum number of simultaneous Telegram deletions to handle.
|
||||||
# A large number of simultaneous redactions could put strain on your homeserver.
|
# A large number of simultaneous redactions could put strain on your homeserver.
|
||||||
max_telegram_delete: 10
|
max_telegram_delete: 10
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ class Config(DictWithRecursion):
|
|||||||
copy("bridge.bot_messages_as_notices")
|
copy("bridge.bot_messages_as_notices")
|
||||||
copy("bridge.max_initial_member_sync")
|
copy("bridge.max_initial_member_sync")
|
||||||
copy("bridge.sync_channel_members")
|
copy("bridge.sync_channel_members")
|
||||||
|
copy("bridge.sync_matrix_state")
|
||||||
copy("bridge.max_telegram_delete")
|
copy("bridge.max_telegram_delete")
|
||||||
copy("bridge.allow_matrix_login")
|
copy("bridge.allow_matrix_login")
|
||||||
copy("bridge.inline_images")
|
copy("bridge.inline_images")
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ class Portal:
|
|||||||
public_portals = False # type: bool
|
public_portals = False # type: bool
|
||||||
max_initial_member_sync = -1 # type: int
|
max_initial_member_sync = -1 # type: int
|
||||||
sync_channel_members = True # type: bool
|
sync_channel_members = True # type: bool
|
||||||
|
sync_matrix_state = True # type: bool
|
||||||
|
|
||||||
dedup_pre_db_check = False # type: bool
|
dedup_pre_db_check = False # type: bool
|
||||||
dedup_cache_queue_length = 20 # type: int
|
dedup_cache_queue_length = 20 # type: int
|
||||||
@@ -328,7 +329,8 @@ class Portal:
|
|||||||
puppet = p.Puppet.get(self.tgid)
|
puppet = p.Puppet.get(self.tgid)
|
||||||
await puppet.update_info(user, entity)
|
await puppet.update_info(user, entity)
|
||||||
await puppet.intent.join_room(self.mxid)
|
await puppet.intent.join_room(self.mxid)
|
||||||
await self.sync_matrix_members()
|
if self.sync_matrix_state:
|
||||||
|
await self.sync_matrix_members()
|
||||||
|
|
||||||
async def create_matrix_room(self, user: 'AbstractUser', entity: TypeChat = None,
|
async def create_matrix_room(self, user: 'AbstractUser', entity: TypeChat = None,
|
||||||
invites: InviteList = None, update_if_exists: bool = True,
|
invites: InviteList = None, update_if_exists: bool = True,
|
||||||
@@ -786,7 +788,6 @@ class Portal:
|
|||||||
async def sync_matrix_members(self) -> None:
|
async def sync_matrix_members(self) -> None:
|
||||||
resp = await self.main_intent.get_room_joined_memberships(self.mxid)
|
resp = await self.main_intent.get_room_joined_memberships(self.mxid)
|
||||||
members = resp["joined"]
|
members = resp["joined"]
|
||||||
print(members)
|
|
||||||
for mxid, info in members.items():
|
for mxid, info in members.items():
|
||||||
member = {
|
member = {
|
||||||
"membership": "join",
|
"membership": "join",
|
||||||
@@ -1955,6 +1956,7 @@ def init(context: Context) -> None:
|
|||||||
Portal.az, Portal.db, config, Portal.loop, Portal.bot = context.core
|
Portal.az, Portal.db, config, Portal.loop, Portal.bot = context.core
|
||||||
Portal.max_initial_member_sync = config["bridge.max_initial_member_sync"]
|
Portal.max_initial_member_sync = config["bridge.max_initial_member_sync"]
|
||||||
Portal.sync_channel_members = config["bridge.sync_channel_members"]
|
Portal.sync_channel_members = config["bridge.sync_channel_members"]
|
||||||
|
Portal.sync_matrix_state = config["bridge.sync_matrix_state"]
|
||||||
Portal.public_portals = config["bridge.public_portals"]
|
Portal.public_portals = config["bridge.public_portals"]
|
||||||
Portal.filter_mode = config["bridge.filter.mode"]
|
Portal.filter_mode = config["bridge.filter.mode"]
|
||||||
Portal.filter_list = config["bridge.filter.list"]
|
Portal.filter_list = config["bridge.filter.list"]
|
||||||
|
|||||||
Reference in New Issue
Block a user