From 37565bf8e4c9dcb5f615d60dddec7df1cf80e95f Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 30 Nov 2023 11:59:26 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E4=BC=98=E5=85=88=E7=BA=A7=E8=A7=84?= =?UTF-8?q?=E5=88=99=E5=88=86=E4=BA=AB&=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/setting/AccountSettingSearch.vue | 72 +++++++++++ src/views/setting/AccountSettingSubscribe.vue | 112 ++++++++++++++++++ 2 files changed, 184 insertions(+) diff --git a/src/views/setting/AccountSettingSearch.vue b/src/views/setting/AccountSettingSearch.vue index f5041d9a..6b8c356f 100644 --- a/src/views/setting/AccountSettingSearch.vue +++ b/src/views/setting/AccountSettingSearch.vue @@ -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(() => { queryCustomFilters() querySites() @@ -264,6 +306,36 @@ onMounted(() => { + 设置在搜索时默认使用的优先级排序,未在优先级中的资源将不在搜索结果中显示。
diff --git a/src/views/setting/AccountSettingSubscribe.vue b/src/views/setting/AccountSettingSubscribe.vue index f518e2d8..7277e2f1 100644 --- a/src/views/setting/AccountSettingSubscribe.vue +++ b/src/views/setting/AccountSettingSubscribe.vue @@ -244,6 +244,58 @@ async function saveDefaultFilter() { } } +// 分享规则 +function shareRules(ruleType: string) { + let filterCards: Ref + 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 + 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(() => { querySites() queryCustomFilters('SubscribeFilterRules') @@ -282,6 +334,36 @@ onMounted(() => { + 设置在正常订阅时默认使用的优先级,未在优先级中的资源将不会自动下载。
@@ -318,6 +400,36 @@ onMounted(() => { + 设置在订阅洗版时使用的优先级,匹配优先级1时洗版完成。