This commit is contained in:
Rogee
2024-09-02 19:45:16 +08:00
parent 548b9109eb
commit 399dbe4264
6 changed files with 23 additions and 3 deletions

8
.vscode/launch.json vendored
View File

@@ -17,7 +17,13 @@
// https://t.me/Aliyun_4K_Movies/26640 // https://t.me/Aliyun_4K_Movies/26640
// "--alias", "Aliyun_4K_Movies", // "--alias", "Aliyun_4K_Movies",
// https://t.me/abskoop/8501 // https://t.me/abskoop/8501
"--alias", "abskoop", // "--alias", "abskoop",
// https://t.me/shareAliyun/65443
// "--alias", "shareAliyun",
// https://t.me/meizitu3/6879
// "--alias", "meizitu3",
// https://t.me/DNSPODT/5156
"--alias", "DNSPODT",
"--history", "--history",
] ]
} }

View File

@@ -19,4 +19,5 @@ type ChannelMessages struct {
Media string Media string
PublishedAt time.Time PublishedAt time.Time
CreatedAt time.Time CreatedAt time.Time
GroupID int64
} }

View File

@@ -24,6 +24,7 @@ type channelMessagesTable struct {
Media postgres.ColumnString Media postgres.ColumnString
PublishedAt postgres.ColumnTimestampz PublishedAt postgres.ColumnTimestampz
CreatedAt postgres.ColumnTimestampz CreatedAt postgres.ColumnTimestampz
GroupID postgres.ColumnInteger
AllColumns postgres.ColumnList AllColumns postgres.ColumnList
MutableColumns postgres.ColumnList MutableColumns postgres.ColumnList
@@ -71,8 +72,9 @@ func newChannelMessagesTableImpl(schemaName, tableName, alias string) channelMes
MediaColumn = postgres.StringColumn("media") MediaColumn = postgres.StringColumn("media")
PublishedAtColumn = postgres.TimestampzColumn("published_at") PublishedAtColumn = postgres.TimestampzColumn("published_at")
CreatedAtColumn = postgres.TimestampzColumn("created_at") CreatedAtColumn = postgres.TimestampzColumn("created_at")
allColumns = postgres.ColumnList{IDColumn, ChannelIDColumn, UUIDColumn, ContentColumn, MediaColumn, PublishedAtColumn, CreatedAtColumn} GroupIDColumn = postgres.IntegerColumn("group_id")
mutableColumns = postgres.ColumnList{ChannelIDColumn, UUIDColumn, ContentColumn, MediaColumn, PublishedAtColumn, CreatedAtColumn} allColumns = postgres.ColumnList{IDColumn, ChannelIDColumn, UUIDColumn, ContentColumn, MediaColumn, PublishedAtColumn, CreatedAtColumn, GroupIDColumn}
mutableColumns = postgres.ColumnList{ChannelIDColumn, UUIDColumn, ContentColumn, MediaColumn, PublishedAtColumn, CreatedAtColumn, GroupIDColumn}
) )
return channelMessagesTable{ return channelMessagesTable{
@@ -86,6 +88,7 @@ func newChannelMessagesTableImpl(schemaName, tableName, alias string) channelMes
Media: MediaColumn, Media: MediaColumn,
PublishedAt: PublishedAtColumn, PublishedAt: PublishedAtColumn,
CreatedAt: CreatedAtColumn, CreatedAt: CreatedAtColumn,
GroupID: GroupIDColumn,
AllColumns: allColumns, AllColumns: allColumns,
MutableColumns: mutableColumns, MutableColumns: mutableColumns,

View File

@@ -8,6 +8,7 @@ import (
type ChannelMessage struct { type ChannelMessage struct {
ID int ID int
GroupID int64
Message string Message string
Medias []ChannelMessageMedia Medias []ChannelMessageMedia
PublishAt time.Time PublishAt time.Time
@@ -22,6 +23,11 @@ func NewChannelMessage(id, ts int) *ChannelMessage {
return &ChannelMessage{ID: id, PublishAt: time.Unix(int64(ts), 0)} return &ChannelMessage{ID: id, PublishAt: time.Unix(int64(ts), 0)}
} }
func (c *ChannelMessage) WithGroupID(groupID int64) *ChannelMessage {
c.GroupID = groupID
return c
}
func (c *ChannelMessage) WithMessage(message string) *ChannelMessage { func (c *ChannelMessage) WithMessage(message string) *ChannelMessage {
c.Message = message c.Message = message
return c return c

View File

@@ -59,6 +59,9 @@ func (t *TClient) Channel(ctx context.Context, channel *tg.Channel, cfg *DBChann
defer cfg.SaveMessage(ctx, channelMessage) defer cfg.SaveMessage(ctx, channelMessage)
channelMessage.WithMessage(msg.GetMessage()) channelMessage.WithMessage(msg.GetMessage())
if grpID, ok := msg.GetGroupedID(); ok {
channelMessage.WithGroupID(grpID)
}
if mediaClass, ok := msg.GetMedia(); ok { if mediaClass, ok := msg.GetMedia(); ok {
switch mediaClass.(type) { switch mediaClass.(type) {

View File

@@ -113,6 +113,7 @@ func (c *DBChannel) Update(ctx context.Context, offsetID int) error {
func (c *DBChannel) SaveMessage(ctx context.Context, msg *ChannelMessage) error { func (c *DBChannel) SaveMessage(ctx context.Context, msg *ChannelMessage) error {
message := &model.ChannelMessages{ message := &model.ChannelMessages{
ChannelID: c.UUID, ChannelID: c.UUID,
GroupID: msg.GroupID,
UUID: int64(msg.ID), UUID: int64(msg.ID),
Content: lo.ToPtr(msg.Message), Content: lo.ToPtr(msg.Message),
Media: msg.GetMedia(), Media: msg.GetMedia(),