gotd/message: fix generators and update entity utilities

This commit is contained in:
Tulir Asokan
2026-03-03 15:16:44 +02:00
parent e5914196c5
commit 67adededff
5 changed files with 40 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ download_schema:
.PHONY: download_schema
download_public_keys:
go run ./cmd/dlkey -o internal/mtproto/_data/public_keys.pem
go run ./cmd/dlkey -o mtproto/_data/public_keys.pem
.PHONY: download_public_keys
download_e2e_schema:

View File

@@ -396,3 +396,29 @@ func Blockquote(collapsed bool) Formatter {
func (b *Builder) Blockquote(s string, collapsed bool) *Builder {
return b.Format(s, Blockquote(collapsed))
}
// FormattedDate creates Formatter of FormattedDate message entity.
//
// See https://core.telegram.org/constructor/messageEntityFormattedDate.
func FormattedDate(relative bool, shortTime bool, longTime bool, shortDate bool, longDate bool, dayOfWeek bool, date int) Formatter {
return func(offset, length int) tg.MessageEntityClass {
return &tg.MessageEntityFormattedDate{
Offset: offset,
Length: length,
Relative: relative,
ShortTime: shortTime,
LongTime: longTime,
ShortDate: shortDate,
LongDate: longDate,
DayOfWeek: dayOfWeek,
Date: date,
}
}
}
// FormattedDate adds and formats message as FormattedDate message entity.
//
// See https://core.telegram.org/constructor/messageEntityFormattedDate.
func (b *Builder) FormattedDate(s string, relative bool, shortTime bool, longTime bool, shortDate bool, longDate bool, dayOfWeek bool, date int) *Builder {
return b.Format(s, FormattedDate(relative, shortTime, longTime, shortDate, longDate, dayOfWeek, date))
}

View File

@@ -20,7 +20,7 @@ var (
// {{ $helperName }} creates Formatter of {{ $helperName }} message entity.
//
// See https://core.telegram.org/constructor/{{ $typ.SchemaType.Name }}.
func {{ $helperName }}({{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }}{{- end }}) Formatter {
func {{ $helperName }}({{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }},{{- end }}) Formatter {
return func(offset, length int) tg.MessageEntityClass {
return &tg.{{ $typ.Name }}{
Offset: offset,
@@ -36,7 +36,7 @@ func {{ $helperName }}({{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{
//
// See https://core.telegram.org/constructor/{{ $typ.SchemaType.Name }}.
func (b *Builder) {{ $helperName }}(s string,
{{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }}{{- end }}) *Builder {
{{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }},{{- end }}) *Builder {
return b.Format(s, {{ $helperName }}({{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }},{{- end }}))
}
{{- end }}

View File

@@ -21,7 +21,7 @@ var (
//
// See https://core.telegram.org/constructor/{{ $typ.SchemaType.Name }}.
func {{ $helperName }}(s string,
{{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }}{{- end }}) StyledTextOption {
{{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }} {{ $f.Type }},{{- end }}) StyledTextOption {
return styledTextOption(s, func(b *textBuilder) error {
b.{{ $helperName }}(s, {{- range $f := $typ.Fields }}{{ lowerFirst $f.Name }},{{- end }})
return nil

View File

@@ -211,3 +211,13 @@ func Blockquote(s string, collapsed bool) StyledTextOption {
return nil
})
}
// FormattedDate formats text as FormattedDate entity.
//
// See https://core.telegram.org/constructor/messageEntityFormattedDate.
func FormattedDate(s string, relative bool, shortTime bool, longTime bool, shortDate bool, longDate bool, dayOfWeek bool, date int) StyledTextOption {
return styledTextOption(s, func(b *textBuilder) error {
b.FormattedDate(s, relative, shortTime, longTime, shortDate, longDate, dayOfWeek, date)
return nil
})
}