mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 11:29:37 +08:00
@@ -269,7 +269,7 @@ func CreateResource(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 同步到Meilisearch
|
// 同步到Meilisearch
|
||||||
if meilisearchManager != nil {
|
if meilisearchManager != nil && meilisearchManager.IsEnabled() {
|
||||||
go func() {
|
go func() {
|
||||||
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
|
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
|
||||||
utils.Error("同步资源到Meilisearch失败: %v", err)
|
utils.Error("同步资源到Meilisearch失败: %v", err)
|
||||||
@@ -354,7 +354,7 @@ func UpdateResource(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 同步到Meilisearch
|
// 同步到Meilisearch
|
||||||
if meilisearchManager != nil {
|
if meilisearchManager != nil && meilisearchManager.IsEnabled() {
|
||||||
go func() {
|
go func() {
|
||||||
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
|
if err := meilisearchManager.SyncResourceToMeilisearch(resource); err != nil {
|
||||||
utils.Error("同步资源到Meilisearch失败: %v", err)
|
utils.Error("同步资源到Meilisearch失败: %v", err)
|
||||||
|
|||||||
@@ -322,6 +322,12 @@ func ToggleAutoProcess(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 确保配置缓存已刷新
|
||||||
|
if err := repoManager.SystemConfigRepository.SafeRefreshConfigCache(); err != nil {
|
||||||
|
utils.Error("刷新配置缓存失败: %v", err)
|
||||||
|
// 不返回错误,因为配置已经保存成功
|
||||||
|
}
|
||||||
|
|
||||||
// 更新定时任务状态
|
// 更新定时任务状态
|
||||||
scheduler := scheduler.GetGlobalScheduler(
|
scheduler := scheduler.GetGlobalScheduler(
|
||||||
repoManager.HotDramaRepository,
|
repoManager.HotDramaRepository,
|
||||||
|
|||||||
4
main.go
4
main.go
@@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/ctwj/urldb/db/repo"
|
"github.com/ctwj/urldb/db/repo"
|
||||||
"github.com/ctwj/urldb/handlers"
|
"github.com/ctwj/urldb/handlers"
|
||||||
"github.com/ctwj/urldb/middleware"
|
"github.com/ctwj/urldb/middleware"
|
||||||
|
"github.com/ctwj/urldb/scheduler"
|
||||||
"github.com/ctwj/urldb/services"
|
"github.com/ctwj/urldb/services"
|
||||||
"github.com/ctwj/urldb/task"
|
"github.com/ctwj/urldb/task"
|
||||||
"github.com/ctwj/urldb/utils"
|
"github.com/ctwj/urldb/utils"
|
||||||
@@ -121,6 +122,9 @@ func main() {
|
|||||||
// 设置Meilisearch管理器到handlers中
|
// 设置Meilisearch管理器到handlers中
|
||||||
handlers.SetMeilisearchManager(meilisearchManager)
|
handlers.SetMeilisearchManager(meilisearchManager)
|
||||||
|
|
||||||
|
// 设置全局调度器的Meilisearch管理器
|
||||||
|
scheduler.SetGlobalMeilisearchManager(meilisearchManager)
|
||||||
|
|
||||||
// 设置公开API中间件的Repository管理器
|
// 设置公开API中间件的Repository管理器
|
||||||
middleware.SetRepositoryManager(repoManager)
|
middleware.SetRepositoryManager(repoManager)
|
||||||
|
|
||||||
|
|||||||
@@ -218,9 +218,9 @@ func (a *AutoTransferScheduler) processAutoTransfer() {
|
|||||||
|
|
||||||
if shouldSkip {
|
if shouldSkip {
|
||||||
// 标记为违禁词错误
|
// 标记为违禁词错误
|
||||||
resource.ErrorMsg = fmt.Sprintf("存在违禁词: %s", strings.Join(matchedWords, ", "))
|
resource.ErrorMsg = fmt.Sprintf("存在违禁词 (共 %d 个)", len(matchedWords))
|
||||||
forbiddenResources = append(forbiddenResources, resource)
|
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 {
|
} else {
|
||||||
filteredResources = append(filteredResources, resource)
|
filteredResources = append(filteredResources, resource)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/ctwj/urldb/db/repo"
|
"github.com/ctwj/urldb/db/repo"
|
||||||
|
"github.com/ctwj/urldb/services"
|
||||||
"github.com/ctwj/urldb/utils"
|
"github.com/ctwj/urldb/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -16,8 +17,20 @@ type GlobalScheduler struct {
|
|||||||
var (
|
var (
|
||||||
globalScheduler *GlobalScheduler
|
globalScheduler *GlobalScheduler
|
||||||
once sync.Once
|
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 获取全局调度器实例(单例模式)
|
// 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 {
|
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() {
|
once.Do(func() {
|
||||||
|
|||||||
@@ -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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
: '需要手动处理待处理资源'
|
: '需要手动处理待处理资源'
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<n-button
|
<!-- <n-button
|
||||||
@click="refreshConfig"
|
@click="refreshConfig"
|
||||||
:disabled="updatingConfig"
|
:disabled="updatingConfig"
|
||||||
size="small"
|
size="small"
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<template #icon>
|
<template #icon>
|
||||||
<i class="fas fa-sync-alt"></i>
|
<i class="fas fa-sync-alt"></i>
|
||||||
</template>
|
</template>
|
||||||
</n-button>
|
</n-button> -->
|
||||||
<n-button
|
<n-button
|
||||||
@click="toggleAutoProcess"
|
@click="toggleAutoProcess"
|
||||||
:disabled="updatingConfig"
|
:disabled="updatingConfig"
|
||||||
|
|||||||
Reference in New Issue
Block a user