1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/mautrix_whatsapp_ynh.git synced 2024-09-03 19:46:01 +02:00

add __foobar__ settings

This commit is contained in:
Gredin 67 2023-01-05 03:57:04 +01:00
parent f0b9772e47
commit f58912baed
3 changed files with 71 additions and 38 deletions

View file

@ -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: "<b>{{ .Sender.Displayname }}</b>: {{ .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__

View file

@ -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.

View file

@ -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"