[preview]

URL preview settings for Halloy.

enabled

Enable or disable previews globally

# Type: boolean
# Values: true, false
# Default: true

[preview]
enabled = true

request

Request settings for previews.

user_agent

Some servers will only send opengraph metadata to browser-like user agents. We default to WhatsApp/2 for wide compatability.

# Type: string
# Values: any string
# Default: "WhatsApp/2"

[preview.request]
user_agent = "WhatsApp/2"

timeout_ms

Request timeout in millisceonds. Defaults is 10s.

# Type: integer
# Values: any positive integer
# Default: 10000

[preview.request]
timeout_ms = 10000

max_image_size

Max image size in bytes. This prevents downloading responses that are too big. Default is 10mb.

# Type: integer
# Values: any positive integer
# Default: 10485760

[preview.request]
max_image_size = 10485760

max_scrape_size

Max bytes streamed when scraping for opengraph metadata before cancelling the request. This prevents downloading responses that are too big. Default is 500kb.

# Type: integer
# Values: any positive integer
# Default: 512000

[preview.request]
max_scrape_size = 512000

concurrency

Number of allowed concurrent requests for fetching previews. Reduce this to prevent rate-limiting.

# Type: integer
# Values: any positive integer
# Default: 4

[preview.request]
concurrency = 4

delay_ms

Numer of milliseconds to wait before requesting another preview when number of requested previews > concurrency.

# Type: integer
# Values: any positive integer
# Default: 500

[preview.request]
delay_ms = 500

image

Specific image preview settings.

include

Include image previews from channels. If you pass ["#halloy"], the channel #halloy will show image previews. The include rule takes priority over exclude, so you can use both together. For example, you can exclude all channels with ["*"] and then only include a few specific channels.

# Type: array of strings
# Values: array of any strings
# Default: []

[preview.image]
include = []

exclude

Exclude image previews from channels. If you pass ["#halloy"], the channel #halloy will not show image previews. You can also exclude all channels by using a wildcard: ["*"].

# Type: array of strings
# Values: array of any strings
# Default: []

[preview.image]
exclude = []

Example

[preview.image]
exclude = ["*"] # hide image previews in all channels
include = ["#halloy"] # show image previews in #halloy

card

Specific card preview settings.

show_image

Show image for card previews.

# Type: boolean
# Values: true, false
# Default: true

[preview.card]
show_image = true

include

Include card previews from channels. If you pass ["#halloy"], the channel #halloy will show image previews. The include rule takes priority over exclude, so you can use both together. For example, you can exclude all channels with ["*"] and then only include a few specific channels.

# Type: array of strings
# Values: array of any strings
# Default: []

[preview.card]
include = []

exclude

Exclude card previews from channels. If you pass ["#halloy"], the channel #halloy will not show image previews. You can also exclude all channels by using a wildcard: ["*"].

# Type: array of strings
# Values: array of any strings
# Default: []

[preview.card]
exclude = []

Example

[preview.card]
exclude = ["*"] # hide card previews in all channels
include = ["#halloy"] # show card previews in #halloy