database

package
v0.0.0-...-747a129 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const SEP_MESSAGE = "\u0002"
View Source
const SEP_PORTAL = "\u0002"

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	*dbutil.Database

	User    *UserQuery
	Portal  *PortalQuery
	Puppet  *PuppetQuery
	Message *MessageQuery
}

func New

func New(baseDB *dbutil.Database, log maulogger.Logger) *Database

type Message

type Message struct {
	Chat      PortalKey
	Key       MessageKey
	MXID      id.EventID
	Sender    types.UID
	Timestamp time.Time
	Sent      bool
	Type      MessageType
	Error     MessageErrorType
	Content   string
	// contains filtered or unexported fields
}

func (*Message) Delete

func (m *Message) Delete()

func (*Message) Insert

func (m *Message) Insert(txn dbutil.Transaction)

func (*Message) IsFakeMXID

func (m *Message) IsFakeMXID() bool

func (*Message) IsFakeMsgID

func (m *Message) IsFakeMsgID() bool

func (*Message) Scan

func (m *Message) Scan(row dbutil.Scannable) *Message

func (*Message) UpdateMXID

func (m *Message) UpdateMXID(txn dbutil.Transaction, mxid id.EventID, newType MessageType, newError MessageErrorType)

type MessageErrorType

type MessageErrorType string
const (
	MsgNoError             MessageErrorType = ""
	MsgErrDecryptionFailed MessageErrorType = "decryption_failed"
	MsgErrMediaNotFound    MessageErrorType = "media_not_found"
)

type MessageKey

type MessageKey struct {
	Seq string
	ID  string
}

func NewFakeKey

func NewFakeKey(id string) MessageKey

func NewMessageKey

func NewMessageKey(seq, id int32) MessageKey

func NewPartialKey

func NewPartialKey(seq int64) MessageKey

func (MessageKey) IntID

func (mk MessageKey) IntID() int64

func (MessageKey) IntSeq

func (mk MessageKey) IntSeq() int64

func (MessageKey) String

func (mk MessageKey) String() string

type MessageQuery

type MessageQuery struct {
	// contains filtered or unexported fields
}

func (*MessageQuery) GetAll

func (mq *MessageQuery) GetAll(chat PortalKey) []*Message

func (*MessageQuery) GetByMXID

func (mq *MessageQuery) GetByMXID(mxid id.EventID) *Message

func (*MessageQuery) GetByMessageKey

func (mq *MessageQuery) GetByMessageKey(chat PortalKey, key MessageKey) *Message

func (*MessageQuery) GetByReply

func (mq *MessageQuery) GetByReply(chat PortalKey, msgSeq string, ts int64) *Message

func (*MessageQuery) New

func (mq *MessageQuery) New() *Message

type MessageType

type MessageType string
const (
	MsgUnknown MessageType = ""
	MsgFake    MessageType = "fake"
	MsgNormal  MessageType = "message"
)

type Portal

type Portal struct {
	Key  PortalKey
	MXID id.RoomID

	Name      string
	NameSet   bool
	Topic     string
	TopicSet  bool
	Avatar    string
	AvatarURL id.ContentURI
	AvatarSet bool
	Encrypted bool
	LastSync  time.Time

	FirstEventID id.EventID
	NextBatchID  id.BatchID
	// contains filtered or unexported fields
}

func (*Portal) Delete

func (p *Portal) Delete()

func (*Portal) Insert

func (p *Portal) Insert()

func (*Portal) Scan

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

func (*Portal) Update

func (p *Portal) Update(txn dbutil.Transaction)

type PortalKey

type PortalKey struct {
	UID      types.UID
	Receiver types.UID
}

func NewPortalKey

func NewPortalKey(uid, receiver types.UID) PortalKey

func (PortalKey) String

func (pk PortalKey) String() string

type PortalQuery

type PortalQuery struct {
	// contains filtered or unexported fields
}

func (*PortalQuery) FindPrivateChats

func (pq *PortalQuery) FindPrivateChats(receiver types.UID) []*Portal

func (*PortalQuery) FindPrivateChatsNotInSpace

func (pq *PortalQuery) FindPrivateChatsNotInSpace(receiver types.UID) []PortalKey

func (*PortalQuery) GetAll

func (pq *PortalQuery) GetAll() []*Portal

func (*PortalQuery) GetAllByUID

func (pq *PortalQuery) GetAllByUID(uid types.UID) []*Portal

func (*PortalQuery) GetByMXID

func (pq *PortalQuery) GetByMXID(mxid id.RoomID) *Portal

func (*PortalQuery) GetByUID

func (pq *PortalQuery) GetByUID(key PortalKey) *Portal

func (*PortalQuery) New

func (pq *PortalQuery) New() *Portal

type Puppet

type Puppet struct {
	UID         types.UID
	Avatar      string
	AvatarURL   id.ContentURI
	AvatarSet   bool
	Displayname string
	NameQuality int8
	NameSet     bool
	LastSync    time.Time

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

func (*Puppet) Insert

func (p *Puppet) Insert()

func (*Puppet) Scan

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

func (*Puppet) Update

func (p *Puppet) Update()

type PuppetQuery

type PuppetQuery struct {
	// contains filtered or unexported fields
}

func (*PuppetQuery) Get

func (pq *PuppetQuery) Get(uid types.UID) *Puppet

func (*PuppetQuery) GetAll

func (pq *PuppetQuery) GetAll() []*Puppet

func (*PuppetQuery) GetAllWithCustomMXID

func (pq *PuppetQuery) GetAllWithCustomMXID() []*Puppet

func (*PuppetQuery) GetByCustomMXID

func (pq *PuppetQuery) GetByCustomMXID(mxid id.UserID) *Puppet

func (*PuppetQuery) New

func (pq *PuppetQuery) New() *Puppet

type User

type User struct {
	MXID           id.UserID
	UID            types.UID
	Device         string
	Token          []byte
	ManagementRoom id.RoomID
	SpaceRoom      id.RoomID
	// contains filtered or unexported fields
}

func (*User) GetLastReadTS

func (u *User) GetLastReadTS(portal PortalKey) time.Time

func (*User) Insert

func (u *User) Insert()

func (*User) IsInSpace

func (u *User) IsInSpace(portal PortalKey) bool

func (*User) MarkInSpace

func (u *User) MarkInSpace(portal PortalKey)

func (*User) Scan

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

func (*User) SetLastReadTS

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

func (*User) Update

func (u *User) Update()

type UserQuery

type UserQuery struct {
	// contains filtered or unexported fields
}

func (*UserQuery) GetAll

func (uq *UserQuery) GetAll() []*User

func (*UserQuery) GetByMXID

func (uq *UserQuery) GetByMXID(userID id.UserID) *User

func (*UserQuery) GetByUin

func (uq *UserQuery) GetByUin(uin string) *User

func (*UserQuery) New

func (uq *UserQuery) New() *User

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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