mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 23:56:42 +08:00
feat: add media recognition sharing setting and update system settings UI layout
This commit is contained in:
@@ -1504,6 +1504,9 @@ export default {
|
|||||||
recognizePluginFirst: 'Prioritize Plugin Recognition',
|
recognizePluginFirst: 'Prioritize Plugin Recognition',
|
||||||
recognizePluginFirstHint:
|
recognizePluginFirstHint:
|
||||||
'Prioritize calling plugins for media recognition. If a plugin matches, native recognition will be skipped',
|
'Prioritize calling plugins for media recognition. If a plugin matches, native recognition will be skipped',
|
||||||
|
mediaRecognizeShare: 'Use Shared Media Recognition',
|
||||||
|
mediaRecognizeShareHint:
|
||||||
|
'Report successful keyword to media ID mappings and reuse shared recognition results when local recognition fails',
|
||||||
githubProxy: 'Github Acceleration Proxy',
|
githubProxy: 'Github Acceleration Proxy',
|
||||||
githubProxyPlaceholder: 'Leave empty for no proxy',
|
githubProxyPlaceholder: 'Leave empty for no proxy',
|
||||||
githubProxyHint: 'Use proxy to accelerate Github access speed',
|
githubProxyHint: 'Use proxy to accelerate Github access speed',
|
||||||
|
|||||||
@@ -1486,6 +1486,8 @@ export default {
|
|||||||
fanartLangHint: '设置Fanart图片的语言偏好,多选时按优先级顺序排列',
|
fanartLangHint: '设置Fanart图片的语言偏好,多选时按优先级顺序排列',
|
||||||
recognizePluginFirst: "优先使用插件识别",
|
recognizePluginFirst: "优先使用插件识别",
|
||||||
recognizePluginFirstHint: "优先调用插件识别媒体信息,若插件命中则不再调用原生识别",
|
recognizePluginFirstHint: "优先调用插件识别媒体信息,若插件命中则不再调用原生识别",
|
||||||
|
mediaRecognizeShare: '共享使用媒体识别数据',
|
||||||
|
mediaRecognizeShareHint: '识别成功后上报关键字与媒体ID,识别失败时优先回查共享识别结果',
|
||||||
githubProxy: 'Github加速代理',
|
githubProxy: 'Github加速代理',
|
||||||
githubProxyPlaceholder: '留空表示不使用代理',
|
githubProxyPlaceholder: '留空表示不使用代理',
|
||||||
githubProxyHint: '使用代理加速Github访问速度',
|
githubProxyHint: '使用代理加速Github访问速度',
|
||||||
|
|||||||
@@ -1488,6 +1488,8 @@ export default {
|
|||||||
fanartLangHint: '設定Fanart圖片的語言偏好,多選時按優先級順序排列',
|
fanartLangHint: '設定Fanart圖片的語言偏好,多選時按優先級順序排列',
|
||||||
recognizePluginFirst: '優先使用插件識別',
|
recognizePluginFirst: '優先使用插件識別',
|
||||||
recognizePluginFirstHint: '優先調用插件識別媒體信息,若插件命中則不再調用原生識別',
|
recognizePluginFirstHint: '優先調用插件識別媒體信息,若插件命中則不再調用原生識別',
|
||||||
|
mediaRecognizeShare: '共享使用媒體識別數據',
|
||||||
|
mediaRecognizeShareHint: '識別成功後上報關鍵字與媒體ID,識別失敗時優先回查共享識別結果',
|
||||||
githubProxy: 'Github加速代理',
|
githubProxy: 'Github加速代理',
|
||||||
githubProxyPlaceholder: '留空表示不使用代理',
|
githubProxyPlaceholder: '留空表示不使用代理',
|
||||||
githubProxyHint: '使用代理加速Github訪問速度',
|
githubProxyHint: '使用代理加速Github訪問速度',
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ const SystemSettings = ref<any>({
|
|||||||
MOVIEPILOT_AUTO_UPDATE: false,
|
MOVIEPILOT_AUTO_UPDATE: false,
|
||||||
// 媒体
|
// 媒体
|
||||||
RECOGNIZE_PLUGIN_FIRST: false,
|
RECOGNIZE_PLUGIN_FIRST: false,
|
||||||
|
MEDIA_RECOGNIZE_SHARE: true,
|
||||||
TMDB_API_DOMAIN: null,
|
TMDB_API_DOMAIN: null,
|
||||||
TMDB_IMAGE_DOMAIN: null,
|
TMDB_IMAGE_DOMAIN: null,
|
||||||
TMDB_LOCALE: null,
|
TMDB_LOCALE: null,
|
||||||
@@ -1028,13 +1029,15 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
<VCol v-if="SystemSettings.Basic.AI_AGENT_ENABLE && showBaseUrlField" cols="12" md="6">
|
<VCol v-if="SystemSettings.Basic.AI_AGENT_ENABLE && showBaseUrlField" cols="12" md="6">
|
||||||
<VCombobox
|
<VCombobox
|
||||||
:model-value="SystemSettings.Basic.LLM_BASE_URL"
|
:model-value="SystemSettings.Basic.LLM_BASE_URL"
|
||||||
@update:model-value="(value: any) => {
|
@update:model-value="
|
||||||
if (typeof value === 'object' && value !== null) {
|
(value: any) => {
|
||||||
setBaseUrlPreset(value.id, value.value);
|
if (typeof value === 'object' && value !== null) {
|
||||||
} else {
|
setBaseUrlPreset(value.id, value.value)
|
||||||
setBaseUrlPreset('', value || '');
|
} else {
|
||||||
|
setBaseUrlPreset('', value || '')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}"
|
"
|
||||||
:label="t('setting.system.llmBaseUrl')"
|
:label="t('setting.system.llmBaseUrl')"
|
||||||
:hint="t('setting.system.llmBaseUrlHint')"
|
:hint="t('setting.system.llmBaseUrlHint')"
|
||||||
:placeholder="selectedLlmProvider?.default_base_url || 'https://api.deepseek.com'"
|
:placeholder="selectedLlmProvider?.default_base_url || 'https://api.deepseek.com'"
|
||||||
@@ -1060,10 +1063,7 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
prepend-inner-icon="mdi-key-variant"
|
prepend-inner-icon="mdi-key-variant"
|
||||||
/>
|
/>
|
||||||
</VCol>
|
</VCol>
|
||||||
<VCol
|
<VCol v-if="SystemSettings.Basic.AI_AGENT_ENABLE && llmProviderAuthMethods.length > 0" cols="12">
|
||||||
v-if="SystemSettings.Basic.AI_AGENT_ENABLE && llmProviderAuthMethods.length > 0"
|
|
||||||
cols="12"
|
|
||||||
>
|
|
||||||
<VAlert type="info" variant="tonal">
|
<VAlert type="info" variant="tonal">
|
||||||
<div class="d-flex flex-column flex-md-row justify-space-between ga-3">
|
<div class="d-flex flex-column flex-md-row justify-space-between ga-3">
|
||||||
<div>
|
<div>
|
||||||
@@ -1072,7 +1072,11 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
{{ selectedLlmProvider?.description || t('setting.system.llmProviderAuthHint') }}
|
{{ selectedLlmProvider?.description || t('setting.system.llmProviderAuthHint') }}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="providerConnected" class="text-body-2 mt-2">
|
<div v-if="providerConnected" class="text-body-2 mt-2">
|
||||||
{{ t('setting.system.llmProviderConnectedAs', { label: llmProviderAuthLabel || selectedLlmProvider?.name }) }}
|
{{
|
||||||
|
t('setting.system.llmProviderConnectedAs', {
|
||||||
|
label: llmProviderAuthLabel || selectedLlmProvider?.name,
|
||||||
|
})
|
||||||
|
}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -1105,10 +1109,12 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
<div>
|
<div>
|
||||||
<VCombobox
|
<VCombobox
|
||||||
:model-value="SystemSettings.Basic.LLM_MODEL"
|
:model-value="SystemSettings.Basic.LLM_MODEL"
|
||||||
@update:model-value="(val: any) => {
|
@update:model-value="
|
||||||
SystemSettings.Basic.LLM_MODEL = typeof val === 'object' && val !== null ? val.id : val;
|
(val: any) => {
|
||||||
handleLlmModelChanged();
|
SystemSettings.Basic.LLM_MODEL = typeof val === 'object' && val !== null ? val.id : val
|
||||||
}"
|
handleLlmModelChanged()
|
||||||
|
}
|
||||||
|
"
|
||||||
:label="t('setting.system.llmModel')"
|
:label="t('setting.system.llmModel')"
|
||||||
:hint="t('setting.system.llmModelHint')"
|
:hint="t('setting.system.llmModelHint')"
|
||||||
:placeholder="t('setting.system.llmModelHint')"
|
:placeholder="t('setting.system.llmModelHint')"
|
||||||
@@ -1669,6 +1675,26 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
persistent-hint
|
persistent-hint
|
||||||
/>
|
/>
|
||||||
</VCol>
|
</VCol>
|
||||||
|
</VRow>
|
||||||
|
<VRow>
|
||||||
|
<VCol cols="12" md="6">
|
||||||
|
<VSwitch
|
||||||
|
v-model="SystemSettings.Advanced.RECOGNIZE_PLUGIN_FIRST"
|
||||||
|
:label="t('setting.system.recognizePluginFirst')"
|
||||||
|
:hint="t('setting.system.recognizePluginFirstHint')"
|
||||||
|
persistent-hint
|
||||||
|
/>
|
||||||
|
</VCol>
|
||||||
|
<VCol cols="12" md="6">
|
||||||
|
<VSwitch
|
||||||
|
v-model="SystemSettings.Advanced.MEDIA_RECOGNIZE_SHARE"
|
||||||
|
:label="t('setting.system.mediaRecognizeShare')"
|
||||||
|
:hint="t('setting.system.mediaRecognizeShareHint')"
|
||||||
|
persistent-hint
|
||||||
|
/>
|
||||||
|
</VCol>
|
||||||
|
</VRow>
|
||||||
|
<VRow>
|
||||||
<VCol cols="12" md="6">
|
<VCol cols="12" md="6">
|
||||||
<VSwitch
|
<VSwitch
|
||||||
v-model="SystemSettings.Advanced.FANART_ENABLE"
|
v-model="SystemSettings.Advanced.FANART_ENABLE"
|
||||||
@@ -1691,16 +1717,6 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
/>
|
/>
|
||||||
</VCol>
|
</VCol>
|
||||||
</VRow>
|
</VRow>
|
||||||
<VRow>
|
|
||||||
<VCol cols="12" md="6">
|
|
||||||
<VSwitch
|
|
||||||
v-model="SystemSettings.Advanced.RECOGNIZE_PLUGIN_FIRST"
|
|
||||||
:label="t('setting.system.recognizePluginFirst')"
|
|
||||||
:hint="t('setting.system.recognizePluginFirstHint')"
|
|
||||||
persistent-hint
|
|
||||||
/>
|
|
||||||
</VCol>
|
|
||||||
</VRow>
|
|
||||||
|
|
||||||
<!-- 刮削开关设置 -->
|
<!-- 刮削开关设置 -->
|
||||||
<VRow class="mt-4">
|
<VRow class="mt-4">
|
||||||
@@ -2038,12 +2054,7 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => {
|
|||||||
<VBtn color="primary" prepend-icon="mdi-open-in-new" @click="openAuthPage">
|
<VBtn color="primary" prepend-icon="mdi-open-in-new" @click="openAuthPage">
|
||||||
{{ t('setting.system.llmProviderOpenAuthPage') }}
|
{{ t('setting.system.llmProviderOpenAuthPage') }}
|
||||||
</VBtn>
|
</VBtn>
|
||||||
<VBtn
|
<VBtn variant="tonal" prepend-icon="mdi-refresh" :loading="authPolling" @click="pollAuthSession">
|
||||||
variant="tonal"
|
|
||||||
prepend-icon="mdi-refresh"
|
|
||||||
:loading="authPolling"
|
|
||||||
@click="pollAuthSession"
|
|
||||||
>
|
|
||||||
{{ t('setting.system.llmProviderCheckAuthStatus') }}
|
{{ t('setting.system.llmProviderCheckAuthStatus') }}
|
||||||
</VBtn>
|
</VBtn>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user