database

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const BulkInsertChunkSize = 100

Variables

View Source
var MessagixPlatform types.Platform

Functions

This section is empty.

Types

type BackfillTask

type BackfillTask struct {
	Key           PortalKey
	UserMXID      id.UserID
	Priority      int
	PageCount     int
	Finished      bool
	DispatchedAt  time.Time
	CompletedAt   time.Time
	CooldownUntil time.Time
	// contains filtered or unexported fields
}

func (*BackfillTask) InsertIfNotExists

func (task *BackfillTask) InsertIfNotExists(ctx context.Context) error

func (*BackfillTask) Scan

func (task *BackfillTask) Scan(row dbutil.Scannable) (*BackfillTask, error)

func (*BackfillTask) Upsert

func (task *BackfillTask) Upsert(ctx context.Context) error

type BackfillTaskQuery

type BackfillTaskQuery struct {
	*dbutil.QueryHelper[*BackfillTask]
}

func (*BackfillTaskQuery) GetNext

func (btq *BackfillTaskQuery) GetNext(ctx context.Context, userID id.UserID) (*BackfillTask, error)

func (*BackfillTaskQuery) NewWithValues

func (btq *BackfillTaskQuery) NewWithValues(portalKey PortalKey, userID id.UserID) *BackfillTask

type Database

type Database struct {
	*dbutil.Database

	User         *UserQuery
	Portal       *PortalQuery
	Puppet       *PuppetQuery
	Message      *MessageQuery
	Reaction     *ReactionQuery
	BackfillTask *BackfillTaskQuery
}

func New

func New(db *dbutil.Database) *Database

type Message

type Message struct {
	ID             string
	PartIndex      int
	ThreadID       int64
	ThreadReceiver int64
	Sender         int64
	OTID           int64

	MXID   id.EventID
	RoomID id.RoomID

	Timestamp time.Time
	EditCount int64
	// contains filtered or unexported fields
}

func (*Message) Delete

func (msg *Message) Delete(ctx context.Context) error

func (*Message) EditTimestamp

func (msg *Message) EditTimestamp() int64

func (*Message) Insert

func (msg *Message) Insert(ctx context.Context) error

func (*Message) IsUnencrypted

func (msg *Message) IsUnencrypted() bool

func (*Message) Scan

func (msg *Message) Scan(row dbutil.Scannable) (*Message, error)

func (*Message) UpdateEditCount

func (msg *Message) UpdateEditCount(ctx context.Context, count int64) error

func (*Message) UpdateEditTimestamp

func (msg *Message) UpdateEditTimestamp(ctx context.Context, ts int64) error

type MessageQuery

type MessageQuery struct {
	*dbutil.QueryHelper[*Message]
}

func (*MessageQuery) BulkInsert

func (mq *MessageQuery) BulkInsert(ctx context.Context, thread PortalKey, roomID id.RoomID, messages []*Message) error

func (*MessageQuery) BulkInsertChunk

func (mq *MessageQuery) BulkInsertChunk(ctx context.Context, thread PortalKey, roomID id.RoomID, messages []*Message) error

func (*MessageQuery) FindEditTargetPortal

func (mq *MessageQuery) FindEditTargetPortal(ctx context.Context, id string, receiver int64) (key PortalKey, err error)

func (*MessageQuery) GetAllBetweenTimestamps

func (mq *MessageQuery) GetAllBetweenTimestamps(ctx context.Context, key PortalKey, min, max time.Time) ([]*Message, error)

func (*MessageQuery) GetAllPartsByID

func (mq *MessageQuery) GetAllPartsByID(ctx context.Context, id string, receiver int64) ([]*Message, error)

func (*MessageQuery) GetByID

func (mq *MessageQuery) GetByID(ctx context.Context, id string, partIndex int, receiver int64) (*Message, error)

func (*MessageQuery) GetByMXID

func (mq *MessageQuery) GetByMXID(ctx context.Context, mxid id.EventID) (*Message, error)

func (*MessageQuery) GetLastByTimestamp

func (mq *MessageQuery) GetLastByTimestamp(ctx context.Context, key PortalKey, timestamp time.Time) (*Message, error)

func (*MessageQuery) GetLastPartByID

func (mq *MessageQuery) GetLastPartByID(ctx context.Context, id string, receiver int64) (*Message, error)

type Portal

type Portal struct {
	PortalKey
	ThreadType table.ThreadType
	MXID       id.RoomID
	Name       string
	AvatarID   string
	AvatarURL  id.ContentURI
	NameSet    bool
	AvatarSet  bool

	WhatsAppServer string
	Encrypted      bool
	RelayUserID    id.UserID

	OldestMessageID string
	OldestMessageTS int64
	MoreToBackfill  bool
	// contains filtered or unexported fields
}

func (*Portal) Delete

func (p *Portal) Delete(ctx context.Context) error

func (*Portal) Insert

func (p *Portal) Insert(ctx context.Context) error

func (*Portal) IsPrivateChat

func (p *Portal) IsPrivateChat() bool

func (*Portal) JID

func (p *Portal) JID() types.JID

func (*Portal) Scan

func (p *Portal) Scan(row dbutil.Scannable) (*Portal, error)

func (*Portal) Update

func (p *Portal) Update(ctx context.Context) error

type PortalKey

type PortalKey struct {
	ThreadID int64
	Receiver int64
}

type PortalQuery

type PortalQuery struct {
	*dbutil.QueryHelper[*Portal]
}

