Compare commits

..

9 Commits

Author SHA1 Message Date
jxxghp
fa8de34fc5 更新页面样式 2025-09-08 08:49:00 +08:00
jxxghp
10cfd6be80 更新 service-worker.ts 2025-09-02 13:47:57 +08:00
jxxghp
a390b36e7c 更新 package.json 版本号至 2.7.9 2025-09-02 12:35:41 +08:00
jxxghp
d6b5994e22 添加搜索时间间隔选项 2025-09-02 11:48:24 +08:00
jxxghp
08611a97e7 Merge pull request #384 from Aqr-K/feat-v2.7.8-filelist-case-insensitive 2025-08-31 07:51:18 +08:00
Aqr-K
35bbb44ce3 更新 FileList.vue 2025-08-30 21:08:17 +08:00
Aqr-K
8ff879661a fix(file): Simplify the selectMode button. 2025-08-30 20:56:58 +08:00
Aqr-K
a8f01f099d feat(file): Add an ignoreCase button. 2025-08-30 20:54:17 +08:00
jxxghp
040ab1096b 更新 package.json 版本号至 2.7.8 2025-08-28 08:22:51 +08:00
9 changed files with 67 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "moviepilot",
"version": "2.7.7",
"version": "2.7.9",
"private": true,
"type": "module",
"bin": "dist/service.js",

View File

