From 422a5a9cabf608a7da898abd545bdbf6c2666f7f Mon Sep 17 00:00:00 2001 From: Rogee Date: Mon, 2 Sep 2024 19:51:29 +0800 Subject: [PATCH] fix --- .vscode/launch.json | 4 +++- internal/channel_message.go | 15 +++++++++++++-- internal/client_channel.go | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 218afc5..b8b5ccd 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -23,7 +23,9 @@ // https://t.me/meizitu3/6879 // "--alias", "meizitu3", // https://t.me/DNSPODT/5156 - "--alias", "DNSPODT", + // "--alias", "DNSPODT", + // https://t.me/ruyoblog/4247 + "--alias", "ruyoblog", "--history", ] } diff --git a/internal/channel_message.go b/internal/channel_message.go index 22d32c4..04e164f 100644 --- a/internal/channel_message.go +++ b/internal/channel_message.go @@ -15,8 +15,14 @@ type ChannelMessage struct { } type ChannelMessageMedia struct { - Photo string - Video string + Photo string + Video string + WebPage ChannelMessageMediaWebPage +} + +type ChannelMessageMediaWebPage struct { + Title string + URL string } func NewChannelMessage(id, ts int) *ChannelMessage { @@ -43,6 +49,11 @@ func (c *ChannelMessage) WithVideo(video string) *ChannelMessage { return c } +func (c *ChannelMessage) WithWebPage(title, url string) *ChannelMessage { + c.Medias = append(c.Medias, ChannelMessageMedia{WebPage: ChannelMessageMediaWebPage{Title: title, URL: url}}) + return c +} + func (c *ChannelMessage) GetMedia() string { b, _ := json.Marshal(c.Medias) return string(b) diff --git a/internal/client_channel.go b/internal/client_channel.go index e1c52a2..976c1f2 100644 --- a/internal/client_channel.go +++ b/internal/client_channel.go @@ -72,6 +72,9 @@ func (t *TClient) Channel(ctx context.Context, channel *tg.Channel, cfg *DBChann return case *tg.MessageMediaWebPage: t.logger.Warn("web_page", zap.String("url", mediaClass.(*tg.MessageMediaWebPage).GetWebpage().String())) + if page, ok := mediaClass.(*tg.MessageMediaWebPage).GetWebpage().(*tg.WebPage); ok { + channelMessage.WithWebPage(page.Title, page.URL) + } return case *tg.MessageMediaPhoto: if photoClass, ok := mediaClass.(*tg.MessageMediaPhoto).GetPhoto(); ok {