# matrix-appservice-discord is a Matrix <-> Discord bridge
# See: https://github.com/Half-Shot/matrix-appservice-discord

matrix_appservice_discord_enabled: true

matrix_appservice_discord_docker_image: "halfshot/matrix-appservice-discord:latest"
matrix_appservice_discord_docker_image_force_pull: "{{ matrix_appservice_discord_docker_image.endswith(':latest') }}"

matrix_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord"
matrix_appservice_discord_config_path: "{{ matrix_base_data_path }}/appservice-discord/config"
matrix_appservice_discord_data_path: "{{ matrix_base_data_path }}/appservice-discord/data"

# Get your own keys at https://discordapp.com/developers/applications/me/create
matrix_appservice_discord_client_id: ''
matrix_appservice_discord_bot_token: ''

matrix_appservice_discord_appservice_token: ''
matrix_appservice_discord_homeserver_token: ''

# Controls whether the matrix-appservice-discord container exposes its HTTP port (tcp/9005 in the container).
#
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:9005"), or empty string to not expose.
matrix_appservice_discord_container_http_host_bind_port: ''

# A list of extra arguments to pass to the container
matrix_appservice_discord_container_extra_arguments: []

# List of systemd services that matrix-appservice-discord.service depends on.
matrix_appservice_discord_systemd_required_services_list: ['docker.service']

# List of systemd services that matrix-appservice-discord.service wants
matrix_appservice_discord_systemd_wanted_services_list: []

matrix_appservice_discord_appservice_url: 'http://matrix-appservice-discord:9005'

matrix_appservice_discord_bridge_domain: "{{ matrix_domain }}"
# As of right now, the homeserver URL must be a public URL. See below.
matrix_appservice_discord_bridge_homeserverUrl: "{{ matrix_homeserver_url }}"
matrix_appservice_discord_bridge_disablePresence: false
matrix_appservice_discord_bridge_enableSelfServiceBridging: false

matrix_appservice_discord_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"

matrix_appservice_discord_configuration_extension_yaml: |
  # Your custom YAML configuration goes here.
  # This configuration extends the default starting configuration (`matrix_appservice_discord_configuration_yaml`).
  #
  # You can override individual variables from the default configuration, or introduce new ones.
  #
  # If you need something more special, you can take full control by
  # completely redefining `matrix_appservice_discord_configuration_yaml`.

matrix_appservice_discord_configuration_extension: "{{ matrix_appservice_discord_configuration_extension_yaml|from_yaml if matrix_appservice_discord_configuration_extension_yaml|from_yaml is mapping else {} }}"

matrix_appservice_discord_configuration: "{{ matrix_appservice_discord_configuration_yaml|from_yaml|combine(matrix_appservice_discord_configuration_extension, recursive=True) }}"

matrix_appservice_discord_registration_yaml: |
  #jinja2: lstrip_blocks: "True"
  id: appservice-discord
  as_token: "{{ matrix_appservice_discord_appservice_token }}"
  hs_token: "{{ matrix_appservice_discord_homeserver_token }}"
  namespaces:
    users:
    - exclusive: true
      regex: '^@_discord_.*'
    aliases:
    - exclusive: true
      regex: '^#_discord_.*'
  url: {{ matrix_appservice_discord_appservice_url }}
  sender_localpart: _discord_bot
  rate_limited: false
  protocols:
    - discord

matrix_appservice_discord_registration: "{{ matrix_appservice_discord_registration_yaml|from_yaml }}"