소스 검색

feat(frontend): 视频库添加下载任务时新增弹窗选择是一次性任务还是正常任务

Signed-off-by: Myon <[email protected]>
Myon 3 년 전
부모
커밋
7a6c71f758
2개의 변경된 파일58개의 추가작업 그리고 22개의 파일을 삭제
  1. 29 11
      frontend/src/pages/library/movies/ListItemMovie.vue
  2. 29 11
      frontend/src/pages/library/tvs/DialogTVDetail.vue

+ 29 - 11
frontend/src/pages/library/movies/ListItemMovie.vue

@@ -49,26 +49,44 @@ import LibraryApi from 'src/api/LibraryApi';
 import { SystemMessage } from 'src/utils/Message';
 import { VIDEO_TYPE_MOVIE } from 'src/constants/SettingConstants';
 import config from 'src/config';
+import { useQuasar } from 'quasar';
 
 const props = defineProps({
   data: Object,
 });
 
+const $q = useQuasar();
+
 const hasSubtitle = computed(() => props.data.sub_f_path_list.length > 0);
 
 const downloadSubtitle = async () => {
-  const [, err] = await LibraryApi.downloadSubtitle({
-    video_type: VIDEO_TYPE_MOVIE,
-    physical_video_file_full_path: props.data.video_f_path,
-    task_priority_level: 3, // 一般的队列等级是5,如果想要快,那么可以先默认这里填写3,这样就可以插队
-    // 媒体服务器内部视频ID  `video/list` 中 获取到的 media_server_inside_video_id,可以用于自动 Emby 字幕列表刷新用
-    media_server_inside_video_id: props.data.media_server_inside_video_id,
+  $q.dialog({
+    title: '添加到下载队列',
+    message: '选择下载任务的类型:',
+    options: {
+      model: 3,
+      type: 'radio',
+      items: [
+        { label: '正常任务', value: 3 },
+        { label: '一次性任务(下载后删除任务)', value: 0 },
+      ],
+    },
+    cancel: true,
+    persistent: true,
+  }).onOk(async (val) => {
+    const [, err] = await LibraryApi.downloadSubtitle({
+      video_type: VIDEO_TYPE_MOVIE,
+      physical_video_file_full_path: props.data.video_f_path,
+      task_priority_level: val, // 一般的队列等级是5,如果想要快,那么可以先默认这里填写3,这样就可以插队
+      // 媒体服务器内部视频ID  `video/list` 中 获取到的 media_server_inside_video_id,可以用于自动 Emby 字幕列表刷新用
+      media_server_inside_video_id: props.data.media_server_inside_video_id,
+    });
+    if (err !== null) {
+      SystemMessage.error(err.message);
+    } else {
+      SystemMessage.success('已加入下载队列');
+    }
   });
-  if (err !== null) {
-    SystemMessage.error(err.message);
-  } else {
-    SystemMessage.success('已加入下载队列');
-  }
 };
 
 const getUrl = (path) => config.BACKEND_STATIC_URL + path.split(/\/|\\/).join('/');

+ 29 - 11
frontend/src/pages/library/tvs/DialogTVDetail.vue

@@ -68,11 +68,14 @@ import LibraryApi from 'src/api/LibraryApi';
 import { SystemMessage } from 'src/utils/Message';
 import { VIDEO_TYPE_TV } from 'src/constants/SettingConstants';
 import config from 'src/config';
+import { useQuasar } from 'quasar';
 
 const props = defineProps({
   data: Object,
 });
 
+const $q = useQuasar();
+
 // 按季度、剧集排序
 const sortedVideos = computed(() =>
   [...props.data.one_video_info].sort((a, b) => {
@@ -104,17 +107,32 @@ const visible = ref(false);
 const getUrl = (path) => config.BACKEND_STATIC_URL + path.split(/\/|\\/).join('/');
 
 const downloadSubtitle = async (item) => {
-  const [, err] = await LibraryApi.downloadSubtitle({
-    video_type: VIDEO_TYPE_TV,
-    physical_video_file_full_path: item.video_f_path,
-    task_priority_level: 3, // 一般的队列等级是5,如果想要快,那么可以先默认这里填写3,这样就可以插队
-    // 媒体服务器内部视频ID  `video/list` 中 获取到的 media_server_inside_video_id,可以用于自动 Emby 字幕列表刷新用
-    media_server_inside_video_id: item.media_server_inside_video_id,
+  $q.dialog({
+    title: '添加到下载队列',
+    message: '选择下载任务的类型:',
+    options: {
+      model: 3,
+      type: 'radio',
+      items: [
+        { label: '正常任务', value: 3 },
+        { label: '一次性任务(下载后删除任务)', value: 0 },
+      ],
+    },
+    cancel: true,
+    persistent: true,
+  }).onOk(async (val) => {
+    const [, err] = await LibraryApi.downloadSubtitle({
+      video_type: VIDEO_TYPE_TV,
+      physical_video_file_full_path: item.video_f_path,
+      task_priority_level: val, // 一般的队列等级是5,如果想要快,那么可以先默认这里填写3,这样就可以插队
+      // 媒体服务器内部视频ID  `video/list` 中 获取到的 media_server_inside_video_id,可以用于自动 Emby 字幕列表刷新用
+      media_server_inside_video_id: item.media_server_inside_video_id,
+    });
+    if (err !== null) {
+      SystemMessage.error(err.message);
+    } else {
+      SystemMessage.success('已加入下载队列');
+    }
   });
-  if (err !== null) {
-    SystemMessage.error(err.message);
-  } else {
-    SystemMessage.success('已加入下载队列');
-  }
 };
 </script>