feat: support export media

This commit is contained in:
Rogee
2024-09-05 14:28:11 +08:00
parent 25234937d4
commit 7d1c9764b5
3 changed files with 52 additions and 45 deletions

View File

@@ -12,12 +12,13 @@ import (
) )
type Channels struct { type Channels struct {
ID int64 `sql:"primary_key"` ID int64 `sql:"primary_key"`
UUID int64 UUID int64
Username string Username string
Title string Title string
CreatedAt *time.Time CreatedAt *time.Time
UpdatedAt *time.Time UpdatedAt *time.Time
Offset int64 Offset int64
MinID int64 MinID int64
ExportMedia bool
} }

View File

@@ -17,14 +17,15 @@ type channelsTable struct {
postgres.Table postgres.Table
// Columns // Columns
ID postgres.ColumnInteger ID postgres.ColumnInteger
UUID postgres.ColumnInteger UUID postgres.ColumnInteger
Username postgres.ColumnString Username postgres.ColumnString
Title postgres.ColumnString Title postgres.ColumnString
CreatedAt postgres.ColumnTimestampz CreatedAt postgres.ColumnTimestampz
UpdatedAt postgres.ColumnTimestampz UpdatedAt postgres.ColumnTimestampz
Offset postgres.ColumnInteger Offset postgres.ColumnInteger
MinID postgres.ColumnInteger MinID postgres.ColumnInteger
ExportMedia postgres.ColumnBool
AllColumns postgres.ColumnList AllColumns postgres.ColumnList
MutableColumns postgres.ColumnList MutableColumns postgres.ColumnList
@@ -65,30 +66,32 @@ func newChannelsTable(schemaName, tableName, alias string) *ChannelsTable {
func newChannelsTableImpl(schemaName, tableName, alias string) channelsTable { func newChannelsTableImpl(schemaName, tableName, alias string) channelsTable {
var ( var (
IDColumn = postgres.IntegerColumn("id") IDColumn = postgres.IntegerColumn("id")
UUIDColumn = postgres.IntegerColumn("uuid") UUIDColumn = postgres.IntegerColumn("uuid")
UsernameColumn = postgres.StringColumn("username") UsernameColumn = postgres.StringColumn("username")
TitleColumn = postgres.StringColumn("title") TitleColumn = postgres.StringColumn("title")
CreatedAtColumn = postgres.TimestampzColumn("created_at") CreatedAtColumn = postgres.TimestampzColumn("created_at")
UpdatedAtColumn = postgres.TimestampzColumn("updated_at") UpdatedAtColumn = postgres.TimestampzColumn("updated_at")
OffsetColumn = postgres.IntegerColumn("offset") OffsetColumn = postgres.IntegerColumn("offset")
MinIDColumn = postgres.IntegerColumn("min_id") MinIDColumn = postgres.IntegerColumn("min_id")
allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn} ExportMediaColumn = postgres.BoolColumn("export_media")
mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn} allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn}
mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn}
) )
return channelsTable{ return channelsTable{
Table: postgres.NewTable(schemaName, tableName, alias, allColumns...), Table: postgres.NewTable(schemaName, tableName, alias, allColumns...),
//Columns //Columns
ID: IDColumn, ID: IDColumn,
UUID: UUIDColumn, UUID: UUIDColumn,
Username: UsernameColumn, Username: UsernameColumn,
Title: TitleColumn, Title: TitleColumn,
CreatedAt: CreatedAtColumn, CreatedAt: CreatedAtColumn,
UpdatedAt: UpdatedAtColumn, UpdatedAt: UpdatedAtColumn,
Offset: OffsetColumn, Offset: OffsetColumn,
MinID: MinIDColumn, MinID: MinIDColumn,
ExportMedia: ExportMediaColumn,
AllColumns: allColumns, AllColumns: allColumns,
MutableColumns: mutableColumns, MutableColumns: mutableColumns,

View File

@@ -20,10 +20,11 @@ import (
) )
type DBChannel struct { type DBChannel struct {
UUID int64 UUID int64
Username string Username string
Title string Title string
MinID int MinID int
ExportMedia bool
} }
func NewDBChannel(uuid int64, username, title string) *DBChannel { func NewDBChannel(uuid int64, username, title string) *DBChannel {
@@ -68,13 +69,14 @@ func (c *DBChannel) Get(ctx context.Context) error {
if errors.Is(err, qrm.ErrNoRows) { if errors.Is(err, qrm.ErrNoRows) {
// create new channel with default value // create new channel with default value
m = model.Channels{ m = model.Channels{
UUID: c.UUID, UUID: c.UUID,
Username: c.Username, Username: c.Username,
Title: c.Title, Title: c.Title,
MinID: 0, MinID: 0,
Offset: 0, Offset: 0,
CreatedAt: lo.ToPtr(time.Now()), ExportMedia: false,
UpdatedAt: lo.ToPtr(time.Now()), CreatedAt: lo.ToPtr(time.Now()),
UpdatedAt: lo.ToPtr(time.Now()),
} }
if _, err := tbl.INSERT(tbl.AllColumns.Except(tbl.ID)).MODEL(m).ExecContext(ctx, db); err != nil { if _, err := tbl.INSERT(tbl.AllColumns.Except(tbl.ID)).MODEL(m).ExecContext(ctx, db); err != nil {
@@ -85,6 +87,7 @@ func (c *DBChannel) Get(ctx context.Context) error {
} }
} }
c.MinID = int(m.MinID) c.MinID = int(m.MinID)
c.ExportMedia = m.ExportMedia
return nil return nil
} }