func (*PortalQuery) FindPrivateChatsNotInSpace

func (pq *PortalQuery) FindPrivateChatsNotInSpace(ctx context.Context, receiver int64) ([]PortalKey, error)

func (*PortalQuery) FindPrivateChatsOf

func (pq *PortalQuery) FindPrivateChatsOf(ctx context.Context, receiver int64) ([]*Portal, error)

func (*PortalQuery) FindPrivateChatsWith

func (pq *PortalQuery) FindPrivateChatsWith(ctx context.Context, userID int64) ([]*Portal, error)

func (*PortalQuery) GetAllWithMXID

func (pq *PortalQuery) GetAllWithMXID(ctx context.Context) ([]*Portal, error)

func (*PortalQuery) GetByMXID

func (pq *PortalQuery) GetByMXID(ctx context.Context, mxid id.RoomID) (*Portal, error)

func (*PortalQuery) GetByThreadID

func (pq *PortalQuery) GetByThreadID(ctx context.Context, pk PortalKey) (*Portal, error)

type Puppet

type Puppet struct {
	ID        int64
	Name      string
	Username  string
	AvatarID  string
	AvatarURL id.ContentURI
	NameSet   bool
	AvatarSet bool

	ContactInfoSet bool
	WhatsAppServer string

	CustomMXID  id.UserID
	AccessToken string
	// contains filtered or unexported fields
}

func (*Puppet) Insert

func (p *Puppet) Insert(ctx context.Context) error

func (*Puppet) JID

func (p *Puppet) JID() types.JID

func (*Puppet) Scan

func (p *Puppet) Scan(row dbutil.Scannable) (*Puppet, error)

func (*Puppet) Update

func (p *Puppet) Update(ctx context.Context) error

type PuppetQuery

type PuppetQuery struct {
	*dbutil.QueryHelper[*Puppet]
}

func (*PuppetQuery) GetAllWithCustomMXID

func (pq *PuppetQuery) GetAllWithCustomMXID(ctx context.Context) ([]*Puppet, error)

func (*PuppetQuery) GetByCustomMXID

func (pq *PuppetQuery) GetByCustomMXID(ctx context.Context, mxid id.UserID) (*Puppet, error)

func (*PuppetQuery) GetByID

func (pq *PuppetQuery) GetByID(ctx context.Context, id int64) (*Puppet, error)

type Reaction

type Reaction struct {
	MessageID      string
	ThreadID       int64
	ThreadReceiver int64
	Sender         int64

	Emoji string

	MXID   id.EventID
	RoomID id.RoomID
	// contains filtered or unexported fields
}

func (*Reaction) Delete

func (r *Reaction) Delete(ctx context.Context) error

func (*Reaction) Insert

func (r *Reaction) Insert(ctx context.Context) error

func (*Reaction) Scan

func (r *Reaction) Scan(row dbutil.Scannable) (*Reaction, error)

func (*Reaction) Update

func (r *Reaction) Update(ctx context.Context) error

type ReactionQuery

type ReactionQuery struct {
	*dbutil.QueryHelper[*Reaction]
}

func (*ReactionQuery) BulkInsert

func (rq *ReactionQuery) BulkInsert(ctx context.Context, thread PortalKey, roomID id.RoomID, reactions []*Reaction) error

func (*ReactionQuery) BulkInsertChunk

func (rq *ReactionQuery) BulkInsertChunk(ctx context.Context, thread PortalKey, roomID id.RoomID, reactions []*Reaction) error

func (*ReactionQuery) GetByID

func (rq *ReactionQuery) GetByID(ctx context.Context, msgID string, threadReceiver, reactionSender int64) (*Reaction, error)

func (*ReactionQuery) GetByMXID

func (rq *ReactionQuery) GetByMXID(ctx context.Context, mxid id.EventID) (*Reaction, error)

type User

type User struct {
	MXID           id.UserID
	MetaID         int64
	WADeviceID     uint16
	Cookies        *cookies.Cookies
	InboxFetched   bool
	ManagementRoom id.RoomID
	SpaceRoom      id.RoomID
	// contains filtered or unexported fields
}

func (*User) GetLastReadTS

func (u *User) GetLastReadTS(ctx context.Context, portal PortalKey) time.Time

func (*User) Insert

func (u *User) Insert(ctx context.Context) error

func (*User) IsInSpace

func (u *User) IsInSpace(ctx context.Context, portal PortalKey) bool

func (*User) MarkInSpace

func (u *User) MarkInSpace(ctx context.Context, portal PortalKey)

func (*User) RemoveInSpaceCache

func (u *User) RemoveInSpaceCache(key PortalKey)

func (*User) Scan

func (u *User) Scan(row dbutil.Scannable) (*User, error)

func (*User) SetLastReadTS

func (u *User) SetLastReadTS(ctx context.Context, portal PortalKey, ts time.Time)

func (*User) Update

func (u *User) Update(ctx context.Context) error

type UserQuery

type UserQuery struct {
	*dbutil.QueryHelper[*User]
}

func (*UserQuery) GetAllLoggedIn

func (uq *UserQuery) GetAllLoggedIn(ctx context.Context) ([]*User, error)

func (*UserQuery) GetByMXID

func (uq *UserQuery) GetByMXID(ctx context.Context, mxid id.UserID) (*User, error)

func (*UserQuery) GetByMetaID

func (uq *UserQuery) GetByMetaID(ctx context.Context, id int64) (*User, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL