Documentation ¶
Overview ¶
Package suika is a hard-fork of the 0.3 series of soju, an user-friendly IRC bouncer in Go.
# Copyright (C) 2020 The soju Contributors # Copyright (C) 2023-present Izuru Yakumo et al.
suika is covered by the AGPLv3 license:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
Index ¶
- Variables
- func FullVersion() string
- func GetNick(user *User, net *Network) string
- func GetRealname(user *User, net *Network) string
- func GetUsername(user *User, net *Network) string
- type Channel
- type Config
- type Database
- type DatabaseStats
- type DeliveryReceipt
- type Identd
- type Logger
- type MessageFilter
- type MetricsCollectorDatabase
- type Network
- type PostgresDB
- 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) 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) ListNetworks(ctx context.Context, userID int64) ([]Network, error)
- func (db *PostgresDB) ListUsers(ctx context.Context) ([]User, error)
- func (db *PostgresDB) MetricsCollector() prometheus.Collector
- 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) 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
- type ReadReceipt
- type SASL
- type Server
- type ServerStats
- type SqliteDB
- 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) 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) ListNetworks(ctx context.Context, userID int64) ([]Network, error)
- func (db *SqliteDB) ListUsers(ctx context.Context) ([]User, error)
- func (db *SqliteDB) MetricsCollector() prometheus.Collector
- 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) 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
- type User
Constants ¶
This section is empty.
Variables ¶
var ( // Version is the tagged release version in the form <major>.<minor>.<patch> // following semantic versioning and is overwritten by the build system. Version = defaultVersion // Commit is the commit sha of the build (normally from Git) and is overwritten // by the build system. Commit = defaultCommit // Build is the date and time of the build as an RFC3339 formatted string // and is overwritten by the build system. Build = defaultBuild )
Functions ¶
func FullVersion ¶ added in v0.3.4
func FullVersion() string
FullVersion display the full version and build
func GetRealname ¶
func GetUsername ¶
Types ¶
type Channel ¶
type Channel struct { ID int64 Name string Key string Detached bool DetachedInternalMsgID string RelayDetached MessageFilter ReattachOn MessageFilter DetachAfter time.Duration DetachOn MessageFilter }
type Database ¶
type Database interface { Close() error Stats(ctx context.Context) (*DatabaseStats, error) ListUsers(ctx context.Context) ([]User, error) GetUser(ctx context.Context, username string) (*User, error) StoreUser(ctx context.Context, user *User) error DeleteUser(ctx context.Context, id int64) error ListNetworks(ctx context.Context, userID int64) ([]Network, error) StoreNetwork(ctx context.Context, userID int64, network *Network) error DeleteNetwork(ctx context.Context, id int64) error ListChannels(ctx context.Context, networkID int64) ([]Channel, error) StoreChannel(ctx context.Context, networKID int64, ch *Channel) error DeleteChannel(ctx context.Context, id int64) error ListDeliveryReceipts(ctx context.Context, networkID int64) ([]DeliveryReceipt, error) StoreClientDeliveryReceipts(ctx context.Context, networkID int64, client string, receipts []DeliveryReceipt) error GetReadReceipt(ctx context.Context, networkID int64, name string) (*ReadReceipt, error) StoreReadReceipt(ctx context.Context, networkID int64, receipt *ReadReceipt) error }
func OpenPostgresDB ¶
func OpenSqliteDB ¶
type DatabaseStats ¶
type DeliveryReceipt ¶
type Identd ¶
type Identd struct {
// contains filtered or unexported fields
}
Identd implements an ident server, as described in RFC 1413.
type Logger ¶
type MessageFilter ¶
type MessageFilter int
const ( // TODO: use customizable user defaults for FilterDefault FilterDefault MessageFilter = iota FilterNone FilterHighlight FilterMessage )
type MetricsCollectorDatabase ¶
type MetricsCollectorDatabase interface { Database MetricsCollector() prometheus.Collector }
type Network ¶
type PostgresDB ¶
type PostgresDB struct {
// contains filtered or unexported fields
}
func (*PostgresDB) Close ¶
func (db *PostgresDB) Close() error
func (*PostgresDB) DeleteChannel ¶
func (db *PostgresDB) DeleteChannel(ctx context.Context, id int64) error
func (*PostgresDB) DeleteNetwork ¶
func (db *PostgresDB) DeleteNetwork(ctx context.Context, id int64) error
func (*PostgresDB) DeleteUser ¶
func (db *PostgresDB) DeleteUser(ctx context.Context, id int64) error
func (*PostgresDB) GetReadReceipt ¶
func (db *PostgresDB) GetReadReceipt(ctx context.Context, networkID int64, name string) (*ReadReceipt, error)
func (*PostgresDB) ListChannels ¶
func (*PostgresDB) ListDeliveryReceipts ¶
func (db *PostgresDB) ListDeliveryReceipts(ctx context.Context, networkID int64) ([]DeliveryReceipt, error)
func (*PostgresDB) ListNetworks ¶
func (*PostgresDB) MetricsCollector ¶
func (db *PostgresDB) MetricsCollector() prometheus.Collector
func (*PostgresDB) Stats ¶
func (db *PostgresDB) Stats(ctx context.Context) (*DatabaseStats, error)
func (*PostgresDB) StoreChannel ¶
func (*PostgresDB) StoreClientDeliveryReceipts ¶
func (db *PostgresDB) StoreClientDeliveryReceipts(ctx context.Context, networkID int64, client string, receipts []DeliveryReceipt) error
func (*PostgresDB) StoreNetwork ¶
func (*PostgresDB) StoreReadReceipt ¶
func (db *PostgresDB) StoreReadReceipt(ctx context.Context, networkID int64, receipt *ReadReceipt) error
type ReadReceipt ¶
type Server ¶
type Server struct { Logger Logger Identd *Identd // can be nil MetricsRegistry prometheus.Registerer // can be nil // contains filtered or unexported fields }
func (*Server) Stats ¶
func (s *Server) Stats() *ServerStats
type ServerStats ¶
type SqliteDB ¶
type SqliteDB struct {
// contains filtered or unexported fields
}
func (*SqliteDB) DeleteChannel ¶
func (*SqliteDB) DeleteNetwork ¶
func (*SqliteDB) GetReadReceipt ¶
func (*SqliteDB) ListChannels ¶
func (*SqliteDB) ListDeliveryReceipts ¶
func (*SqliteDB) ListNetworks ¶
func (*SqliteDB) MetricsCollector ¶
func (db *SqliteDB) MetricsCollector() prometheus.Collector