mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-07-06 06:51:29 +08:00
feat 优先级规则分享&导入
This commit is contained in:
@@ -227,6 +227,48 @@ async function saveDefaultFilter() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 分享规则
|
||||||
|
function shareRules() {
|
||||||
|
// 有值才处理
|
||||||
|
if (filterCards.value.length === 0)
|
||||||
|
return
|
||||||
|
|
||||||
|
// 将卡片规则接装为字符串
|
||||||
|
const value = filterCards.value
|
||||||
|
.filter(card => card.rules.length > 0)
|
||||||
|
.map(card => card.rules.join('&'))
|
||||||
|
.join('>')
|
||||||
|
|
||||||
|
// 复制到剪切板
|
||||||
|
navigator.clipboard.writeText(value)
|
||||||
|
.then(() => {
|
||||||
|
$toast.success('优先级规则已复制到剪切板')
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
$toast.error('优先级规则复制失败!')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导入规则
|
||||||
|
function importRules() {
|
||||||
|
// 从剪切板读取
|
||||||
|
navigator.clipboard.readText()
|
||||||
|
.then((value) => {
|
||||||
|
// 分割成数组
|
||||||
|
const groups = value.split('>')
|
||||||
|
// 生成规则卡片
|
||||||
|
filterCards.value = groups?.map((group: string, index: number) => {
|
||||||
|
return {
|
||||||
|
pri: (index + 1).toString(),
|
||||||
|
rules: group.split('&'),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
$toast.error('从剪切版读取规则失败!')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
queryCustomFilters()
|
queryCustomFilters()
|
||||||
querySites()
|
querySites()
|
||||||
@@ -264,6 +306,36 @@ onMounted(() => {
|
|||||||
</VCol>
|
</VCol>
|
||||||
<VCol cols="12">
|
<VCol cols="12">
|
||||||
<VCard title="搜索优先级">
|
<VCard title="搜索优先级">
|
||||||
|
<template #append>
|
||||||
|
<IconBtn>
|
||||||
|
<VIcon icon="mdi-dots-vertical" />
|
||||||
|
<VMenu
|
||||||
|
activator="parent"
|
||||||
|
close-on-content-click
|
||||||
|
>
|
||||||
|
<VList>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="shareRules"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-share" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>分享规则</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="importRules"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-import" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>从剪切板导入</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
</VList>
|
||||||
|
</VMenu>
|
||||||
|
</IconBtn>
|
||||||
|
</template>
|
||||||
<VCardSubtitle> 设置在搜索时默认使用的优先级排序,未在优先级中的资源将不在搜索结果中显示。 </VCardSubtitle>
|
<VCardSubtitle> 设置在搜索时默认使用的优先级排序,未在优先级中的资源将不在搜索结果中显示。 </VCardSubtitle>
|
||||||
<VCardItem>
|
<VCardItem>
|
||||||
<div class="grid gap-3 grid-filterrule-card">
|
<div class="grid gap-3 grid-filterrule-card">
|
||||||
|
|||||||
@@ -244,6 +244,58 @@ async function saveDefaultFilter() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 分享规则
|
||||||
|
function shareRules(ruleType: string) {
|
||||||
|
let filterCards: Ref<FilterCard[]>
|
||||||
|
if (ruleType === 'SubscribeFilterRules')
|
||||||
|
filterCards = subscribeFilterCards
|
||||||
|
else
|
||||||
|
filterCards = bestVersionFilterCards
|
||||||
|
// 有值才处理
|
||||||
|
if (filterCards.value.length === 0)
|
||||||
|
return
|
||||||
|
|
||||||
|
// 将卡片规则接装为字符串
|
||||||
|
const value = filterCards.value
|
||||||
|
.filter(card => card.rules.length > 0)
|
||||||
|
.map(card => card.rules.join('&'))
|
||||||
|
.join('>')
|
||||||
|
|
||||||
|
// 复制到剪切板
|
||||||
|
navigator.clipboard.writeText(value)
|
||||||
|
.then(() => {
|
||||||
|
$toast.success('优先级规则已复制到剪切板')
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
$toast.error('优先级规则复制失败!')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导入规则
|
||||||
|
function importRules(ruleType: string) {
|
||||||
|
let filterCards: Ref<FilterCard[]>
|
||||||
|
if (ruleType === 'SubscribeFilterRules')
|
||||||
|
filterCards = subscribeFilterCards
|
||||||
|
else
|
||||||
|
filterCards = bestVersionFilterCards
|
||||||
|
// 从剪切板读取
|
||||||
|
navigator.clipboard.readText()
|
||||||
|
.then((value) => {
|
||||||
|
// 分割成数组
|
||||||
|
const groups = value.split('>')
|
||||||
|
// 生成规则卡片
|
||||||
|
filterCards.value = groups?.map((group: string, index: number) => {
|
||||||
|
return {
|
||||||
|
pri: (index + 1).toString(),
|
||||||
|
rules: group.split('&'),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
$toast.error('从剪切版读取规则失败!')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
querySites()
|
querySites()
|
||||||
queryCustomFilters('SubscribeFilterRules')
|
queryCustomFilters('SubscribeFilterRules')
|
||||||
@@ -282,6 +334,36 @@ onMounted(() => {
|
|||||||
</VCol>
|
</VCol>
|
||||||
<VCol cols="12">
|
<VCol cols="12">
|
||||||
<VCard title="订阅优先级">
|
<VCard title="订阅优先级">
|
||||||
|
<template #append>
|
||||||
|
<IconBtn>
|
||||||
|
<VIcon icon="mdi-dots-vertical" />
|
||||||
|
<VMenu
|
||||||
|
activator="parent"
|
||||||
|
close-on-content-click
|
||||||
|
>
|
||||||
|
<VList>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="shareRules('SubscribeFilterRules')"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-share" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>分享规则</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="importRules('SubscribeFilterRules')"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-import" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>从剪切板导入</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
</VList>
|
||||||
|
</VMenu>
|
||||||
|
</IconBtn>
|
||||||
|
</template>
|
||||||
<VCardSubtitle> 设置在正常订阅时默认使用的优先级,未在优先级中的资源将不会自动下载。 </VCardSubtitle>
|
<VCardSubtitle> 设置在正常订阅时默认使用的优先级,未在优先级中的资源将不会自动下载。 </VCardSubtitle>
|
||||||
<VCardItem>
|
<VCardItem>
|
||||||
<div class="grid gap-3 grid-filterrule-card">
|
<div class="grid gap-3 grid-filterrule-card">
|
||||||
@@ -318,6 +400,36 @@ onMounted(() => {
|
|||||||
</VCol>
|
</VCol>
|
||||||
<VCol cols="12">
|
<VCol cols="12">
|
||||||
<VCard title="洗版优先级">
|
<VCard title="洗版优先级">
|
||||||
|
<template #append>
|
||||||
|
<IconBtn>
|
||||||
|
<VIcon icon="mdi-dots-vertical" />
|
||||||
|
<VMenu
|
||||||
|
activator="parent"
|
||||||
|
close-on-content-click
|
||||||
|
>
|
||||||
|
<VList>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="shareRules('BestVersionFilterRules')"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-share" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>分享规则</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
<VListItem
|
||||||
|
variant="plain"
|
||||||
|
@click="importRules('BestVersionFilterRules')"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon icon="mdi-import" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle>从剪切板导入</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
|
</VList>
|
||||||
|
</VMenu>
|
||||||
|
</IconBtn>
|
||||||
|
</template>
|
||||||
<VCardSubtitle> 设置在订阅洗版时使用的优先级,匹配优先级1时洗版完成。 </VCardSubtitle>
|
<VCardSubtitle> 设置在订阅洗版时使用的优先级,匹配优先级1时洗版完成。 </VCardSubtitle>
|
||||||
<VCardItem>
|
<VCardItem>
|
||||||
<div class="grid gap-3 grid-filterrule-card">
|
<div class="grid gap-3 grid-filterrule-card">
|
||||||
|
|||||||
Reference in New Issue
Block a user