From 67adededff21bc1a127c333e8de22d1f7f51ce9d Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 3 Mar 2026 15:16:44 +0200 Subject: [PATCH] gotd/message: fix generators and update entity utilities --- pkg/gotd/Makefile | 2 +- .../telegram/message/entity/options.gen.go | 26 +++++++++++++++++++ .../message/internal/mkentity/entity.go | 4 +-- .../message/internal/mkentity/styling.go | 2 +- .../telegram/message/styling/options.gen.go | 10 +++++++ 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/pkg/gotd/Makefile b/pkg/gotd/Makefile index 5510ade4..f0b0fa9d 100644 --- a/pkg/gotd/Makefile +++ b/pkg/gotd/Makefile @@ -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: diff --git a/pkg/gotd/telegram/message/entity/options.gen.go b/pkg/gotd/telegram/message/entity/options.gen.go index ea4a6f01..b9bfae31 100644 --- a/pkg/gotd/telegram/message/entity/options.gen.go +++ b/pkg/gotd/telegram/message/entity/options.gen.go @@ -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)) +} diff --git a/pkg/gotd/telegram/message/internal/mkentity/entity.go b/pkg/gotd/telegram/message/internal/mkentity/entity.go index 10c53a3d..c66f5a8a 100644 --- a/pkg/gotd/telegram/message/internal/mkentity/entity.go +++ b/pkg/gotd/telegram/message/internal/mkentity/entity.go @@ -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 }} diff --git a/pkg/gotd/telegram/message/internal/mkentity/styling.go b/pkg/gotd/telegram/message/internal/mkentity/styling.go index a6a14b2c..1e60db22 100644 --- a/pkg/gotd/telegram/message/internal/mkentity/styling.go +++ b/pkg/gotd/telegram/message/internal/mkentity/styling.go @@ -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 diff --git a/pkg/gotd/telegram/message/styling/options.gen.go b/pkg/gotd/telegram/message/styling/options.gen.go index 0283c7e7..309569e9 100644 --- a/pkg/gotd/telegram/message/styling/options.gen.go +++ b/pkg/gotd/telegram/message/styling/options.gen.go @@ -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 + }) +}