Documentation
¶
Index ¶
- Variables
- func SetMeilisearchManager(manager *MeilisearchManager)
- func SetRepositoryManager(manager *repo.RepositoryManager)
- func UnifiedSearchResources(keyword string, limit int, systemConfigRepo repo.SystemConfigRepository, ...) ([]entity.Resource, error)
- type MeilisearchDocument
- type MeilisearchManager
- func (m *MeilisearchManager) ClearIndex() error
- func (m *MeilisearchManager) DebugGetAllDocuments() error
- func (m *MeilisearchManager) GetAllResources(page, pageSize int) ([]entity.Resource, int64, error)
- func (m *MeilisearchManager) GetService() *MeilisearchService
- func (m *MeilisearchManager) GetStatus() (MeilisearchStatus, error)
- func (m *MeilisearchManager) GetStatusWithHealthCheck() (MeilisearchStatus, error)
- func (m *MeilisearchManager) GetSyncProgress() SyncProgress
- func (m *MeilisearchManager) GetSyncedResources(page, pageSize int) ([]entity.Resource, int64, error)
- func (m *MeilisearchManager) GetUnsyncedCount() (int64, error)
- func (m *MeilisearchManager) GetUnsyncedResources(page, pageSize int) ([]entity.Resource, int64, error)
- func (m *MeilisearchManager) Initialize() error
- func (m *MeilisearchManager) IsEnabled() bool
- func (m *MeilisearchManager) ReloadConfig() error
- func (m *MeilisearchManager) Stop()
- func (m *MeilisearchManager) StopSync()
- func (m *MeilisearchManager) SyncAllResources() (int, error)
- func (m *MeilisearchManager) SyncResourceToMeilisearch(resource *entity.Resource) error
- type MeilisearchService
- func (m *MeilisearchService) BatchAddDocuments(docs []MeilisearchDocument) error
- func (m *MeilisearchService) ClearIndex() error
- func (m *MeilisearchService) CreateIndex() error
- func (m *MeilisearchService) DeleteDocument(documentID uint) error
- func (m *MeilisearchService) GetAllDocuments() ([]MeilisearchDocument, error)
- func (m *MeilisearchService) GetIndexStats() (map[string]interface{}, error)
- func (m *MeilisearchService) HealthCheck() error
- func (m *MeilisearchService) IsEnabled() bool
- func (m *MeilisearchService) Search(query string, filters map[string]interface{}, page, pageSize int) ([]MeilisearchDocument, int64, error)
- func (m *MeilisearchService) UpdateIndexSettings() error
- func (m *MeilisearchService) UpdateResourceValidity(resourceID uint, isValid bool) error
- type MeilisearchStatus
- type SearchSession
- type SearchSessionManager
- func (m *SearchSessionManager) CreateSession(userID, keyword string, resources []entity.Resource, pageSize int) *SearchSession
- func (m *SearchSessionManager) GetCurrentPageResources(userID string) []entity.Resource
- func (m *SearchSessionManager) GetPageInfo(userID string) (currentPage, totalPages int, hasPrev, hasNext bool)
- func (m *SearchSessionManager) GetPageResources(userID string, page int) []entity.Resource
- func (m *SearchSessionManager) GetSession(userID string) *SearchSession
- func (m *SearchSessionManager) HasNextPage(userID string) bool
- func (m *SearchSessionManager) HasPrevPage(userID string) bool
- func (m *SearchSessionManager) NextPage(userID string) []entity.Resource
- func (m *SearchSessionManager) PrevPage(userID string) []entity.Resource
- func (m *SearchSessionManager) SetCurrentPage(userID string, page int) bool
- type SyncProgress
- type TelegramBotConfig
- type TelegramBotService
- type TelegramBotServiceImpl
- func (s *TelegramBotServiceImpl) CleanupDuplicateChannels() error
- func (s *TelegramBotServiceImpl) DeleteMessage(chatID int64, messageID int) error
- func (s *TelegramBotServiceImpl) GetBotUsername() string
- func (s *TelegramBotServiceImpl) GetImgUrl(fid string) string
- func (s *TelegramBotServiceImpl) GetRuntimeStatus() map[string]interface{}
- func (s *TelegramBotServiceImpl) HandleWebhookUpdate(c interface{})
- func (s *TelegramBotServiceImpl) IsChannelRegistered(chatID int64) bool
- func (s *TelegramBotServiceImpl) IsRunning() bool
- func (s *TelegramBotServiceImpl) ManualPushToChannel(channelID uint) error
- func (s *TelegramBotServiceImpl) RegisterChannel(chatID int64, chatName, chatType string) error
- func (s *TelegramBotServiceImpl) ReloadConfig() error
- func (s *TelegramBotServiceImpl) SendMessage(chatID int64, text string, img string) error
- func (s *TelegramBotServiceImpl) Start() error
- func (s *TelegramBotServiceImpl) Stop() error
- func (s *TelegramBotServiceImpl) ValidateApiKey(apiKey string) (bool, map[string]interface{}, error)
- func (s *TelegramBotServiceImpl) ValidateApiKeyWithProxy(apiKey string, proxyEnabled bool, proxyType, proxyHost string, proxyPort int, ...) (bool, map[string]interface{}, error)
- type WechatBotConfig
- type WechatBotService
- type WechatBotServiceImpl
- func (s *WechatBotServiceImpl) GetConfig() *WechatBotConfig
- func (s *WechatBotServiceImpl) GetRuntimeStatus() map[string]interface{}
- func (s *WechatBotServiceImpl) HandleMessage(msg *message.MixMessage) (interface{}, error)
- func (s *WechatBotServiceImpl) IsRunning() bool
- func (s *WechatBotServiceImpl) ReloadConfig() error
- func (s *WechatBotServiceImpl) SearchResources(keyword string) ([]entity.Resource, error)
- func (s *WechatBotServiceImpl) SendWelcomeMessage(openID string) error
- func (s *WechatBotServiceImpl) Start() error
- func (s *WechatBotServiceImpl) Stop() error
Constants ¶
This section is empty.
Variables ¶
var GlobalSearchSessionManager = NewSearchSessionManager()
GlobalSearchSessionManager 全局搜索会话管理器
Functions ¶
func SetMeilisearchManager ¶ added in v1.3.3
func SetMeilisearchManager(manager *MeilisearchManager)
SetMeilisearchManager 设置Meilisearch管理器
func SetRepositoryManager ¶ added in v1.3.3
func SetRepositoryManager(manager *repo.RepositoryManager)
SetRepositoryManager 设置Repository管理器
func UnifiedSearchResources ¶ added in v1.3.3
func UnifiedSearchResources(keyword string, limit int, systemConfigRepo repo.SystemConfigRepository, resourceRepo repo.ResourceRepository) ([]entity.Resource, error)
UnifiedSearchResources 执行统一搜索(优先使用Meilisearch,否则使用数据库搜索)并处理违禁词
Types ¶
type MeilisearchDocument ¶
type MeilisearchDocument struct {
ID uint `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
URL string `json:"url"`
SaveURL string `json:"save_url"`
FileSize string `json:"file_size"`
Key string `json:"key"`
Category string `json:"category"`
Tags []string `json:"tags"`
PanName string `json:"pan_name"`
PanID *uint `json:"pan_id"`
Author string `json:"author"`
Cover string `json:"cover"`
IsValid bool `json:"is_valid"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// 高亮字段
TitleHighlight string `json:"_title_highlight,omitempty"`
DescriptionHighlight string `json:"_description_highlight,omitempty"`
CategoryHighlight string `json:"_category_highlight,omitempty"`
TagsHighlight []string `json:"_tags_highlight,omitempty"`
}
MeilisearchDocument 搜索文档结构
type MeilisearchManager ¶
type MeilisearchManager struct {
// contains filtered or unexported fields
}
MeilisearchManager Meilisearch管理器
func NewMeilisearchManager ¶
func NewMeilisearchManager(repoMgr *repo.RepositoryManager) *MeilisearchManager
NewMeilisearchManager 创建Meilisearch管理器
func (*MeilisearchManager) ClearIndex ¶
func (m *MeilisearchManager) ClearIndex() error
ClearIndex 清空索引
func (*MeilisearchManager) DebugGetAllDocuments ¶
func (m *MeilisearchManager) DebugGetAllDocuments() error
DebugGetAllDocuments 调试:获取所有文档
func (*MeilisearchManager) GetAllResources ¶
GetAllResources 获取所有资源
func (*MeilisearchManager) GetService ¶
func (m *MeilisearchManager) GetService() *MeilisearchService
GetService 获取Meilisearch服务
func (*MeilisearchManager) GetStatus ¶
func (m *MeilisearchManager) GetStatus() (MeilisearchStatus, error)
GetStatus 获取状态
func (*MeilisearchManager) GetStatusWithHealthCheck ¶
func (m *MeilisearchManager) GetStatusWithHealthCheck() (MeilisearchStatus, error)
GetStatusWithHealthCheck 获取状态并同时进行健康检查
func (*MeilisearchManager) GetSyncProgress ¶
func (m *MeilisearchManager) GetSyncProgress() SyncProgress
GetSyncProgress 获取同步进度
func (*MeilisearchManager) GetSyncedResources ¶
func (m *MeilisearchManager) GetSyncedResources(page, pageSize int) ([]entity.Resource, int64, error)
GetSyncedResources 获取已同步的资源
func (*MeilisearchManager) GetUnsyncedCount ¶
func (m *MeilisearchManager) GetUnsyncedCount() (int64, error)
GetUnsyncedCount 获取未同步资源数量
func (*MeilisearchManager) GetUnsyncedResources ¶
func (m *MeilisearchManager) GetUnsyncedResources(page, pageSize int) ([]entity.Resource, int64, error)
GetUnsyncedResources 获取未同步的资源
func (*MeilisearchManager) Initialize ¶
func (m *MeilisearchManager) Initialize() error
Initialize 初始化Meilisearch服务
func (*MeilisearchManager) IsEnabled ¶
func (m *MeilisearchManager) IsEnabled() bool
IsEnabled 检查是否启用
func (*MeilisearchManager) ReloadConfig ¶
func (m *MeilisearchManager) ReloadConfig() error
ReloadConfig 重新加载配置
func (*MeilisearchManager) SyncAllResources ¶
func (m *MeilisearchManager) SyncAllResources() (int, error)
SyncAllResources 同步所有资源
func (*MeilisearchManager) SyncResourceToMeilisearch ¶
func (m *MeilisearchManager) SyncResourceToMeilisearch(resource *entity.Resource) error
SyncResourceToMeilisearch 同步资源到Meilisearch
type MeilisearchService ¶
type MeilisearchService struct {
// contains filtered or unexported fields
}
MeilisearchService Meilisearch服务
func NewMeilisearchService ¶
func NewMeilisearchService(host, port, masterKey, indexName string, enabled bool) *MeilisearchService
NewMeilisearchService 创建Meilisearch服务
func (*MeilisearchService) BatchAddDocuments ¶
func (m *MeilisearchService) BatchAddDocuments(docs []MeilisearchDocument) error
BatchAddDocuments 批量添加文档
func (*MeilisearchService) ClearIndex ¶
func (m *MeilisearchService) ClearIndex() error
ClearIndex 清空索引
func (*MeilisearchService) CreateIndex ¶
func (m *MeilisearchService) CreateIndex() error
CreateIndex 创建索引
func (*MeilisearchService) DeleteDocument ¶ added in v1.3.1
func (m *MeilisearchService) DeleteDocument(documentID uint) error
DeleteDocument 删除单个文档
func (*MeilisearchService) GetAllDocuments ¶
func (m *MeilisearchService) GetAllDocuments() ([]MeilisearchDocument, error)
GetAllDocuments 获取所有文档(用于调试)
func (*MeilisearchService) GetIndexStats ¶
func (m *MeilisearchService) GetIndexStats() (map[string]interface{}, error)
GetIndexStats 获取索引统计信息
func (*MeilisearchService) HealthCheck ¶
func (m *MeilisearchService) HealthCheck() error
HealthCheck 健康检查
func (*MeilisearchService) IsEnabled ¶
func (m *MeilisearchService) IsEnabled() bool
IsEnabled 检查是否启用
func (*MeilisearchService) Search ¶
func (m *MeilisearchService) Search(query string, filters map[string]interface{}, page, pageSize int) ([]MeilisearchDocument, int64, error)
Search 搜索文档
func (*MeilisearchService) UpdateIndexSettings ¶
func (m *MeilisearchService) UpdateIndexSettings() error
UpdateIndexSettings 更新索引设置
func (*MeilisearchService) UpdateResourceValidity ¶ added in v1.3.7
func (m *MeilisearchService) UpdateResourceValidity(resourceID uint, isValid bool) error
UpdateResourceValidity 更新资源有效性状态
type MeilisearchStatus ¶
type MeilisearchStatus struct {
Enabled bool `json:"enabled"`
Healthy bool `json:"healthy"`
LastCheck time.Time `json:"last_check"`
ErrorCount int `json:"error_count"`
LastError string `json:"last_error"`
DocumentCount int64 `json:"document_count"`
}
MeilisearchStatus Meilisearch状态
type SearchSession ¶ added in v1.3.3
type SearchSession struct {
UserID string // 用户ID
Keyword string // 搜索关键字
Resources []entity.Resource // 搜索结果
PageSize int // 每页数量
CurrentPage int // 当前页码
TotalPages int // 总页数
LastAccess time.Time // 最后访问时间
}
SearchSession 搜索会话
type SearchSessionManager ¶ added in v1.3.3
type SearchSessionManager struct {
// contains filtered or unexported fields
}
SearchSessionManager 搜索会话管理器
func NewSearchSessionManager ¶ added in v1.3.3
func NewSearchSessionManager() *SearchSessionManager
NewSearchSessionManager 创建搜索会话管理器
func (*SearchSessionManager) CreateSession ¶ added in v1.3.3
func (m *SearchSessionManager) CreateSession(userID, keyword string, resources []entity.Resource, pageSize int) *SearchSession
CreateSession 创建或更新搜索会话
func (*SearchSessionManager) GetCurrentPageResources ¶ added in v1.3.3
func (m *SearchSessionManager) GetCurrentPageResources(userID string) []entity.Resource
GetCurrentPageResources 获取当前页的资源
func (*SearchSessionManager) GetPageInfo ¶ added in v1.3.3
func (m *SearchSessionManager) GetPageInfo(userID string) (currentPage, totalPages int, hasPrev, hasNext bool)
GetPageInfo 获取分页信息
func (*SearchSessionManager) GetPageResources ¶ added in v1.3.3
func (m *SearchSessionManager) GetPageResources(userID string, page int) []entity.Resource
GetPageResources 获取指定页的资源
func (*SearchSessionManager) GetSession ¶ added in v1.3.3
func (m *SearchSessionManager) GetSession(userID string) *SearchSession
GetSession 获取搜索会话
func (*SearchSessionManager) HasNextPage ¶ added in v1.3.3
func (m *SearchSessionManager) HasNextPage(userID string) bool
HasNextPage 是否有下一页
func (*SearchSessionManager) HasPrevPage ¶ added in v1.3.3
func (m *SearchSessionManager) HasPrevPage(userID string) bool
HasPrevPage 是否有上一页
func (*SearchSessionManager) NextPage ¶ added in v1.3.3
func (m *SearchSessionManager) NextPage(userID string) []entity.Resource
NextPage 下一页
func (*SearchSessionManager) PrevPage ¶ added in v1.3.3
func (m *SearchSessionManager) PrevPage(userID string) []entity.Resource
PrevPage 上一页
func (*SearchSessionManager) SetCurrentPage ¶ added in v1.3.3
func (m *SearchSessionManager) SetCurrentPage(userID string, page int) bool
SetCurrentPage 设置当前页
type SyncProgress ¶
type SyncProgress struct {
IsRunning bool `json:"is_running"`
TotalCount int64 `json:"total_count"`
ProcessedCount int64 `json:"processed_count"`
SyncedCount int64 `json:"synced_count"`
FailedCount int64 `json:"failed_count"`
StartTime time.Time `json:"start_time"`
EstimatedTime string `json:"estimated_time"`
CurrentBatch int `json:"current_batch"`
TotalBatches int `json:"total_batches"`
ErrorMessage string `json:"error_message"`
}
SyncProgress 同步进度
type TelegramBotConfig ¶ added in v1.3.0
type TelegramBotService ¶ added in v1.3.0
type TelegramBotService interface {
Start() error
Stop() error
IsRunning() bool
ReloadConfig() error
GetRuntimeStatus() map[string]interface{}
ValidateApiKey(apiKey string) (bool, map[string]interface{}, error)
ValidateApiKeyWithProxy(apiKey string, proxyEnabled bool, proxyType, proxyHost string, proxyPort int, proxyUsername, proxyPassword string) (bool, map[string]interface{}, error)
GetBotUsername() string
SendMessage(chatID int64, text string, img string) error
DeleteMessage(chatID int64, messageID int) error
RegisterChannel(chatID int64, chatName, chatType string) error
IsChannelRegistered(chatID int64) bool
HandleWebhookUpdate(c interface{})
CleanupDuplicateChannels() error
ManualPushToChannel(channelID uint) error
}
func NewTelegramBotService ¶ added in v1.3.0
func NewTelegramBotService( systemConfigRepo repo.SystemConfigRepository, channelRepo repo.TelegramChannelRepository, resourceRepo repo.ResourceRepository, readyResourceRepo repo.ReadyResourceRepository, ) TelegramBotService
type TelegramBotServiceImpl ¶ added in v1.3.0
type TelegramBotServiceImpl struct {
// contains filtered or unexported fields
}
func (*TelegramBotServiceImpl) CleanupDuplicateChannels ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) CleanupDuplicateChannels() error
CleanupDuplicateChannels 清理数据库中的重复频道记录
func (*TelegramBotServiceImpl) DeleteMessage ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) DeleteMessage(chatID int64, messageID int) error
DeleteMessage 删除消息
func (*TelegramBotServiceImpl) GetBotUsername ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) GetBotUsername() string
GetBotUsername 获取机器人用户名
func (*TelegramBotServiceImpl) GetImgUrl ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) GetImgUrl(fid string) string
func (*TelegramBotServiceImpl) GetRuntimeStatus ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) GetRuntimeStatus() map[string]interface{}
GetRuntimeStatus 获取机器人运行时状态
func (*TelegramBotServiceImpl) HandleWebhookUpdate ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) HandleWebhookUpdate(c interface{})
HandleWebhookUpdate 处理 Webhook 更新(预留接口,目前使用长轮询)
func (*TelegramBotServiceImpl) IsChannelRegistered ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) IsChannelRegistered(chatID int64) bool
IsChannelRegistered 检查频道是否已注册
func (*TelegramBotServiceImpl) IsRunning ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) IsRunning() bool
IsRunning 检查机器人服务是否正在运行
func (*TelegramBotServiceImpl) ManualPushToChannel ¶ added in v1.3.5
func (s *TelegramBotServiceImpl) ManualPushToChannel(channelID uint) error
ManualPushToChannel 手动推送内容到指定频道
func (*TelegramBotServiceImpl) RegisterChannel ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) RegisterChannel(chatID int64, chatName, chatType string) error
RegisterChannel 注册频道
func (*TelegramBotServiceImpl) ReloadConfig ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) ReloadConfig() error
ReloadConfig 重新加载机器人配置
func (*TelegramBotServiceImpl) SendMessage ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) SendMessage(chatID int64, text string, img string) error
SendMessage 发送消息(默认使用 HTML 格式)
func (*TelegramBotServiceImpl) Start ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) Start() error
Start 启动机器人服务
func (*TelegramBotServiceImpl) Stop ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) Stop() error
Stop 停止机器人服务
func (*TelegramBotServiceImpl) ValidateApiKey ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) ValidateApiKey(apiKey string) (bool, map[string]interface{}, error)
ValidateApiKey 验证 API Key
func (*TelegramBotServiceImpl) ValidateApiKeyWithProxy ¶ added in v1.3.0
func (s *TelegramBotServiceImpl) ValidateApiKeyWithProxy(apiKey string, proxyEnabled bool, proxyType, proxyHost string, proxyPort int, proxyUsername, proxyPassword string) (bool, map[string]interface{}, error)
ValidateApiKeyWithProxy 使用代理配置验证 API Key
type WechatBotConfig ¶ added in v1.3.3
type WechatBotConfig struct {
Enabled bool
AppID string
AppSecret string
Token string
EncodingAesKey string
WelcomeMessage string
AutoReplyEnabled bool
SearchLimit int
}
WechatBotConfig 微信公众号机器人配置
type WechatBotService ¶ added in v1.3.3
type WechatBotService interface {
Start() error
Stop() error
IsRunning() bool
ReloadConfig() error
HandleMessage(msg *message.MixMessage) (interface{}, error)
SendWelcomeMessage(openID string) error
GetRuntimeStatus() map[string]interface{}
GetConfig() *WechatBotConfig
}
WechatBotService 微信公众号机器人服务接口
func NewWechatBotService ¶ added in v1.3.3
func NewWechatBotService( systemConfigRepo repo.SystemConfigRepository, resourceRepo repo.ResourceRepository, readyResourceRepo repo.ReadyResourceRepository, ) WechatBotService
NewWechatBotService 创建微信公众号机器人服务
type WechatBotServiceImpl ¶ added in v1.3.3
type WechatBotServiceImpl struct {
// contains filtered or unexported fields
}
WechatBotServiceImpl 微信公众号机器人服务实现
func (*WechatBotServiceImpl) GetConfig ¶ added in v1.3.3
func (s *WechatBotServiceImpl) GetConfig() *WechatBotConfig
GetConfig 获取当前配置
func (*WechatBotServiceImpl) GetRuntimeStatus ¶ added in v1.3.3
func (s *WechatBotServiceImpl) GetRuntimeStatus() map[string]interface{}
GetRuntimeStatus 获取微信公众号机器人运行时状态
func (*WechatBotServiceImpl) HandleMessage ¶ added in v1.3.3
func (s *WechatBotServiceImpl) HandleMessage(msg *message.MixMessage) (interface{}, error)
HandleMessage 处理微信消息
func (*WechatBotServiceImpl) IsRunning ¶ added in v1.3.3
func (s *WechatBotServiceImpl) IsRunning() bool
IsRunning 检查微信公众号机器人服务是否正在运行
func (*WechatBotServiceImpl) ReloadConfig ¶ added in v1.3.3
func (s *WechatBotServiceImpl) ReloadConfig() error
ReloadConfig 重新加载微信公众号机器人配置
func (*WechatBotServiceImpl) SearchResources ¶ added in v1.3.3
func (s *WechatBotServiceImpl) SearchResources(keyword string) ([]entity.Resource, error)
SearchResources 搜索资源
func (*WechatBotServiceImpl) SendWelcomeMessage ¶ added in v1.3.3
func (s *WechatBotServiceImpl) SendWelcomeMessage(openID string) error
SendWelcomeMessage 发送欢迎消息(预留接口,实际通过事件处理)
func (*WechatBotServiceImpl) Start ¶ added in v1.3.3
func (s *WechatBotServiceImpl) Start() error
Start 启动微信公众号机器人服务
func (*WechatBotServiceImpl) Stop ¶ added in v1.3.3
func (s *WechatBotServiceImpl) Stop() error
Stop 停止微信公众号机器人服务