diff --git a/src/api/controllers/images.ts b/src/api/controllers/images.ts index e96b9c5..41d6106 100644 --- a/src/api/controllers/images.ts +++ b/src/api/controllers/images.ts @@ -257,9 +257,23 @@ export async function generateImages( } } const imageUrls = item_list.map((item) => { - if(!item?.image?.large_images?.[0]?.image_url) - return item?.common_attr?.cover_url || null; - return item.image.large_images[0].image_url; + let res_url = null; + let idata = item?.image; + let idata2 = item?.image?.large_images; + if(!idata2 || !idata2.length){ + for(let key in idata){ + if(idata[key] && idata[key].length && idata[key].length > 0){ + if(idata[key][0].image_url){ + res_url = idata[key][0].image_url; + break; + } + } + } + }else{ + res_url = idata2[0].image_url; + } + if(res_url) return res_url; + return item?.common_attr?.cover_url || null; }); const validImageUrls = imageUrls.filter(url => url !== null); if (validImageUrls.length > 0) { @@ -503,9 +517,23 @@ export async function uploadImages( throw new APIException(EX.API_IMAGE_GENERATION_FAILED); } return item_list.map((item) => { - if(!item?.image?.large_images?.[0]?.image_url) - return item?.common_attr?.cover_url || null; - return item.image.large_images[0].image_url; + let res_url = null; + let idata = item?.image; + let idata2 = item?.image?.large_images; + if(!idata2 || !idata2.length){ + for(let key in idata){ + if(idata[key] && idata[key].length && idata[key].length > 0){ + if(idata[key][0].image_url){ + res_url = idata[key][0].image_url; + break; + } + } + } + }else{ + res_url = idata2[0].image_url; + } + if(res_url) return res_url; + return item?.common_attr?.cover_url || null; }); } diff --git a/src/api/controllers/video.ts b/src/api/controllers/video.ts index b60bfcd..fdffc56 100644 --- a/src/api/controllers/video.ts +++ b/src/api/controllers/video.ts @@ -238,9 +238,15 @@ export async function generateVideo( // and item_list is populated. // A more robust check might be needed depending on actual API behavior for success. const videoUrls = item_list.map((item) => { - if(!item?.video?.transcoded_video?.origin?.video_url) - return null; - return item.video.transcoded_video.origin.video_url; + let res_url = null; + let vdata = item?.video?.transcoded_video||{}; + for(let key in vdata){ + if(vdata[key] && vdata[key].video_url){ + res_url = vdata[key].video_url; + break; + } + } + return res_url || null; }); // Filter out nulls and check if any valid URL was generated diff --git a/src/lib/services/TaskPollingService.ts b/src/lib/services/TaskPollingService.ts index a12a3de..e5f8f06 100644 --- a/src/lib/services/TaskPollingService.ts +++ b/src/lib/services/TaskPollingService.ts @@ -260,14 +260,35 @@ export class TaskPollingService { if (task.task_type === 'image') { originalUrls = item_list.map((item) => { - if (item?.image?.large_images?.[0]?.image_url) { - return item.image.large_images[0].image_url; + let res_url = null; + let idata = item?.image; + let idata2 = item?.image?.large_images; + if(!idata2 || !idata2.length){ + for(let key in idata){ + if(idata[key] && idata[key].length && idata[key].length > 0){ + if(idata[key][0].image_url){ + res_url = idata[key][0].image_url; + break; + } + } + } + }else{ + res_url = idata2[0].image_url; } + if(res_url) return res_url; return item?.common_attr?.cover_url || null; }).filter(url => url !== null); } else { originalUrls = item_list.map((item) => { - return item?.video?.transcoded_video?.origin?.video_url || null; + let res_url = null; + let vdata = item?.video?.transcoded_video||{}; + for(let key in vdata){ + if(vdata[key] && vdata[key].video_url){ + res_url = vdata[key].video_url; + break; + } + } + return res_url || null; }).filter(url => url !== null); } @@ -415,14 +436,35 @@ export class TaskPollingService { if (task.task_type === 'image') { originalUrls = itemList.map((item) => { - if (item?.image?.large_images?.[0]?.image_url) { - return item.image.large_images[0].image_url; + let res_url = null; + let idata = item?.image; + let idata2 = item?.image?.large_images; + if(!idata2 || !idata2.length){ + for(let key in idata){ + if(idata[key] && idata[key].length && idata[key].length > 0){ + if(idata[key][0].image_url){ + res_url = idata[key][0].image_url; + break; + } + } + } + }else{ + res_url = idata2[0].image_url; } + if(res_url) return res_url; return item?.common_attr?.cover_url || null; }).filter(url => url !== null); } else { originalUrls = itemList.map((item) => { - return item?.video?.transcoded_video?.origin?.video_url || null; + let res_url = null; + let vdata = item?.video?.transcoded_video||{}; + for(let key in vdata){ + if(vdata[key] && vdata[key].video_url){ + res_url = vdata[key].video_url; + break; + } + } + return res_url || null; }).filter(url => url !== null); }