Documentation
¶
Index ¶
- func BackupDatabase(dbPath string) (string, error)
- func ClearMessages(db *sql.DB) error
- func ConvertPluginMessage(pluginMsg sdk.Message) shared.Message
- func CreateSchema(db *sql.DB)
- func GetDatabaseStats(db *sql.DB) (string, error)
- func GetMessagesAfter(db *sql.DB, lastMessageID int64, limit int) []shared.Message
- func GetRecentMessages(db *sql.DB) []shared.Message
- func GetRecentMessagesForUser(db *sql.DB, username string, defaultLimit int, banGapsHistory bool) ([]shared.Message, int64)
- func InitDB(filepath string) *sql.DB
- func InsertEncryptedMessage(db *sql.DB, encryptedMsg *shared.EncryptedMessage)
- func InsertMessage(db *sql.DB, msg shared.Message)
- func RunAdminPanel(hub *Hub, db *sql.DB, pluginManager *manager.PluginManager, ...) error
- func ServeWs(hub *Hub, db *sql.DB, adminList []string, adminKey string, banGapsHistory bool) http.HandlerFunc
- type AdminPanel
- type Client
- type Config
- type Hub
- func (h *Hub) AllowUser(username string, adminUsername string) bool
- func (h *Hub) BanUser(username string, adminUsername string)
- func (h *Hub) CleanupExpiredBans()
- func (h *Hub) CleanupStaleConnections()
- func (h *Hub) ForceDisconnectUser(username string, adminUsername string) bool
- func (h *Hub) GetPluginManager() *manager.PluginManager
- func (h *Hub) IsUserBanned(username string) bool
- func (h *Hub) KickUser(username string, adminUsername string)
- func (h *Hub) Run()
- func (h *Hub) UnbanUser(username string, adminUsername string) bool
- type PluginCommandHandler
- func (h *PluginCommandHandler) GetPluginMessageChannel() <-chan sdk.Message
- func (h *PluginCommandHandler) HandlePluginCommand(cmd string, args []string, isAdmin bool) (string, error)
- func (h *PluginCommandHandler) SendMessageToPlugins(msg shared.Message)
- func (h *PluginCommandHandler) UpdateUserListForPlugins(users []string)
- type UserList
- type WSMessage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BackupDatabase ¶
BackupDatabase creates a backup of the current database
func ClearMessages ¶
func ConvertPluginMessage ¶
ConvertPluginMessage converts a plugin message to a shared message
func CreateSchema ¶
func GetDatabaseStats ¶
GetDatabaseStats returns statistics about the database
func GetMessagesAfter ¶
GetMessagesAfter retrieves messages with ID > lastMessageID
func GetRecentMessagesForUser ¶
func GetRecentMessagesForUser(db *sql.DB, username string, defaultLimit int, banGapsHistory bool) ([]shared.Message, int64)
GetRecentMessagesForUser returns personalized message history for a specific user
func InsertEncryptedMessage ¶
func InsertEncryptedMessage(db *sql.DB, encryptedMsg *shared.EncryptedMessage)
InsertEncryptedMessage stores an encrypted message in the database
func RunAdminPanel ¶
func RunAdminPanel(hub *Hub, db *sql.DB, pluginManager *manager.PluginManager, configDir, dbPath string, port int) error
RunAdminPanel starts the admin panel TUI
Types ¶
type AdminPanel ¶
type AdminPanel struct {
// contains filtered or unexported fields
}
AdminPanel represents the main admin panel state
func NewAdminPanel ¶
func NewAdminPanel(hub *Hub, db *sql.DB, pluginManager *manager.PluginManager, configDir, dbPath string, port int) *AdminPanel
NewAdminPanel creates a new admin panel instance
func (*AdminPanel) View ¶
func (ap *AdminPanel) View() string
type Config ¶
type Config struct {
Port int `json:"port"`
Admins []string `json:"admins"`
AdminKey string `json:"admin_key"`
}
func LoadConfig ¶
LoadConfig loads configuration from a JSON file (for backward compatibility)
func LoadConfigFromDir ¶
LoadConfigFromDir loads configuration from a directory, checking for JSON config files
type Hub ¶
type Hub struct {
// contains filtered or unexported fields
}
func (*Hub) CleanupExpiredBans ¶
func (h *Hub) CleanupExpiredBans()
CleanupExpiredBans removes expired bans and kicks from the lists
func (*Hub) CleanupStaleConnections ¶
func (h *Hub) CleanupStaleConnections()
CleanupStaleConnections removes clients with broken connections
func (*Hub) ForceDisconnectUser ¶
ForceDisconnectUser forcibly removes a user from the clients map (admin command for stale connections)
func (*Hub) GetPluginManager ¶
func (h *Hub) GetPluginManager() *manager.PluginManager
GetPluginManager returns the plugin manager reference
func (*Hub) IsUserBanned ¶
IsUserBanned checks if a user is currently banned or kicked
type PluginCommandHandler ¶
type PluginCommandHandler struct {
// contains filtered or unexported fields
}
PluginCommandHandler handles plugin-related commands
func NewPluginCommandHandler ¶
func NewPluginCommandHandler(pluginManager *manager.PluginManager) *PluginCommandHandler
NewPluginCommandHandler creates a new plugin command handler
func (*PluginCommandHandler) GetPluginMessageChannel ¶
func (h *PluginCommandHandler) GetPluginMessageChannel() <-chan sdk.Message
GetPluginMessageChannel returns the channel for receiving messages from plugins
func (*PluginCommandHandler) HandlePluginCommand ¶
func (h *PluginCommandHandler) HandlePluginCommand(cmd string, args []string, isAdmin bool) (string, error)
HandlePluginCommand handles plugin-related commands
func (*PluginCommandHandler) SendMessageToPlugins ¶
func (h *PluginCommandHandler) SendMessageToPlugins(msg shared.Message)
SendMessageToPlugins sends a message to all enabled plugins
func (*PluginCommandHandler) UpdateUserListForPlugins ¶
func (h *PluginCommandHandler) UpdateUserListForPlugins(users []string)
UpdateUserListForPlugins updates the user list for plugins
type WSMessage ¶
type WSMessage struct {
Type string `json:"type"`
Data json.RawMessage `json:"data"`
}