mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-05-11 01:50:10 +08:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa8de34fc5 | ||
|
|
10cfd6be80 | ||
|
|
a390b36e7c | ||
|
|
d6b5994e22 | ||
|
|
08611a97e7 | ||
|
|
35bbb44ce3 | ||
|
|
8ff879661a | ||
|
|
a8f01f099d | ||
|
|
040ab1096b |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "moviepilot",
|
||||
"version": "2.7.7",
|
||||
"version": "2.7.9",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"bin": "dist/service.js",
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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!',
|
||||
|
||||
@@ -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: '订阅站点保存失败!',
|
||||
|
||||
@@ -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: '訂閱站點保存失敗!',
|
||||
|
||||
@@ -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}`,
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user