services

package
v1.3.8 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2026 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

func (m *MeilisearchManager) GetAllResources(page, pageSize int) ([]entity.Resource, int64, error)

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) Stop

func (m *MeilisearchManager) Stop()

Stop 停止监控

func (*MeilisearchManager) StopSync

func (m *MeilisearchManager) StopSync()

StopSync 停止同步

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 TelegramBotConfig struct {
	Enabled            bool
	ApiKey             string
	AutoReplyEnabled   bool
	AutoReplyTemplate  string
	AutoDeleteEnabled  bool
	AutoDeleteInterval int // 分钟
	ProxyEnabled       bool
	ProxyType          string // http, https, socks5
	ProxyHost          string
	ProxyPort          int
	ProxyUsername      string
	ProxyPassword      string
}

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 停止微信公众号机器人服务

Jump to

Keyboard shortcuts

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