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 {
ID int64 `sql:"primary_key"`
UUID int64
Username string
Title string
CreatedAt *time.Time
UpdatedAt *time.Time
Offset int64
MinID int64
ID int64 `sql:"primary_key"`
UUID int64
Username string
Title string
CreatedAt *time.Time
UpdatedAt *time.Time
Offset int64
MinID int64
ExportMedia bool
}

View File

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

View File

@@ -20,10 +20,11 @@ import (
)
type DBChannel struct {
UUID int64
Username string
Title string
MinID int
UUID int64
Username string
Title string
MinID int
ExportMedia bool
}
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) {
// create new channel with default value
m = model.Channels{
UUID: c.UUID,
Username: c.Username,
Title: c.Title,
MinID: 0,
Offset: 0,
CreatedAt: lo.ToPtr(time.Now()),
UpdatedAt: lo.ToPtr(time.Now()),
UUID: c.UUID,
Username: c.Username,
Title: c.Title,
MinID: 0,
Offset: 0,
ExportMedia: false,
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 {
@@ -85,6 +87,7 @@ func (c *DBChannel) Get(ctx context.Context) error {
}
}
c.MinID = int(m.MinID)
c.ExportMedia = m.ExportMedia
return nil
}