Versions in this module Expand all Collapse all v0 v0.9.0 Mar 21, 2025 Changes in this version type Database + GetMessageTarget func(ctx context.Context, networkID int64, target string) (*MessageTarget, error) + StoreMessageTarget func(ctx context.Context, networkID int64, mt *MessageTarget) error type MessageTarget + ID int64 + Muted bool + Pinned bool + Target string + type MessageTargetLast struct + LatestMessage time.Time + Name string type PostgresDB + func (db *PostgresDB) GetMessageTarget(ctx context.Context, networkID int64, target string) (*MessageTarget, error) + func (db *PostgresDB) StoreMessageTarget(ctx context.Context, networkID int64, mt *MessageTarget) error type SqliteDB + func (db *SqliteDB) GetMessageTarget(ctx context.Context, networkID int64, target string) (*MessageTarget, error) + func (db *SqliteDB) StoreMessageTarget(ctx context.Context, networkID int64, mt *MessageTarget) error type User + MaxNetworks int v0.8.2 Aug 18, 2024 v0.8.1 Jul 8, 2024 Changes in this version + const SqliteEnabled + func GetNick(user *User, net *Network) string + func GetRealname(user *User, net *Network) string + func GetUsername(user *User, net *Network) string + type Channel struct + DetachAfter time.Duration + DetachOn MessageFilter + Detached bool + DetachedInternalMsgID string + ID int64 + Key string + Name string + ReattachOn MessageFilter + RelayDetached MessageFilter + type Database interface + Close func() error + DeleteChannel func(ctx context.Context, id int64) error + DeleteNetwork func(ctx context.Context, id int64) error + DeleteUser func(ctx context.Context, id int64) error + DeleteWebPushSubscription func(ctx context.Context, id int64) error + GetMessageLastID func(ctx context.Context, networkID int64, name string) (int64, error) + GetReadReceipt func(ctx context.Context, networkID int64, name string) (*ReadReceipt, error) + GetUser func(ctx context.Context, username string) (*User, error) + ListChannels func(ctx context.Context, networkID int64) ([]Channel, error) + ListDeliveryReceipts func(ctx context.Context, networkID int64) ([]DeliveryReceipt, error) + ListInactiveUsernames func(ctx context.Context, limit time.Time) ([]string, error) + ListMessageLastPerTarget func(ctx context.Context, networkID int64, options *MessageOptions) ([]MessageTarget, error) + ListMessages func(ctx context.Context, networkID int64, name string, options *MessageOptions) ([]*irc.Message, error) + ListNetworks func(ctx context.Context, userID int64) ([]Network, error) + ListUsers func(ctx context.Context) ([]User, error) + ListWebPushConfigs func(ctx context.Context) ([]WebPushConfig, error) + ListWebPushSubscriptions func(ctx context.Context, userID, networkID int64) ([]WebPushSubscription, error) + Stats func(ctx context.Context) (*DatabaseStats, error) + StoreChannel func(ctx context.Context, networKID int64, ch *Channel) error + StoreClientDeliveryReceipts func(ctx context.Context, networkID int64, client string, ...) error + StoreMessages func(ctx context.Context, networkID int64, name string, msgs []*irc.Message) ([]int64, error) + StoreNetwork func(ctx context.Context, userID int64, network *Network) error + StoreReadReceipt func(ctx context.Context, networkID int64, receipt *ReadReceipt) error + StoreUser func(ctx context.Context, user *User) error + StoreWebPushConfig func(ctx context.Context, config *WebPushConfig) error + StoreWebPushSubscription func(ctx context.Context, userID, networkID int64, sub *WebPushSubscription) error + func Open(driver, source string) (Database, error) + func OpenPostgresDB(source string) (Database, error) + func OpenSqliteDB(source string) (Database, error) + func OpenTempPostgresDB(source string) (Database, error) + func OpenTempSqliteDB() (Database, error) + type DatabaseStats struct + Channels int64 + Networks int64 + Users int64 + type DeliveryReceipt struct + Client string + ID int64 + InternalMsgID string + Target string + type MessageFilter int + const FilterDefault + const FilterHighlight + const FilterMessage + const FilterNone + type MessageOptions struct + AfterID int64 + AfterTime time.Time + BeforeTime time.Time + Events bool + Limit int + Sender string + TakeLast bool + Text string + type MessageTarget struct + LatestMessage time.Time + Name string + type MetricsCollectorDatabase interface + RegisterMetrics func(r prometheus.Registerer) error + type Network struct + Addr string + AutoAway bool + CertFP string + ConnectCommands []string + Enabled bool + ID int64 + Name string + Nick string + Pass string + Realname string + SASL SASL + Username string + func NewNetwork(addr string) *Network + func (net *Network) GetName() string + func (net *Network) URL() (*url.URL, error) + type PostgresDB struct + func (db *PostgresDB) Close() error + func (db *PostgresDB) DeleteChannel(ctx context.Context, id int64) error + func (db *PostgresDB) DeleteNetwork(ctx context.Context, id int64) error + func (db *PostgresDB) DeleteUser(ctx context.Context, id int64) error + func (db *PostgresDB) DeleteWebPushSubscription(ctx context.Context, id int64) error + func (db *PostgresDB) GetMessageLastID(ctx context.Context, networkID int64, name string) (int64, error) + func (db *PostgresDB) GetReadReceipt(ctx context.Context, networkID int64, name string) (*ReadReceipt, error) + func (db *PostgresDB) GetUser(ctx context.Context, username string) (*User, error) + func (db *PostgresDB) ListChannels(ctx context.Context, networkID int64) ([]Channel, error) + func (db *PostgresDB) ListDeliveryReceipts(ctx context.Context, networkID int64) ([]DeliveryReceipt, error) + func (db *PostgresDB) ListInactiveUsernames(ctx context.Context, limit time.Time) ([]string, error) + func (db *PostgresDB) ListMessageLastPerTarget(ctx context.Context, networkID int64, options *MessageOptions) ([]MessageTarget, error) + func (db *PostgresDB) ListMessages(ctx context.Context, networkID int64, name string, options *MessageOptions) ([]*irc.Message, error) + func (db *PostgresDB) ListNetworks(ctx context.Context, userID int64) ([]Network, error) + func (db *PostgresDB) ListUsers(ctx context.Context) ([]User, error) + func (db *PostgresDB) ListWebPushConfigs(ctx context.Context) ([]WebPushConfig, error) + func (db *PostgresDB) ListWebPushSubscriptions(ctx context.Context, userID, networkID int64) ([]WebPushSubscription, error) + func (db *PostgresDB) RegisterMetrics(r prometheus.Registerer) error + func (db *PostgresDB) Stats(ctx context.Context) (*DatabaseStats, error) + func (db *PostgresDB) StoreChannel(ctx context.Context, networkID int64, ch *Channel) error + func (db *PostgresDB) StoreClientDeliveryReceipts(ctx context.Context, networkID int64, client string, ...) error + func (db *PostgresDB) StoreMessages(ctx context.Context, networkID int64, name string, msgs []*irc.Message) ([]int64, error) + func (db *PostgresDB) StoreNetwork(ctx context.Context, userID int64, network *Network) error + func (db *PostgresDB) StoreReadReceipt(ctx context.Context, networkID int64, receipt *ReadReceipt) error + func (db *PostgresDB) StoreUser(ctx context.Context, user *User) error + func (db *PostgresDB) StoreWebPushConfig(ctx context.Context, config *WebPushConfig) error + func (db *PostgresDB) StoreWebPushSubscription(ctx context.Context, userID, networkID int64, sub *WebPushSubscription) error + type ReadReceipt struct + ID int64 + Target string + Timestamp time.Time + type SASL struct + External struct{ ... } + Mechanism string + Plain struct{ ... } + type SqliteDB struct + func (db *SqliteDB) Close() error + func (db *SqliteDB) DeleteChannel(ctx context.Context, id int64) error + func (db *SqliteDB) DeleteNetwork(ctx context.Context, id int64) error + func (db *SqliteDB) DeleteUser(ctx context.Context, id int64) error + func (db *SqliteDB) DeleteWebPushSubscription(ctx context.Context, id int64) error + func (db *SqliteDB) GetMessageLastID(ctx context.Context, networkID int64, name string) (int64, error) + func (db *SqliteDB) GetReadReceipt(ctx context.Context, networkID int64, name string) (*ReadReceipt, error) + func (db *SqliteDB) GetUser(ctx context.Context, username string) (*User, error) + func (db *SqliteDB) ListChannels(ctx context.Context, networkID int64) ([]Channel, error) + func (db *SqliteDB) ListDeliveryReceipts(ctx context.Context, networkID int64) ([]DeliveryReceipt, error) + func (db *SqliteDB) ListInactiveUsernames(ctx context.Context, limit time.Time) ([]string, error) + func (db *SqliteDB) ListMessageLastPerTarget(ctx context.Context, networkID int64, options *MessageOptions) ([]MessageTarget, error) + func (db *SqliteDB) ListMessages(ctx context.Context, networkID int64, name string, options *MessageOptions) ([]*irc.Message, error) + func (db *SqliteDB) ListNetworks(ctx context.Context, userID int64) ([]Network, error) + func (db *SqliteDB) ListUsers(ctx context.Context) ([]User, error) + func (db *SqliteDB) ListWebPushConfigs(ctx context.Context) ([]WebPushConfig, error) + func (db *SqliteDB) ListWebPushSubscriptions(ctx context.Context, userID, networkID int64) ([]WebPushSubscription, error) + func (db *SqliteDB) RegisterMetrics(r prometheus.Registerer) error + func (db *SqliteDB) Stats(ctx context.Context) (*DatabaseStats, error) + func (db *SqliteDB) StoreChannel(ctx context.Context, networkID int64, ch *Channel) error + func (db *SqliteDB) StoreClientDeliveryReceipts(ctx context.Context, networkID int64, client string, ...) error + func (db *SqliteDB) StoreMessages(ctx context.Context, networkID int64, name string, msgs []*irc.Message) ([]int64, error) + func (db *SqliteDB) StoreNetwork(ctx context.Context, userID int64, network *Network) error + func (db *SqliteDB) StoreReadReceipt(ctx context.Context, networkID int64, receipt *ReadReceipt) error + func (db *SqliteDB) StoreUser(ctx context.Context, user *User) error + func (db *SqliteDB) StoreWebPushConfig(ctx context.Context, config *WebPushConfig) error + func (db *SqliteDB) StoreWebPushSubscription(ctx context.Context, userID, networkID int64, sub *WebPushSubscription) error + type User struct + Admin bool + DownstreamInteractedAt time.Time + Enabled bool + ID int64 + Nick string + Password string + Realname string + Username string + func NewUser(username string) *User + func (u *User) CheckPassword(password string) (upgraded bool, err error) + func (u *User) SetPassword(password string) error + type WebPushConfig struct + ID int64 + VAPIDKeys struct{ ... } + type WebPushSubscription struct + CreatedAt time.Time + Endpoint string + ID int64 + Keys struct{ ... } + UpdatedAt time.Time