Merge pull request #5 from ctwj/fix_filter

update: 完善Meilisearch的同步操作
This commit is contained in:
ctwj
2025-08-22 14:47:55 +08:00
committed by GitHub
7 changed files with 42 additions and 6 deletions

View File

@@ -269,7 +269,7 @@ func CreateResource(c *gin.Context) {
}
// 同步到Meilisearch
if meilisearchManager != nil {
if meilisearchManager != nil && meilisearchManager.IsEnabled() {
go func() {
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
utils.Error("同步资源到Meilisearch失败: %v", err)
@@ -354,7 +354,7 @@ func UpdateResource(c *gin.Context) {
}
// 同步到Meilisearch
if meilisearchManager != nil {
if meilisearchManager != nil && meilisearchManager.IsEnabled() {
go func() {
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
utils.Error("同步资源到Meilisearch失败: %v", err)

View File

@@ -322,6 +322,12 @@ func ToggleAutoProcess(c *gin.Context) {
return
}
// 确保配置缓存已刷新
if err := repoManager.SystemConfigRepository.SafeRefreshConfigCache(); err != nil {
utils.Error("刷新配置缓存失败: %v", err)
// 不返回错误,因为配置已经保存成功
}
// 更新定时任务状态
scheduler := scheduler.GetGlobalScheduler(
repoManager.HotDramaRepository,

View File

@@ -10,6 +10,7 @@ import (
"github.com/ctwj/urldb/db/repo"
"github.com/ctwj/urldb/handlers"
"github.com/ctwj/urldb/middleware"
"github.com/ctwj/urldb/scheduler"
"github.com/ctwj/urldb/services"
"github.com/ctwj/urldb/task"
"github.com/ctwj/urldb/utils"
@@ -121,6 +122,9 @@ func main() {
// 设置Meilisearch管理器到handlers中
handlers.SetMeilisearchManager(meilisearchManager)
// 设置全局调度器的Meilisearch管理器
scheduler.SetGlobalMeilisearchManager(meilisearchManager)
// 设置公开API中间件的Repository管理器
middleware.SetRepositoryManager(repoManager)

View File

@@ -218,9 +218,9 @@ func (a *AutoTransferScheduler) processAutoTransfer() {
if shouldSkip {
// 标记为违禁词错误
resource.ErrorMsg = fmt.Sprintf("存在违禁词: %s", strings.Join(matchedWords, ", "))
resource.ErrorMsg = fmt.Sprintf("存在违禁词 (共 %d 个)", len(matchedWords))
forbiddenResources = append(forbiddenResources, resource)
utils.Info(fmt.Sprintf("标记违禁词资源: %s, 违禁词: %s", resource.Title, strings.Join(matchedWords, ", ")))
utils.Info(fmt.Sprintf("标记违禁词资源: %s (包含 %d 个违禁词)", resource.Title, len(matchedWords)))
} else {
filteredResources = append(filteredResources, resource)
}

View File

@@ -4,6 +4,7 @@ import (
"sync"
"github.com/ctwj/urldb/db/repo"
"github.com/ctwj/urldb/services"
"github.com/ctwj/urldb/utils"
)
@@ -16,8 +17,20 @@ type GlobalScheduler struct {
var (
globalScheduler *GlobalScheduler
once sync.Once
// 全局Meilisearch管理器
globalMeilisearchManager *services.MeilisearchManager
)
// SetGlobalMeilisearchManager 设置全局Meilisearch管理器
func SetGlobalMeilisearchManager(manager *services.MeilisearchManager) {
globalMeilisearchManager = manager
}
// GetGlobalMeilisearchManager 获取全局Meilisearch管理器
func GetGlobalMeilisearchManager() *services.MeilisearchManager {
return globalMeilisearchManager
}
// GetGlobalScheduler 获取全局调度器实例(单例模式)
func GetGlobalScheduler(hotDramaRepo repo.HotDramaRepository, readyResourceRepo repo.ReadyResourceRepository, resourceRepo repo.ResourceRepository, systemConfigRepo repo.SystemConfigRepository, panRepo repo.PanRepository, cksRepo repo.CksRepository, tagRepo repo.TagRepository, categoryRepo repo.CategoryRepository) *GlobalScheduler {
once.Do(func() {

View File

@@ -342,6 +342,19 @@ func (r *ReadyResourceScheduler) convertReadyResourceToResource(readyResource en
}
}
// 同步到Meilisearch
if globalMeilisearchManager != nil && globalMeilisearchManager.IsEnabled() {
go func() {
if err := globalMeilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
utils.Error("同步资源到Meilisearch失败: %v", err)
} else {
utils.Info(fmt.Sprintf("资源已同步到Meilisearch: %s", resource.URL))
}
}()
} else {
utils.Debug("Meilisearch未启用或未初始化跳过同步")
}
return nil
}

View File

@@ -59,7 +59,7 @@
: '需要手动处理待处理资源'
}}
</div>
<n-button
<!-- <n-button
@click="refreshConfig"
:disabled="updatingConfig"
size="small"
@@ -69,7 +69,7 @@
<template #icon>
<i class="fas fa-sync-alt"></i>
</template>
</n-button>
</n-button> -->
<n-button
@click="toggleAutoProcess"
:disabled="updatingConfig"