mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-07-10 23:13:20 +08:00
152
src/api/types.ts
152
src/api/types.ts
@@ -1305,3 +1305,155 @@ export interface Workflow {
|
|||||||
// 最后执行时间
|
// 最后执行时间
|
||||||
last_time?: string
|
last_time?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 种子缓存项
|
||||||
|
export interface TorrentCacheItem {
|
||||||
|
// 种子hash(用于操作标识)
|
||||||
|
hash: string
|
||||||
|
// 站点域名
|
||||||
|
domain: string
|
||||||
|
// 种子标题
|
||||||
|
title: string
|
||||||
|
// 种子描述
|
||||||
|
description?: string
|
||||||
|
// 种子大小
|
||||||
|
size: number
|
||||||
|
// 发布时间
|
||||||
|
pubdate?: string
|
||||||
|
// 站点名称
|
||||||
|
site_name?: string
|
||||||
|
// 识别的媒体名称
|
||||||
|
media_name?: string
|
||||||
|
// 识别的媒体年份
|
||||||
|
media_year?: string
|
||||||
|
// 识别的媒体类型
|
||||||
|
media_type?: string
|
||||||
|
// 季集信息
|
||||||
|
season_episode?: string
|
||||||
|
// 资源信息
|
||||||
|
resource_term?: string
|
||||||
|
// 种子链接
|
||||||
|
enclosure?: string
|
||||||
|
// 详情页面
|
||||||
|
page_url?: string
|
||||||
|
// 海报图片
|
||||||
|
poster_path?: string
|
||||||
|
// 背景图片
|
||||||
|
backdrop_path?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 种子缓存数据
|
||||||
|
export interface TorrentCacheData {
|
||||||
|
// 缓存数量
|
||||||
|
count: number
|
||||||
|
// 站点数量
|
||||||
|
sites: number
|
||||||
|
// 缓存数据
|
||||||
|
data: TorrentCacheItem[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 种子缓存响应
|
||||||
|
export interface TorrentCacheResponse {
|
||||||
|
// Spider缓存
|
||||||
|
spider: TorrentCacheData
|
||||||
|
// RSS缓存
|
||||||
|
rss: TorrentCacheData
|
||||||
|
}
|
||||||
|
|
||||||
|
// 站点缓存统计
|
||||||
|
export interface SiteCacheStats {
|
||||||
|
// 站点域名
|
||||||
|
domain: string
|
||||||
|
// 缓存数量
|
||||||
|
count: number
|
||||||
|
// 最新发布时间
|
||||||
|
latest_date: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存配置
|
||||||
|
export interface CacheConfig {
|
||||||
|
// 缓存限制数量
|
||||||
|
cache_limit: number
|
||||||
|
// 刷新限制数量
|
||||||
|
refresh_limit: number
|
||||||
|
// 当前模式
|
||||||
|
current_mode: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存统计数据
|
||||||
|
export interface CacheStatsData {
|
||||||
|
// 总数量
|
||||||
|
total_count: number
|
||||||
|
// 站点数量
|
||||||
|
sites_count: number
|
||||||
|
// 站点统计
|
||||||
|
sites: SiteCacheStats[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 种子缓存统计响应
|
||||||
|
export interface TorrentCacheStatsResponse {
|
||||||
|
// 配置信息
|
||||||
|
config: CacheConfig
|
||||||
|
// Spider统计
|
||||||
|
spider: CacheStatsData
|
||||||
|
// RSS统计
|
||||||
|
rss: CacheStatsData
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片缓存统计
|
||||||
|
export interface ImageCacheStats {
|
||||||
|
// 总文件数
|
||||||
|
total_files: number
|
||||||
|
// 总大小(字节)
|
||||||
|
total_size: number
|
||||||
|
// 是否启用缓存
|
||||||
|
cache_enabled: boolean
|
||||||
|
// 缓存路径
|
||||||
|
cache_path?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片缓存统计响应
|
||||||
|
export interface ImageCacheStatsResponse {
|
||||||
|
success: boolean
|
||||||
|
data: ImageCacheStats
|
||||||
|
message?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片缓存项
|
||||||
|
export interface ImageCacheItem {
|
||||||
|
// 相对路径
|
||||||
|
path: string
|
||||||
|
// 文件名
|
||||||
|
name: string
|
||||||
|
// 文件大小
|
||||||
|
size: number
|
||||||
|
// 修改时间
|
||||||
|
modified_time: string
|
||||||
|
// 分类
|
||||||
|
category: string
|
||||||
|
// 访问URL
|
||||||
|
url: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片缓存详细数据
|
||||||
|
export interface ImageCacheData {
|
||||||
|
// 总数量
|
||||||
|
total: number
|
||||||
|
// 当前页
|
||||||
|
page: number
|
||||||
|
// 每页大小
|
||||||
|
size: number
|
||||||
|
// 总页数
|
||||||
|
pages: number
|
||||||
|
// 图片列表
|
||||||
|
items: ImageCacheItem[]
|
||||||
|
// 分类统计
|
||||||
|
categories: Record<string, number>
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片缓存详细数据响应
|
||||||
|
export interface ImageCacheDataResponse {
|
||||||
|
success: boolean
|
||||||
|
data: ImageCacheData
|
||||||
|
message?: string
|
||||||
|
}
|
||||||
|
|||||||
@@ -202,6 +202,10 @@ export default {
|
|||||||
title: 'Services',
|
title: 'Services',
|
||||||
description: 'Scheduled jobs',
|
description: 'Scheduled jobs',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
title: 'Cache',
|
||||||
|
description: 'Torrent cache, media recognition data cache, image file cache management',
|
||||||
|
},
|
||||||
notification: {
|
notification: {
|
||||||
title: 'Notifications',
|
title: 'Notifications',
|
||||||
description: 'Notification channels (WeChat, Telegram, Slack, SynologyChat, VoceChat, WebPush), message scope',
|
description: 'Notification channels (WeChat, Telegram, Slack, SynologyChat, VoceChat, WebPush), message scope',
|
||||||
@@ -2455,4 +2459,40 @@ export default {
|
|||||||
customBackgroundImageHint: 'Supports web image URLs, leave blank for gradient background',
|
customBackgroundImageHint: 'Supports web image URLs, leave blank for gradient background',
|
||||||
pluginCount: '{count} Plugins',
|
pluginCount: '{count} Plugins',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
spiderCache: 'Spider Cache',
|
||||||
|
rssCache: 'RSS Cache',
|
||||||
|
cacheConfig: 'Cache Config',
|
||||||
|
torrents: ' torrents',
|
||||||
|
sites: ' sites',
|
||||||
|
limit: 'Limit',
|
||||||
|
perSite: ' per site',
|
||||||
|
mode: 'Mode',
|
||||||
|
refreshCache: 'Refresh Cache',
|
||||||
|
clearCache: 'Clear Cache',
|
||||||
|
viewCacheData: 'View Cache Data',
|
||||||
|
hideCacheData: 'Hide Cache Data',
|
||||||
|
spiderCacheStats: 'Spider Cache Stats',
|
||||||
|
rssCacheStats: 'RSS Cache Stats',
|
||||||
|
cacheDataDetails: 'Cache Data Details',
|
||||||
|
searchTorrents: 'Search Torrents',
|
||||||
|
siteDomain: 'Site Domain',
|
||||||
|
cacheCount: 'Cache Count',
|
||||||
|
latestRelease: 'Latest Release',
|
||||||
|
torrentTitle: 'Torrent Title',
|
||||||
|
site: 'Site',
|
||||||
|
size: 'Size',
|
||||||
|
releaseTime: 'Release Time',
|
||||||
|
recognitionInfo: 'Recognition Info',
|
||||||
|
resourceInfo: 'Resource Info',
|
||||||
|
actions: 'Actions',
|
||||||
|
noData: 'No Data',
|
||||||
|
unknown: 'Unknown',
|
||||||
|
unrecognized: 'Unrecognized',
|
||||||
|
confirmClearCache: 'Are you sure you want to clear all torrent cache? This operation cannot be undone.',
|
||||||
|
fetchStatsError: 'Failed to fetch cache statistics',
|
||||||
|
fetchDataError: 'Failed to fetch cache data',
|
||||||
|
refreshError: 'Failed to refresh cache',
|
||||||
|
clearError: 'Failed to clear cache'
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,6 +202,10 @@ export default {
|
|||||||
title: '服务',
|
title: '服务',
|
||||||
description: '定时作业',
|
description: '定时作业',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
title: '缓存',
|
||||||
|
description: '种子缓存、图片文件缓存管理',
|
||||||
|
},
|
||||||
notification: {
|
notification: {
|
||||||
title: '通知',
|
title: '通知',
|
||||||
description: '通知渠道(微信、Telegram、Slack、SynologyChat、VoceChat、WebPush)、消息发送范围',
|
description: '通知渠道(微信、Telegram、Slack、SynologyChat、VoceChat、WebPush)、消息发送范围',
|
||||||
@@ -1366,6 +1370,10 @@ export default {
|
|||||||
settingsSaveSuccess: '订阅基础设置保存成功',
|
settingsSaveSuccess: '订阅基础设置保存成功',
|
||||||
settingsSaveFailed: '订阅基础设置保存失败!',
|
settingsSaveFailed: '订阅基础设置保存失败!',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
title: '缓存',
|
||||||
|
description: '种子缓存、图片文件缓存管理',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
dialog: {
|
dialog: {
|
||||||
progress: {
|
progress: {
|
||||||
@@ -2427,4 +2435,93 @@ export default {
|
|||||||
customBackgroundImageHint: '支持网络图片URL,留空则使用渐变背景',
|
customBackgroundImageHint: '支持网络图片URL,留空则使用渐变背景',
|
||||||
pluginCount: '{count} 个插件',
|
pluginCount: '{count} 个插件',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
spiderCache: '爬虫缓存',
|
||||||
|
rssCache: 'RSS缓存',
|
||||||
|
cacheConfig: '缓存配置',
|
||||||
|
torrents: ' 个种子',
|
||||||
|
sites: ' 个站点',
|
||||||
|
limit: '限制',
|
||||||
|
perSite: ' 条/站点',
|
||||||
|
mode: '模式',
|
||||||
|
refreshCache: '刷新缓存',
|
||||||
|
clearCache: '清理缓存',
|
||||||
|
viewCacheData: '查看缓存数据',
|
||||||
|
hideCacheData: '隐藏缓存数据',
|
||||||
|
confirmClearCache: '确定要清理所有缓存吗?此操作不可撤销。',
|
||||||
|
spiderCacheStats: '爬虫缓存统计',
|
||||||
|
rssCacheStats: 'RSS缓存统计',
|
||||||
|
siteDomain: '站点域名',
|
||||||
|
cacheCount: '缓存数量',
|
||||||
|
latestRelease: '最新发布',
|
||||||
|
noData: '无数据',
|
||||||
|
cacheDataDetails: '缓存数据详情',
|
||||||
|
searchTorrents: '搜索种子',
|
||||||
|
torrentTitle: '种子标题',
|
||||||
|
site: '站点',
|
||||||
|
size: '大小',
|
||||||
|
releaseTime: '发布时间',
|
||||||
|
recognitionInfo: '识别信息',
|
||||||
|
resourceInfo: '资源信息',
|
||||||
|
actions: '操作',
|
||||||
|
unknown: '未知',
|
||||||
|
unrecognized: '未识别',
|
||||||
|
refreshError: '刷新缓存失败',
|
||||||
|
clearError: '清理缓存失败',
|
||||||
|
fetchStatsError: '获取缓存统计失败',
|
||||||
|
fetchDataError: '获取缓存数据失败',
|
||||||
|
deleteSelected: '删除选中 ({count})',
|
||||||
|
reidentifySelected: '重新识别 ({count})',
|
||||||
|
confirmDeleteSelected: '确定要删除选中的 {count} 个种子吗?',
|
||||||
|
confirmDeleteSingle: '确定要删除这个种子吗?',
|
||||||
|
reidentify: '重新识别',
|
||||||
|
delete: '删除',
|
||||||
|
reidentifyTorrents: '重新识别种子',
|
||||||
|
tmdbId: 'TMDB ID',
|
||||||
|
tmdbIdHint: '可选,手动指定TMDB媒体ID',
|
||||||
|
doubanId: '豆瓣ID',
|
||||||
|
doubanIdHint: '可选,手动指定豆瓣媒体ID',
|
||||||
|
reidentifyHint: '如果不填写ID,将自动重新识别。填写ID可以手动指定媒体信息。',
|
||||||
|
executeReidentify: '执行识别',
|
||||||
|
torrentCache: '种子缓存',
|
||||||
|
imageCache: '图片缓存',
|
||||||
|
imageFiles: '图片文件',
|
||||||
|
files: ' 个文件',
|
||||||
|
cacheStatus: '缓存状态',
|
||||||
|
enabled: '已启用',
|
||||||
|
disabled: '已禁用',
|
||||||
|
globalImageCache: '全局图片缓存',
|
||||||
|
cachePath: '缓存路径',
|
||||||
|
notSet: '未设置',
|
||||||
|
cleanExpiredImages: '清理过期图片',
|
||||||
|
clearAllImages: '清理所有图片',
|
||||||
|
expiredDays: '过期天数',
|
||||||
|
expiredDaysHint: '清理多少天前的图片文件',
|
||||||
|
confirmCleanExpiredImages: '确定要清理过期图片吗?',
|
||||||
|
confirmClearAllImages: '确定要清理所有图片缓存吗?此操作不可撤销。',
|
||||||
|
cleanExpiredImagesError: '清理过期图片失败',
|
||||||
|
clearAllImagesError: '清理所有图片失败',
|
||||||
|
fetchImageCacheStatsError: '获取图片缓存统计失败',
|
||||||
|
selectSites: '选择站点',
|
||||||
|
siteSelectHint: '选择要显示的站点,留空显示所有站点',
|
||||||
|
others: '其他',
|
||||||
|
poster: '海报',
|
||||||
|
title: '缓存管理',
|
||||||
|
torrentCacheDesc: '管理爬虫和RSS缓存的种子数据,支持查看、删除和重新识别',
|
||||||
|
imageCacheDesc: '管理系统缓存的图片文件,包括海报、背景图等',
|
||||||
|
totalSites: '站点总数',
|
||||||
|
cacheLimit: '缓存限制',
|
||||||
|
totalFiles: '文件总数',
|
||||||
|
totalSize: '总大小',
|
||||||
|
viewImageData: '查看图片数据',
|
||||||
|
hideImageData: '隐藏图片数据',
|
||||||
|
selectedCount: '已选择 {count} 个种子',
|
||||||
|
openPage: '打开页面',
|
||||||
|
imageCacheCategories: '图片缓存分类',
|
||||||
|
images: ' 张图片',
|
||||||
|
imageGallery: '图片画廊',
|
||||||
|
autoMode: '自动',
|
||||||
|
spiderMode: '爬虫',
|
||||||
|
rssMode: 'RSS',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,6 +203,10 @@ export default {
|
|||||||
title: '服務',
|
title: '服務',
|
||||||
description: '定時作業',
|
description: '定時作業',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
title: '緩存',
|
||||||
|
description: '種子緩存、識別媒體數據緩存、圖片文件緩存管理',
|
||||||
|
},
|
||||||
notification: {
|
notification: {
|
||||||
title: '通知',
|
title: '通知',
|
||||||
description: '通知渠道(微信、Telegram、Slack、SynologyChat、VoceChat、WebPush)、消息發送範圍',
|
description: '通知渠道(微信、Telegram、Slack、SynologyChat、VoceChat、WebPush)、消息發送範圍',
|
||||||
@@ -2428,4 +2432,79 @@ export default {
|
|||||||
customBackgroundImageHint: '支援網路圖片URL,留空則使用漸變背景',
|
customBackgroundImageHint: '支援網路圖片URL,留空則使用漸變背景',
|
||||||
pluginCount: '{count} 個插件',
|
pluginCount: '{count} 個插件',
|
||||||
},
|
},
|
||||||
|
cache: {
|
||||||
|
spiderCache: '爬蟲快取',
|
||||||
|
rssCache: 'RSS快取',
|
||||||
|
cacheConfig: '快取配置',
|
||||||
|
torrents: ' 個種子',
|
||||||
|
sites: ' 個站點',
|
||||||
|
limit: '限制',
|
||||||
|
perSite: ' 條/站點',
|
||||||
|
mode: '模式',
|
||||||
|
refreshCache: '刷新快取',
|
||||||
|
clearCache: '清理快取',
|
||||||
|
viewCacheData: '查看快取數據',
|
||||||
|
hideCacheData: '隱藏快取數據',
|
||||||
|
confirmClearCache: '確定要清理所有快取嗎?此操作不可撤銷。',
|
||||||
|
spiderCacheStats: '爬蟲快取統計',
|
||||||
|
rssCacheStats: 'RSS快取統計',
|
||||||
|
siteDomain: '站點域名',
|
||||||
|
cacheCount: '快取數量',
|
||||||
|
latestRelease: '最新發布',
|
||||||
|
noData: '無數據',
|
||||||
|
cacheDataDetails: '快取數據詳情',
|
||||||
|
searchTorrents: '搜索種子',
|
||||||
|
torrentTitle: '種子標題',
|
||||||
|
site: '站點',
|
||||||
|
size: '大小',
|
||||||
|
releaseTime: '發布時間',
|
||||||
|
recognitionInfo: '識別信息',
|
||||||
|
resourceInfo: '資源信息',
|
||||||
|
actions: '操作',
|
||||||
|
unknown: '未知',
|
||||||
|
unrecognized: '未識別',
|
||||||
|
refreshError: '刷新快取失敗',
|
||||||
|
clearError: '清理快取失敗',
|
||||||
|
fetchStatsError: '獲取快取統計失敗',
|
||||||
|
fetchDataError: '獲取快取數據失敗',
|
||||||
|
deleteSelected: '刪除選中 ({count})',
|
||||||
|
reidentifySelected: '重新識別 ({count})',
|
||||||
|
confirmDeleteSelected: '確定要刪除選中的 {count} 個種子嗎?',
|
||||||
|
confirmDeleteSingle: '確定要刪除這個種子嗎?',
|
||||||
|
reidentify: '重新識別',
|
||||||
|
delete: '刪除',
|
||||||
|
reidentifyTorrents: '重新識別種子',
|
||||||
|
tmdbId: 'TMDB ID',
|
||||||
|
tmdbIdHint: '可選,手動指定TMDB媒體ID',
|
||||||
|
doubanId: '豆瓣ID',
|
||||||
|
doubanIdHint: '可選,手動指定豆瓣媒體ID',
|
||||||
|
reidentifyHint: '如果不填寫ID,將自動重新識別。填寫ID可以手動指定媒體信息。',
|
||||||
|
executeReidentify: '執行識別',
|
||||||
|
// 新增翻譯
|
||||||
|
torrentCache: '種子快取',
|
||||||
|
imageCache: '圖片快取',
|
||||||
|
mediaCache: '媒體數據快取',
|
||||||
|
imageFiles: '圖片文件',
|
||||||
|
files: ' 個文件',
|
||||||
|
cacheStatus: '快取狀態',
|
||||||
|
enabled: '已啟用',
|
||||||
|
disabled: '已禁用',
|
||||||
|
globalImageCache: '全局圖片快取',
|
||||||
|
cachePath: '快取路徑',
|
||||||
|
notSet: '未設置',
|
||||||
|
cleanExpiredImages: '清理過期圖片',
|
||||||
|
clearAllImages: '清理所有圖片',
|
||||||
|
expiredDays: '過期天數',
|
||||||
|
expiredDaysHint: '清理多少天前的圖片文件',
|
||||||
|
confirmCleanExpiredImages: '確定要清理過期圖片嗎?',
|
||||||
|
confirmClearAllImages: '確定要清理所有圖片快取嗎?此操作不可撤銷。',
|
||||||
|
cleanExpiredImagesError: '清理過期圖片失敗',
|
||||||
|
clearAllImagesError: '清理所有圖片失敗',
|
||||||
|
fetchImageCacheStatsError: '獲取圖片快取統計失敗',
|
||||||
|
mediaCacheTitle: '媒體數據快取',
|
||||||
|
mediaCacheDescription: '媒體數據快取功能正在開發中,敬請期待。',
|
||||||
|
selectSites: '選擇站點',
|
||||||
|
siteSelectHint: '選擇要顯示的站點,留空顯示所有站點',
|
||||||
|
others: '其他'
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import AccountSettingSystem from '@/views/setting/AccountSettingSystem.vue'
|
|||||||
import AccountSettingScheduler from '@/views/setting/AccountSettingScheduler.vue'
|
import AccountSettingScheduler from '@/views/setting/AccountSettingScheduler.vue'
|
||||||
import AccountSettingDirectory from '@/views/setting/AccountSettingDirectory.vue'
|
import AccountSettingDirectory from '@/views/setting/AccountSettingDirectory.vue'
|
||||||
import AccountSettingRule from '@/views/setting/AccountSettingRule.vue'
|
import AccountSettingRule from '@/views/setting/AccountSettingRule.vue'
|
||||||
|
import AccountSettingCache from '@/views/setting/AccountSettingCache.vue'
|
||||||
import { getSettingTabs } from '@/router/i18n-menu'
|
import { getSettingTabs } from '@/router/i18n-menu'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
@@ -86,6 +87,15 @@ const settingTabs = computed(() => getSettingTabs())
|
|||||||
</transition>
|
</transition>
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
|
|
||||||
|
<!-- 缓存 -->
|
||||||
|
<VWindowItem value="cache">
|
||||||
|
<transition name="fade-slide" appear>
|
||||||
|
<div>
|
||||||
|
<AccountSettingCache />
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</VWindowItem>
|
||||||
|
|
||||||
<!-- 通知 -->
|
<!-- 通知 -->
|
||||||
<VWindowItem value="notification">
|
<VWindowItem value="notification">
|
||||||
<transition name="fade-slide" appear>
|
<transition name="fade-slide" appear>
|
||||||
|
|||||||
@@ -170,6 +170,12 @@ export function getSettingTabs() {
|
|||||||
tab: 'scheduler',
|
tab: 'scheduler',
|
||||||
description: t('settingTabs.scheduler.description'),
|
description: t('settingTabs.scheduler.description'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: t('settingTabs.cache.title'),
|
||||||
|
icon: 'mdi-database',
|
||||||
|
tab: 'cache',
|
||||||
|
description: t('settingTabs.cache.description'),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: t('settingTabs.notification.title'),
|
title: t('settingTabs.notification.title'),
|
||||||
icon: 'mdi-bell',
|
icon: 'mdi-bell',
|
||||||
|
|||||||
1223
src/views/setting/AccountSettingCache.vue
Normal file
1223
src/views/setting/AccountSettingCache.vue
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user