Template Guide

Template Guide #

This guide is intended to introduce variables and functions that are available in the tdl template.

Template syntax is based on Go’s text/template package.

Download #

Variables (beta) #

Var Desc
DialogID Telegram dialog id
MessageID Telegram message id
MessageDate Telegram message date(timestamp)
FileName Telegram file name
FileCaption Telegram file caption, aka. text message
FileSize Human-readable file size, like 1GB
DownloadDate Download date(timestamp)

Functions (beta) #

Func Desc Usage Example
repeat Repeat STRING N times repeat STRING N {{ repeat "test" 3 }}
replace Perform replacement on STRING with PAIRS replace STRING PAIRS... {{ replace "Test" "t" "T" "e" "E" }}
upper Convert STRING to uppercase upper STRING {{ upper "Test" }}
lower Convert STRING to lowercase lower STRING {{ lower "Test" }}
snakecase Convert STRING to snake_case snakecase STRING {{ snakecase "Test" }}
camelcase Convert STRING to camelCase camelcase STRING {{ camelcase "Test" }}
kebabcase Convert STRING to kebab-case kebabcase STRING {{ kebabcase "Test" }}
rand Generate random number in range MIN to MAX rand MIN MAX {{ rand 1 10 }}
now Get current timestamp now {{ now }}
formatDate Format TIMESTAMP with format
Default: 20060102150405
formatDate TIMESTAMP
formatDate TIMESTAMP "format"
{{ formatDate 1600000000 }}
{{ formatDate 1600000000 "2006-01-02-15-04-05"}}
filenamify Convert STRING to a valid filename with the best effort. Optional MaxLength can be used to limit string length filenamify STRING MaxLength {{ filenamify .FileName 32 }}

Examples: #

{{ .DialogID }}_{{ .MessageID }}_{{ replace .FileCaption `/` `_` `\` `_` `:` `_` }}

{{ .FileName }}_{{ formatDate .DownloadDate }}_{{ .FileSize }}

{{ .FileName }}_{{ formatDate .DownloadDate "2006-01-02-15-04-05"}}_{{ .FileSize }}

{{ lower (replace .FileName ` ` `_`) }}

{{ formatDate (now) }}

Default: #

{{ .DialogID }}_{{ .MessageID }}_{{ filenamify .FileName }}