From f58912baed3eb725908b0239cc2d13bb384b74d2 Mon Sep 17 00:00:00 2001 From: Gredin 67 Date: Thu, 5 Jan 2023 03:57:04 +0100 Subject: [PATCH] add __foobar__ settings --- conf/config.yaml | 38 ++++++++++++++++---------------- scripts/config | 15 ------------- scripts/install | 56 ++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 71 insertions(+), 38 deletions(-) diff --git a/conf/config.yaml b/conf/config.yaml index 792868c..1137f15 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -15,7 +15,7 @@ homeserver: # Endpoint for reporting per-message status. message_send_checkpoint_endpoint: null # Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246? - async_media: false + async_media: __ASYNC_MEDIA__ # Application service host/registration related details. # Changing these values requires regeneration of the registration. @@ -52,16 +52,16 @@ appservice: bot: # Username of the appservice bot. #username: whatsappbot - username: __BOTNAME__ + username: __USERNAME__ # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty # to leave display name/avatar as-is. - displayname: WhatsApp bridge bot - avatar: mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr + displayname: __DISPLAYNAME__ + avatar: __AVATAR__ # Whether or not to receive ephemeral events via appservice transactions. # Requires MSC2409 support (i.e. Synapse 1.22+). # You should disable bridge -> sync_with_custom_puppets when this is enabled. - ephemeral_events: true + ephemeral_events: __EPHEMERAL_EVENTS__ # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. as_token: "This value is generated when generating the registration" @@ -73,24 +73,24 @@ segment_key: null # Prometheus config. metrics: # Enable prometheus metrics? - enabled: false + enabled: __METRICS_ENABLED__ # IP and port where the metrics listener should be. The path is always /metrics - listen: 127.0.0.1:8001 + listen: __LISTEN__ # Config for things that are directly sent to WhatsApp. whatsapp: # Device name that's shown in the "WhatsApp Web" section in the mobile app. - os_name: Mautrix-WhatsApp bridge + os_name: __OS_NAME__ # Browser name that determines the logo shown in the mobile app. # Must be "unknown" for a generic icon or a valid browser name if you want a specific icon. # List of valid browser names: https://github.com/tulir/whatsmeow/blob/8b34d886d543b72e5f4699cf5b2797f68d598f78/binary/proto/def.proto#L38-L51 - browser_name: unknown + browser_name: __BROWSER_NAME__ # Bridge config bridge: # Localpart template of MXIDs for WhatsApp users. # {{.}} is replaced with the phone number of the WhatsApp user. - username_template: whatsapp_{{.}} + username_template: __USERNAME_TEMPLATE__ # Displayname template for WhatsApp users. # {{.PushName}} - nickname set by the WhatsApp user # {{.BusinessName}} - validated WhatsApp business name @@ -101,9 +101,9 @@ bridge: displayname_template: "{{if .BusinessName}}{{.BusinessName}}{{else if .PushName}}{{.PushName}}{{else}}{{.JID}}{{end}} (WA)" # Should the bridge create a space for each logged-in user and add bridged rooms to it? # Users who logged in before turning this on should run `!wa sync space` to create and fill the space for the first time. - personal_filtering_spaces: false + personal_filtering_spaces: __PERSONAL_FILTERING_SPACES__ # Should the bridge send a read receipt from the bridge bot when a message has been sent to WhatsApp? - delivery_receipts: false + delivery_receipts: __DELIVERY_RECEIPTS__ # Whether the bridge should send the message status as a custom com.beeper.message_send_status event. message_status_events: false # Whether the bridge should send error notices via m.notice events when a message fails to bridge. @@ -220,7 +220,7 @@ bridge: # Send the presence as "available" to whatsapp when users start typing on a portal. # This works as a workaround for homeservers that do not support presence, and allows # users to see when the whatsapp user on the other side is typing during a conversation. - send_presence_on_typing: false + send_presence_on_typing: __SEND_PRESENCE_ON_TYPING__ # Should the bridge always send "active" delivery receipts (two gray ticks on WhatsApp) # even if the user isn't marked as online (e.g. when presence bridging isn't enabled)? # @@ -292,7 +292,7 @@ bridge: # Should the bridge detect URLs in outgoing messages, ask the homeserver to generate a preview, # and send it to WhatsApp? URL previews can always be sent using the `com.beeper.linkpreviews` # key in the event content even if this is disabled. - url_previews: false + url_previews: __URL_PREVIEWS__ # Send captions in the same message as images. This will send data compatible with both MSC2530 and MSC3552. # This is currently not supported in most clients. caption_in_message: false @@ -334,11 +334,11 @@ bridge: # Default to encryption, force-enable encryption in all portals the bridge creates # This will cause the bridge bot to be in private chats for the encryption to work properly. # It is recommended to also set private_chat_portal_meta to true when using this. - default: false + default: __DEFAULT__ # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. appservice: false # Require encryption, drop any unencrypted messages. - require: false + require: __REQUIRE__ # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. # You must use a client that supports requesting keys from other users to use this feature. allow_key_sharing: false @@ -406,9 +406,9 @@ bridge: # Whether relay mode should be allowed. If allowed, `!wa set-relay` can be used to turn any # authenticated user into a relaybot for that chat. #enabled: false - enabled: true + enabled: __ENABLED__ # Should only admins be allowed to set themselves as relay users? - admin_only: true + admin_only: __ADMIN_ONLY__ # The formats to use when sending messages to WhatsApp via the relaybot. message_formats: m.text: "{{ .Sender.Displayname }}: {{ .Message }}" @@ -437,4 +437,4 @@ logging: timestamp_format: "Jan _2, 2006 15:04:05" # Minimum severity for log messages printed to stdout/stderr. This doesn't affect the log file. # Options: debug, info, warn, error, fatal - print_level: INFO + print_level: __PRINT_LEVEL__ diff --git a/scripts/config b/scripts/config index 9737fbc..caf3da0 100644 --- a/scripts/config +++ b/scripts/config @@ -4,26 +4,11 @@ ynh_abort_if_errors final_path=$(ynh_app_setting_get --app=$app --key=final_path) -function get__encryption { - encryption=$(ynh_app_setting_get --app $app --key encryption) - echo "'${encryption}'" -} - function get__botname { botname=$(ynh_app_setting_get --app $app --key botname) echo "${botname}" } -function get__displayname { - displayname="WhatsApp bridge bot" - echo "${displayname}" -} - -function get__avatar { - avatar="mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr" - echo "${avatar}" -} - function set__botname { old_botname=$(ynh_app_setting_get --app $app --key botname) if [ "$botname" -eq "$old_botname" ] # Check to avoid updating botname when it's not needed. diff --git a/scripts/install b/scripts/install index 7e0ce63..235be0a 100755 --- a/scripts/install +++ b/scripts/install @@ -25,7 +25,7 @@ ynh_abort_if_errors appserviceid=$YNH_APP_INSTANCE_NAME synapsenumber=$YNH_APP_ARG_SYNAPSENUMBER -botname=$YNH_APP_ARG_BOTNAME +username=$YNH_APP_ARG_BOTNAME bot_synapse_adm=$YNH_APP_ARG_BOT_SYNAPSE_ADM encryption=$YNH_APP_ARG_ENCRYPTION botadmin=$YNH_APP_ARG_BOTADMIN @@ -49,6 +49,54 @@ server_name=$(ynh_app_setting_get --app $synapse_instance --key server_name) domain=$(ynh_app_setting_get --app $synapse_instance --key domain) synapse_db_name="matrix_$synapse_instance" +#================================================= +# SET STANDARD SETTINGS FROM DEFAULT CONFIG +#================================================= + +async_media="false" +displayname="WhatsApp bridge bot" +avatar="mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr" +ephemeral_events="true" +metrics_enabled="false" +listen="127.0.0.1:8001" +os_name="Mautrix-WhatsApp bridge" +browser_name="unknown" +username_template="whatsapp_{{.}}" +personal_filtering_spaces="false" +delivery_receipts="false" +send_presence_on_typing="false" +url_previews="false" +default="false" +require="false" +enabled="true" +admin_only="true" +print_level="INFO" +existingUsers=$botusers +existingAdmins=$botadmin +existingRelayUsers="*" + +ynh_app_setting_set --app=$app --key=async_media --value=$async_media +ynh_app_setting_set --app=$app --key=displayname --value=$displayname +ynh_app_setting_set --app=$app --key=avatar --value=$avatar +ynh_app_setting_set --app=$app --key=ephemeral_events --value=$ephemeral_events +ynh_app_setting_set --app=$app --key=metrics_enabled --value=$metrics_enabled +ynh_app_setting_set --app=$app --key=listen --value=$listen +ynh_app_setting_set --app=$app --key=os_name --value=$os_name +ynh_app_setting_set --app=$app --key=browser_name --value=$browser_name +ynh_app_setting_set --app=$app --key=username_template --value=$username_template +ynh_app_setting_set --app=$app --key=personal_filtering_spaces --value=$personal_filtering_spaces +ynh_app_setting_set --app=$app --key=delivery_receipts --value=$delivery_receipts +ynh_app_setting_set --app=$app --key=send_presence_on_typing --value=$send_presence_on_typing +ynh_app_setting_set --app=$app --key=url_previews --value=$url_previews +ynh_app_setting_set --app=$app --key=default --value=$default +ynh_app_setting_set --app=$app --key=require --value=$require +ynh_app_setting_set --app=$app --key=enabled --value=$enabled +ynh_app_setting_set --app=$app --key=admin_only --value=$admin_only +ynh_app_setting_set --app=$app --key=print_level --value=$print_level +ynh_app_setting_set --app=$app --key=existingUsers --value=$existingUsers +ynh_app_setting_set --app=$app --key=existingAdmins --value=$existingAdmins +ynh_app_setting_set --app=$app --key=existingRelayUsers --value=$existingRelayUsers + #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= @@ -67,7 +115,7 @@ fi ynh_script_progression --message="Storing installation settings..." --weight=7 ynh_app_setting_set --app=$app --key=appserviceid --value=$appserviceid -ynh_app_setting_set --app=$app --key=botname --value=$botname +ynh_app_setting_set --app=$app --key=username --value=$username ynh_app_setting_set --app=$app --key=bot_synapse_adm --value=$bot_synapse_adm ynh_app_setting_set --app=$app --key=encryption --value=$encryption ynh_app_setting_set --app=$app --key=botadmin --value=$botadmin @@ -191,8 +239,8 @@ sleep 30 # (Note that, by default, non-admins might not have your homeserver's permission to create communities.) if [ "$bot_synapse_adm" = true ] then - ynh_psql_execute_as_root --database=$synapse_db_name --sql="UPDATE users SET admin = 1 WHERE name = ""$botname"";" - #yunohost app action run $synapse_instance set_admin_user -a username=$botname + ynh_psql_execute_as_root --database=$synapse_db_name --sql="UPDATE users SET admin = 1 WHERE name = ""$username"";" + #yunohost app action run $synapse_instance set_admin_user -a username=$username fi ynh_systemd_action --service_name=$app --action="restart"