feat:增加设置项提示

This commit is contained in:
jxxghp
2024-03-31 09:36:31 +08:00
parent 9b989fc40f
commit d5efe2b499
6 changed files with 94 additions and 7 deletions

View File

@@ -209,6 +209,7 @@ onMounted(() => {
chips
:items="NotificationChannels"
label="当前使用通知渠道"
hint="选中的渠道才会按消息类型的设定发送消息"
/>
</VCol>
</VRow>
@@ -246,36 +247,42 @@ onMounted(() => {
<VTextField
v-model="notificationSettings.WECHAT_CORPID"
label="企业ID"
hint="登录企业微信后台,在 https://work.weixin.qq.com/wework_admin/frame#profile 中查看"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="notificationSettings.WECHAT_APP_SECRET"
label="应用密钥"
label="应用Secret"
hint="在企业微信中创建应用查看应用的Secret"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="notificationSettings.WECHAT_APP_ID"
label="应用ID"
label="应用 AgentId"
hint="在企业微信中创建应用查看应用的AgentId"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="notificationSettings.WECHAT_PROXY"
label="代理地址"
hint="由于微信官方限制2022年6月20日后创建的企业微信应用需要有固定的公网IP地址并加入IP白名单后才能接收消息使用有固定公网IP的代理服务器转发可解决该问题代理服务器需自行搭建搭建方法参考项目主页说明不使用代理需保留默认值"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="notificationSettings.WECHAT_TOKEN"
label="Token"
hint="在微信企业应用管理后台-接收消息设置页面生成"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="notificationSettings.WECHAT_ENCODING_AESKEY"
label="EncodingAESKey"
hint="在微信企业应用管理后台-接收消息设置页面生成所有信息填入完成后保存然后再在企业微信应用消息接收服务中输入回调地址http(s)://domain:port/api/v1/message/"
/>
</VCol>
<VCol cols="12" md="4">
@@ -283,6 +290,7 @@ onMounted(() => {
v-model="notificationSettings.WECHAT_ADMINS"
label="管理员白名单"
placeholder="多个用,分隔"
hint="只有在白名单中的用户才能使用菜单管理功能,不填写则所有用户都能使用,菜单会自动生成,不需要手动创建"
/>
</VCol>
</VRow>
@@ -295,12 +303,14 @@ onMounted(() => {
<VTextField
v-model="notificationSettings.TELEGRAM_TOKEN"
label="Bot Token"
hint="Telegram机器人的token关注BotFather创建机器人并获取token格式为123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationSettings.TELEGRAM_CHAT_ID"
label="Chat ID"
hint="接受消息通知的用户、群组或频道Chat ID关注@getidsbot获取"
/>
</VCol>
<VCol cols="12" md="6">
@@ -308,6 +318,7 @@ onMounted(() => {
v-model="notificationSettings.TELEGRAM_USERS"
label="用户白名单"
placeholder="多个用,分隔"
hint="只有在白名单中的用户才能使用Telegram机器人不填写则所有用户都能使用多个用户用英文,分隔"
/>
</VCol>
<VCol cols="12" md="6">
@@ -315,6 +326,7 @@ onMounted(() => {
v-model="notificationSettings.TELEGRAM_ADMINS"
label="管理员白名单"
placeholder="多个用,分隔"
hint="只有在白名单中的用户才能使用管理功能,不填写则所有用户都能使用,多个用户用英文,分隔。菜单会自动生成,不需要手动创建"
/>
</VCol>
</VRow>
@@ -327,12 +339,16 @@ onMounted(() => {
<VTextField
v-model="notificationSettings.SLACK_OAUTH_TOKEN"
label="Slack Bot User OAuth Token"
placeholder="xoxb-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
hint="在 https://api.slack.com/apps 中创建应用查看OAuth & Permissions页面中的Bot User OAuth Token"
/>
</VCol>
<VCol cols="12" md="5">
<VTextField
v-model="notificationSettings.SLACK_APP_TOKEN"
label="Slack App-Level Token"
placeholder="xapp-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
hint="在 https://api.slack.com/apps 中创建应用查看OAuth & Permissions页面中的App-Level Token"
/>
</VCol>
<VCol cols="12" md="2">
@@ -340,6 +356,7 @@ onMounted(() => {
v-model="notificationSettings.SLACK_CHANNEL"
label="频道名称"
placeholder="全体"
hint="消息发送到的频道名称,不填写则发送到全体频道"
/>
</VCol>
</VRow>
@@ -351,13 +368,15 @@ onMounted(() => {
<VCol cols="12" md="6">
<VTextField
v-model="notificationSettings.SYNOLOGYCHAT_WEBHOOK"
label="Webhook"
label="机器人传入URL"
hint="在Synology Chat中创建机器人获取机器人传入URL"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationSettings.SYNOLOGYCHAT_TOKEN"
label="Token"
label="令牌"
hint="在Synology Chat中创建机器人获取机器人令牌"
/>
</VCol>
</VRow>
@@ -376,6 +395,7 @@ onMounted(() => {
<VTextField
v-model="notificationSettings.VOCECHAT_API_KEY"
label="机器人密钥"
hint="在VoceChat中创建机器人获取机器人密钥"
/>
</VCol>
<VCol cols="12" md="4">
@@ -383,6 +403,7 @@ onMounted(() => {
v-model="notificationSettings.VOCECHAT_CHANNEL_ID"
label="频道ID"
placeholder="不包含#号"
hint="在VoceChat中创建频道获取频道ID不包含#号"
/>
</VCol>
</VRow>

View File

@@ -390,6 +390,7 @@ onMounted(() => {
v-model="defaultFilterRules.include"
type="text"
label="包含(关键字、正则式)"
hint="支持正式表达式,多个关键字用|分隔表示或"
/>
</VCol>
<VCol cols="12" md="6">
@@ -397,6 +398,7 @@ onMounted(() => {
v-model="defaultFilterRules.exclude"
type="text"
label="排除(关键字、正则式)"
hint="支持正式表达式,多个关键字用|分隔表示或"
/>
</VCol>
</VRow>

View File

@@ -160,7 +160,11 @@ onMounted(() => {
<VForm>
<VRow>
<VCol cols="12" md="6">
<VCheckbox v-model="cookieCloudSetting.COOKIECLOUD_ENABLE_LOCAL" label="启用本地CookieCloud服务器" />
<VCheckbox
v-model="cookieCloudSetting.COOKIECLOUD_ENABLE_LOCAL"
label="启用本地CookieCloud服务器"
hint="启用后将使用内建CookieCloud服务同步站点数据服务地址为http://localhost:3000/cookiecloud"
/>
</VCol>
</VRow>
<VRow>
@@ -169,13 +173,15 @@ onMounted(() => {
v-model="cookieCloudSetting.COOKIECLOUD_HOST"
label="远程CookieCloud服务器地址"
placeholder="https://movie-pilot.org/cookiecloud"
:disabled="cookieCloudSetting.COOKIECLOUD_ENABLE_LOCAL"
:disabled="!!cookieCloudSetting.COOKIECLOUD_ENABLE_LOCAL"
hint="格式https://movie-pilot.org/cookiecloud"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="cookieCloudSetting.COOKIECLOUD_KEY"
label="用户KEY"
hint="在CookieCloud浏览器插件中生成"
/>
</VCol>
<VCol cols="12" md="6">
@@ -183,6 +189,7 @@ onMounted(() => {
v-model="cookieCloudSetting.COOKIECLOUD_PASSWORD"
type="password"
label="端对端加密密码"
hint="在CookieCloud浏览器插件中生成"
/>
</VCol>
<VCol cols="12" md="6">
@@ -190,12 +197,14 @@ onMounted(() => {
v-model="cookieCloudSetting.COOKIECLOUD_INTERVAL"
label="自动同步间隔"
:items="CookieCloudIntervalItems"
hint="设置定时从CookieCloud服务器同步站点Cookie到MoviePilot的时间周期"
/>
</VCol>
<VCol cols="12">
<VTextField
v-model="cookieCloudSetting.USER_AGENT"
label="浏览器User-Agent"
hint="设置为CookieCloud插件所在的浏览器的User-Agent用于模拟浏览器请求正确填写后有助于提升站点访问成功率"
/>
</VCol>
</VRow>
@@ -222,6 +231,7 @@ onMounted(() => {
v-model="selectedTorrentPriority"
:items="TorrentPriorityItems"
label="当前使用下载优先规则"
hint="站点优先:优先下载站点优先级最高的站点的种子;做种数优先:优先下载做种数量最多的种子。注意下载优先级仍然低于搜索和订阅中设定的优先级规则"
/>
</VCol>
</VRow>
@@ -241,7 +251,11 @@ onMounted(() => {
<VCard title="站点重置">
<VCardText>
<div>
<VCheckbox v-model="isConfirmResetSites" label="确认删除所有站点数据并重新同步。" />
<VCheckbox
v-model="isConfirmResetSites"
label="确认删除所有站点数据并重新同步。"
hint="删除所有站点数据并重新同步站点图标短时间内会因数缓存而混乱重启或者等待2两时自动恢复。"
/>
</div>
<VBtn :disabled="!isConfirmResetSites || resetSitesDisabled" color="error" class="mt-3" @click="resetSites">

View File

@@ -411,6 +411,7 @@ onMounted(() => {
v-model="selectedSubscribeMode"
:items="subscribeModeItems"
label="订阅模式"
hint="自动系统自动爬取站点首页资源站点RSS使用站点RSS订阅资源站点RSS会自动获取也可手动在站点管理中补全"
/>
</VCol>
<VCol cols="12" md="6">
@@ -418,6 +419,7 @@ onMounted(() => {
v-model="selectedRssInterval"
:items="rssIntervalItems"
label="站点RSS周期"
hint="设置站点RSS运行周期在订阅模式为站点RSS时生效"
/>
</VCol>
</VRow>
@@ -426,6 +428,7 @@ onMounted(() => {
<VSwitch
v-model="enableIntervalSearch"
label="开启订阅定时搜索"
hint="开启后系统每隔24小时将按名称搜索全站补全订阅可能漏掉的资源"
/>
</VCol>
</VRow>
@@ -581,6 +584,7 @@ onMounted(() => {
v-model="defaultFilterRules.include"
type="text"
label="包含(关键字、正则式)"
hint="支持正式表达式,多个关键字用|分隔表示或"
/>
</VCol>
<VCol cols="12" md="6">
@@ -588,6 +592,7 @@ onMounted(() => {
v-model="defaultFilterRules.exclude"
type="text"
label="排除(关键字、正则式)"
hint="支持正式表达式,多个关键字用|分隔表示或"
/>
</VCol>
<VCol cols="12" md="4">
@@ -596,6 +601,7 @@ onMounted(() => {
type="text"
label="电影文件大小GB"
placeholder="0-30"
hint="格式0-30表示0到30GB之间的资源"
/>
</VCol>
<VCol cols="12" md="4">
@@ -604,6 +610,7 @@ onMounted(() => {
type="text"
label="剧集单集文件大小GB"
placeholder="0-10"
hint="格式0-10表示0到10GB之间的资源"
/>
</VCol>
<VCol cols="12" md="4">
@@ -612,12 +619,14 @@ onMounted(() => {
type="text"
label="最小做种数"
placeholder="0"
hint="小于该值的资源将被过滤掉0表示不过滤"
/>
</VCol>
<VCol cols="12" md="6">
<VSwitch
v-model="defaultFilterRules.show_edit_dialog"
label="订阅时编辑更多规则"
hint="开启后,添加订阅时将自动弹出订阅编辑框,要设置更多订阅选项"
/>
</VCol>
</VRow>

View File

@@ -351,12 +351,14 @@ onMounted(() => {
chips
:items="Downloaders"
label="当前使用下载器"
hint="MoviePilot自动添加的下载任务将使用选中的第1个下载器"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="downloaderSettings.TORRENT_TAG"
label="下载器种子标签"
hint="设置种子标签用于区分MoviePilot添加的下载任务默认标签为`MOVIEPILOT`"
/>
</VCol>
</VRow>
@@ -365,6 +367,7 @@ onMounted(() => {
<VSwitch
v-model="downloaderSettings.DOWNLOADER_MONITOR"
label="监控默认下载器"
hint="监控选中的第1个下载器当任务下载完成时自动整理文件到媒体库"
/>
</VCol>
</VRow>
@@ -394,6 +397,7 @@ onMounted(() => {
v-model="downloaderSettings.QB_HOST"
label="地址"
placeholder="IP:PORT"
hint="格式IP:PORT如启用了HTTPS请使用https://IP:PORT"
/>
</VCol>
<VCol cols="12" md="4">
@@ -401,6 +405,7 @@ onMounted(() => {
v-model="downloaderSettings.QB_USER"
label="用户名"
placeholder="admin"
hint="QB的登录用户名"
/>
</VCol>
<VCol cols="12" md="4">
@@ -408,24 +413,28 @@ onMounted(() => {
v-model="downloaderSettings.QB_PASSWORD"
type="password"
label="密码"
hint="QB的登录密码"
/>
</VCol>
<VCol cols="12" md="4">
<VSwitch
v-model="downloaderSettings.QB_CATEGORY"
label="自动分类管理"
hint="开启后下载目录将由QB控制自动下载到分类到目录此时MoviePilot的下载目录设定无效需在QB中提前创建分类"
/>
</VCol>
<VCol cols="12" md="4">
<VSwitch
v-model="downloaderSettings.QB_SEQUENTIAL"
label="顺序下载"
hint="开启后QB将按照文件顺序依次下载"
/>
</VCol>
<VCol cols="12" md="4">
<VSwitch
v-model="downloaderSettings.QB_FORCE_RESUME"
label="强制继续"
hint="开启后QB将设置为强制继续、强制上传模式带[F]标识)"
/>
</VCol>
</VRow>
@@ -439,6 +448,7 @@ onMounted(() => {
v-model="downloaderSettings.TR_HOST"
label="地址"
placeholder="IP:PORT"
hint="格式IP:PORT如启用了HTTPS请使用https://IP:PORT"
/>
</VCol>
<VCol cols="12" md="4">
@@ -446,6 +456,7 @@ onMounted(() => {
v-model="downloaderSettings.TR_USER"
label="用户名"
placeholder="admin"
hint="TR的登录用户名"
/>
</VCol>
<VCol cols="12" md="4">
@@ -453,6 +464,7 @@ onMounted(() => {
v-model="downloaderSettings.TR_PASSWORD"
type="password"
label="密码"
hint="TR的登录密码"
/>
</VCol>
</VRow>
@@ -492,6 +504,7 @@ onMounted(() => {
chips
:items="MediaServers"
label="当前使用媒体服务器"
hint="媒体服务器用于搜索下载等判断库中是否已存在,以避免重复下载"
/>
</VCol>
<VCol cols="12" md="4">
@@ -499,6 +512,7 @@ onMounted(() => {
v-model="mediaServerSettings.MEDIASERVER_SYNC_INTERVAL"
:items="syncIntervalItems"
label="同步周期"
hint="设置后数据将定时同步到MoviePilot数据库以便展示媒体库是否存在标识"
/>
</VCol>
<VCol cols="12" md="4">
@@ -506,6 +520,7 @@ onMounted(() => {
v-model="mediaServerSettings.MEDIASERVER_SYNC_BLACKLIST"
label="媒体库同步黑名单"
placeholder="使用,分隔"
hint="设置不同步数据的媒体库名称,使用,分隔,如:电影,电视剧"
/>
</VCol>
</VRow>
@@ -538,6 +553,7 @@ onMounted(() => {
v-model="mediaServerSettings.EMBY_HOST"
label="地址"
placeholder="IP:PORT"
hint="格式IP:PORT 或 http(s)://IP:PORT/"
/>
</VCol>
<VCol cols="12" md="4">
@@ -545,12 +561,14 @@ onMounted(() => {
v-model="mediaServerSettings.EMBY_PLAY_HOST"
label="外网播放地址"
placeholder="http(s)://domain:port"
hint="格式http(s)://domain:port设置后跳转Emby时将优先使用此地址"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="mediaServerSettings.EMBY_API_KEY"
label="API密钥"
hint="Emby的API密钥在 Emby设置->高级->API 密钥 中生成"
/>
</VCol>
</VRow>
@@ -564,6 +582,7 @@ onMounted(() => {
v-model="mediaServerSettings.JELLYFIN_HOST"
label="地址"
placeholder="IP:PORT"
hint="格式IP:PORT 或 http(s)://IP:PORT/"
/>
</VCol>
<VCol cols="12" md="4">
@@ -571,12 +590,14 @@ onMounted(() => {
v-model="mediaServerSettings.JELLYFIN_PLAY_HOST"
label="外网播放地址"
placeholder="http(s)://domain:port"
hint="格式http(s)://domain:port设置后跳转Jellyfin时将优先使用此地址"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="mediaServerSettings.JELLYFIN_API_KEY"
label="API密钥"
hint="Jellyfin的API密钥在 Jellyfin设置->高级->API 密钥 中生成"
/>
</VCol>
</VRow>
@@ -590,6 +611,7 @@ onMounted(() => {
v-model="mediaServerSettings.PLEX_HOST"
label="地址"
placeholder="IP:PORT"
hint="格式IP:PORT 或 http(s)://IP:PORT/"
/>
</VCol>
<VCol cols="12" md="4">
@@ -597,12 +619,14 @@ onMounted(() => {
v-model="mediaServerSettings.PLEX_PLAY_HOST"
label="外网播放地址"
placeholder="http(s)://domain:port"
hint="格式http(s)://domain:port设置后跳转Plex时将优先使用此地址"
/>
</VCol>
<VCol cols="12" md="4">
<VTextField
v-model="mediaServerSettings.PLEX_TOKEN"
label="API密钥"
hint="Plex网页Url中的X-Plex-Token通过浏览器F12->网络从请求URL中获取"
/>
</VCol>
</VRow>
@@ -640,30 +664,35 @@ onMounted(() => {
v-model="mediaSettings.DOWNLOAD_PATH"
label="下载目录"
:rules="[requiredValidator]"
hint="MoviePilot添加的下载任务的默认保存目录必须设置"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="mediaSettings.DOWNLOAD_MOVIE_PATH"
label="电影下载目录"
hint="为电影设置单独的下载保存目录,不设置则使用下载目录"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="mediaSettings.DOWNLOAD_TV_PATH"
label="电视剧下载目录"
hint="为电视剧设置单独的下载保存目录,不设置则使用下载目录"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="mediaSettings.DOWNLOAD_ANIME_PATH"
label="动漫下载目录"
hint="为动漫设置单独的下载保存目录,不设置则使用下载目录"
/>
</VCol>
<VCol cols="12" md="6">
<VSwitch
v-model="mediaSettings.DOWNLOAD_CATEGORY"
label="下载目录自动分类"
hint="开启后,下载任务保存目录将根据二级分类策略自动分类存放到下载目录的二级子目录中,二级分类策略需要编辑配置文件目录下的`category.yml`文件,插件市场有提供文件编辑插件"
/>
</VCol>
</VRow>
@@ -673,6 +702,7 @@ onMounted(() => {
v-model="mediaSettings.TRANSFER_TYPE"
:items="transferTypeItems"
label="整理方式"
hint="硬链接需要确保下载目录和媒体库目录不跨盘、不跨共享目录、不分别映射rclone需要手动在容器中完成配置且配置名为`MP`"
/>
</VCol>
<VCol cols="12" md="6">
@@ -680,12 +710,14 @@ onMounted(() => {
v-model="mediaSettings.OVERWRITE_MODE"
:items="overwriteModeItems"
label="覆盖模式"
hint="从不覆盖:不覆盖已存在的文件;按大小覆盖:大文件将覆盖小文件;总是覆盖:总是覆盖已存在的文件;仅保留最新版本:保留最新版本的文件,删除其它版本的文件"
/>
</VCol>
<VCol cols="12" md="6">
<VSwitch
v-model="mediaSettings.SCRAP_METADATA"
label="自动刮削媒体信息"
hint="开启后,整理完成后将自动刮削媒体信息,如海报、简介等"
/>
</VCol>
</VRow>
@@ -696,6 +728,7 @@ onMounted(() => {
label="媒体库目录"
placeholder="多个目录使用,分隔"
:rules="[requiredValidator]"
hint="整理完成后的媒体文件存放的根目录,所有整理场景下未设定目的目录时都将整理到该目录下,必须设置"
/>
</VCol>
<VCol cols="12" md="6">
@@ -703,6 +736,7 @@ onMounted(() => {
v-model="mediaSettings.LIBRARY_MOVIE_NAME"
label="电影目录名称"
placeholder="电影"
hint="设置电影的存放一级目录名称,不设置则使用使用`电影`做为目录名称"
/>
</VCol>
<VCol cols="12" md="6">
@@ -710,6 +744,7 @@ onMounted(() => {
v-model="mediaSettings.LIBRARY_TV_NAME"
label="电视剧目录名称"
placeholder="电视剧"
hint="设置电视剧的存放一级目录名称,不设置则使用使用`电视剧`做为目录名称"
/>
</VCol>
<VCol cols="12" md="6">
@@ -717,12 +752,14 @@ onMounted(() => {
v-model="mediaSettings.LIBRARY_ANIME_NAME"
label="动漫目录名称"
placeholder="动漫"
hint="设置动漫的存放一级目录名称,不设置则使用使用`动漫`做为目录名称"
/>
</VCol>
<VCol cols="12" md="6">
<VSwitch
v-model="mediaSettings.LIBRARY_CATEGORY"
label="媒体库目录自动分类"
hint="开启后,整理完成后的媒体文件将根据二级分类策略自动分类存放到媒体库一级目录的二级子目录中,二级分类策略需要编辑配置文件目录下的`category.yml`文件,插件市场有提供文件编辑插件"
/>
</VCol>
</VRow>

View File

@@ -167,6 +167,7 @@ onMounted(() => {
v-model="customIdentifiers"
auto-grow
placeholder="支持正则表达式,特殊字符需要\转义,一行为一组"
hint="支持正则表达式,特殊字符需要\转义,一行为一组"
/>
</VCardItem>
<VCardItem>
@@ -204,6 +205,7 @@ onMounted(() => {
v-model="customReleaseGroups"
auto-grow
placeholder="支持正则表达式,特殊字符需要\转义,一行代表一个制作组/字幕组"
hint="支持正则表达式,特殊字符需要\转义,一行代表一个制作组/字幕组"
/>
</VCardItem>
<VCardItem>
@@ -224,6 +226,7 @@ onMounted(() => {
v-model="customization"
auto-grow
placeholder="多个匹配对象请换行分隔,支持正则表达式,特殊字符注意转义"
hint="多个匹配对象请换行分隔,支持正则表达式,特殊字符注意转义"
/>
</VCardItem>
<VCardItem>
@@ -244,6 +247,7 @@ onMounted(() => {
v-model="transferExcludeWords"
auto-grow
placeholder="支持正则表达式,特殊字符需要\转义,一行代表一个屏蔽词"
hint="支持正则表达式,特殊字符需要\转义,一行代表一个屏蔽词"
/>
</VCardItem>
<VCardItem>