@@ -1,5 +1,7 @@
.auth-wrapper {
min-block-size: calc(var(--vh, 1vh) * 100 + env(safe-area-inset-top) + env(safe-area-inset-bottom));
min-block-size: 100%;
min-block-size: 100vh;
min-block-size: 100dvh;
}
.auth-footer-mask {

View File

@@ -7,5 +7,7 @@
html {
box-sizing: border-box;
min-height: calc(100% + env(safe-area-inset-top) + env(safe-area-inset-bottom))
min-block-size: 100%;
min-block-size: 100vh;
min-block-size: 100dvh;
}

View File

@@ -82,6 +82,9 @@ const items = ref<FileItem[]>([])
// 过滤条件
const filter = ref('')
// 是否忽略大小写
const ignoreCase = ref(true)
// 重命名弹窗
const renamePopper = ref(false)
@@ -112,12 +115,26 @@ const dropdownItems = ref<{ [key: string]: any }[]>([])
// 进度是否激活
const progressActive = ref(false)
// 通用过滤
const getFilteredItems = (type: 'dir' | 'file') => {
const filterValue = filter.value
if (!filterValue) {
return items.value.filter(item => item.type === type)
}
if (ignoreCase.value) {
const lowerCaseFilter = filterValue.toLowerCase()
return items.value.filter(item => item.type === type && item.name.toLowerCase().includes(lowerCaseFilter))
} else {
return items.value.filter(item => item.type === type && item.name.includes(filterValue))
}
}
// 目录过滤
const dirs = computed(() => items.value.filter(item => item.type === 'dir' && item.name.includes(filter.value)))
const dirs = computed(() => getFilteredItems('dir'))
// 文件过滤
const files = computed(() => items.value.filter(item => item.type === 'file' && item.name.includes(filter.value)))
const files = computed(() => getFilteredItems('file'))
// 是否文件
const isFile = computed(() => inProps.item.type == 'file')
@@ -622,9 +639,11 @@ onMounted(() => {
rounded
/>
<VSpacer v-if="isFile" />
<IconBtn v-if="!isFile" @click="ignoreCase = !ignoreCase">
<VIcon :color="ignoreCase ? 'primary' : 'error'" icon="mdi-format-letter-case" />
</IconBtn>
<IconBtn v-if="!isFile" @click="changeSelectMode">
<VIcon color="primary" v-if="selectMode"> mdi-selection-remove </VIcon>
<VIcon color="primary" v-else>mdi-select</VIcon>
<VIcon color="primary" :icon="selectMode ? 'mdi-selection-remove' : 'mdi-select'" />
</IconBtn>
<IconBtn v-if="isFile" @click="recognize(inProps.item.path || '')">
<VIcon color="primary"> mdi-text-recognition </VIcon>

View File

@@ -1669,7 +1669,11 @@ export default {
bestVersionRuleGroup: 'Version Upgrade Priority Rule Group',
bestVersionRuleGroupHint: 'Filter version upgrade subscriptions based on selected filter rule groups',
timedSearch: 'Subscription Scheduled Search',
timedSearchHint: 'Search all sites every 24 hours to supplement resources that may be missed by subscription',
timedSearchHint:
'Search all sites at specified intervals to supplement resources that may be missed by subscription',
searchInterval: 'Subscription Search Interval',
searchIntervalHint:
'Set the time interval for subscription search, only effective when subscription scheduled search is enabled',
checkLocalMedia: 'Check File System Resources',
checkLocalMediaHint:
'Scan the storage directory for existing resource files to avoid duplicate downloads; regardless of whether it is enabled, the media server will be checked',
@@ -1685,6 +1689,8 @@ export default {
hour1: '1 hour',
hour12: '12 hours',
day1: '1 day',
day3: '3 days',
week1: '1 week',
},
saveSuccess: 'Subscription sites saved successfully',
saveFailed: 'Failed to save subscription sites!',

View File

@@ -1648,7 +1648,9 @@ export default {
bestVersionRuleGroup: '洗版优先级规则组',
bestVersionRuleGroupHint: '按选定的过滤规则组对洗版订阅进行过滤',
timedSearch: '订阅定时搜索',
timedSearchHint: '每隔24小时全站搜索,以补全订阅可能漏掉的资源',
timedSearchHint: '每隔指定时间全站搜索,以补全订阅可能漏掉的资源',
searchInterval: '订阅搜索时间间隔',
searchIntervalHint: '设置订阅搜索的时间间隔,仅在开启订阅定时搜索时生效',
checkLocalMedia: '检查文件系统资源',
checkLocalMediaHint: '扫描存储目录中是否已存在相应资源文件,以避免重复下载;不管是否开启都会检查媒体服务器',
modes: {
@@ -1663,6 +1665,8 @@ export default {
hour1: '1小时',
hour12: '12小时',
day1: '1天',
day3: '3天',
week1: '一周',
},
saveSuccess: '订阅站点保存成功',
saveFailed: '订阅站点保存失败!',

View File

@@ -1646,7 +1646,9 @@ export default {
bestVersionRuleGroup: '洗版優先級規則組',
bestVersionRuleGroupHint: '按選定的過濾規則組對洗版訂閱進行過濾',
timedSearch: '訂閱定時搜索',
timedSearchHint: '每隔24小時全站搜索,以補全訂閱可能漏掉的資源',
timedSearchHint: '每隔指定時間全站搜索,以補全訂閱可能漏掉的資源',
searchInterval: '訂閱搜索時間間隔',
searchIntervalHint: '設置訂閱搜索的時間間隔,僅在開啟訂閱定時搜索時生效',
checkLocalMedia: '檢查文件系統資源',
checkLocalMediaHint: '掃描存儲目錄中是否已存在相應資源文件,以避免重複下載;不管是否開啟都會檢查媒體伺服器',
modes: {
@@ -1661,6 +1663,8 @@ export default {
hour1: '1小時',
hour12: '12小時',
day1: '1天',
day3: '3天',
week1: '一週',
},
saveSuccess: '訂閱站點保存成功',
saveFailed: '訂閱站點保存失敗!',

View File

@@ -6,7 +6,7 @@ declare let self: ServiceWorkerGlobalScope & {
}
// 缓存版本控制
const CACHE_VERSION = 'v1.1.0'
const CACHE_VERSION = 'v1.1.1'
const CACHE_NAMES = {
appShell: `app-shell-${CACHE_VERSION}`,
static: `static-resources-${CACHE_VERSION}`,

View File

@@ -54,12 +54,20 @@ const rssIntervalItems = [
{ title: t('setting.subscribe.intervals.day1'), value: 1440 },
]
// 订阅搜索时间间隔选择项(小时)
const subscribeSearchIntervalItems = [
{ title: t('setting.subscribe.intervals.day1'), value: 24 },
{ title: t('setting.subscribe.intervals.day3'), value: 72 },
{ title: t('setting.subscribe.intervals.week1'), value: 168 },
]
// 系统设置项
const SystemSettings = ref<any>({
// 基础设置
Basic: {
SUBSCRIBE_MODE: 'auto',
SUBSCRIBE_SEARCH: false,
SUBSCRIBE_SEARCH_INTERVAL: 24,
SUBSCRIBE_RSS_INTERVAL: 30,
LOCAL_EXISTS_SEARCH: false,
},
@@ -252,6 +260,16 @@ onMounted(() => {
persistent-hint
/>
</VCol>
<VCol v-if="SystemSettings.Basic.SUBSCRIBE_SEARCH" cols="12" md="6">
<VSelect
v-model="SystemSettings.Basic.SUBSCRIBE_SEARCH_INTERVAL"
:items="subscribeSearchIntervalItems"
:label="t('setting.subscribe.searchInterval')"
:hint="t('setting.subscribe.searchIntervalHint')"
persistent-hint
prepend-inner-icon="mdi-timer"
/>
</VCol>
<VCol cols="12" md="6">
<VSwitch
v-model="SystemSettings.Basic.LOCAL_EXISTS_SEARCH"