From e3867f1656ddce3d2d2de9ac1c6d92a8c5520970 Mon Sep 17 00:00:00 2001 From: 3wc <3wc@doesthisthing.work> Date: Wed, 28 Feb 2024 13:20:04 -0300 Subject: [PATCH] Map roster visibility --- export_mailman2_settings.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/export_mailman2_settings.py b/export_mailman2_settings.py index 73a89e7..0bba152 100644 --- a/export_mailman2_settings.py +++ b/export_mailman2_settings.py @@ -6,11 +6,12 @@ from bs4 import BeautifulSoup from mailman.interfaces.archiver import ArchivePolicy from mailman.interfaces.action import Action -from mailman.utilities.importer import NAME_MAPPINGS, member_moderation_action_mapping, dmarc_action_mapping +from mailman.utilities.importer import NAME_MAPPINGS, member_moderation_action_mapping, dmarc_action_mapping, member_roster_visibility_mapping KEYFILTER = ('submit') EXCLUDES = set(( + # EXCLUDES in `importer.py` 'accept_these_nonmembers', 'delivery_status', 'digest_members', @@ -27,8 +28,8 @@ EXCLUDES = set(( 'digest_header': 'list:member:digest:header', 'digest_footer': 'list:member:digest:footer', }.keys()) + ( - # some manual settings which don't seem to be handled by the conversion - # script + # some settings to manually skip, which don't seem to be handled by the + # conversion script 'archive_volume_frequency', 'autoresponse_postings_text_upload', 'autoresponse_admin_text_upload', @@ -70,8 +71,12 @@ EXCLUDES = set(( 'dmarc_none_moderation_action', 'forward_auto_discards', 'hdrfilter_rebox_01', - # TODO convert these instead of skipping - 'private_roster' + 'bounce_matching_headers', + 'topic_rebox_01', + 'topic_desc_01', + 'topics_enabled', + 'topic_box_01', + 'topics_bodylines_limit', )) @@ -201,4 +206,11 @@ if __name__ == "__main__": else: globalconfig['archive_policy'] = ArchivePolicy.never.name + # Handle roster visibility. + mapping = member_roster_visibility_mapping( + globalconfig.get('private_roster', None)) + if mapping is not None: + globalconfig['member_roster_visibility'] = mapping.name + del globalconfig['private_roster'] + print(json.dumps(globalconfig))