1 line
No EOL
4.7 KiB
JavaScript
1 line
No EOL
4.7 KiB
JavaScript
import{itemRepository,transferManager,fileRepository}from"./../common/servicelocator.js";function removeLocalItem(localItem){return itemRepository.getLibraryItem(localItem.ServerId,localItem.ItemId).then(function(item){function onFileDeletedSuccessOrFail(){return itemRepository.deleteLibraryItem(localItem.ServerId,localItem.ItemId)}let p=Promise.resolve();return item.LocalPath&&(p=p.then(function(){return fileRepository.deleteFile(item.LocalPath)})),item&&item.Item&&item.Item.MediaSources&&item.Item.MediaSources.forEach(function(mediaSource){mediaSource.MediaStreams&&0<mediaSource.MediaStreams.length&&mediaSource.MediaStreams.forEach(function(mediaStream){mediaStream.Path&&(p=p.then(function(){return fileRepository.deleteFile(mediaStream.Path)}))})}),p.then(onFileDeletedSuccessOrFail,onFileDeletedSuccessOrFail)},function(){return Promise.resolve()})}function getSubtitleSaveFileName(localItem,mediaPath,language,isForced,isHearingImpaired,format){let name=getNameWithoutExtension(mediaPath);name=fileRepository.getValidFileName(name),language&&(name+="."+language.toLowerCase()),isForced&&(name+=".forced"),isHearingImpaired&&(name+=".sdh"),name=name+"."+format.toLowerCase();mediaPath=fileRepository.getParentPath(localItem.LocalPath);return fileRepository.combinePath(mediaPath,name)}function getItemFileSize(path){return fileRepository.getItemFileSize(path)}function getNameWithoutExtension(path){let fileName=path;path=fileName.lastIndexOf(".");return fileName=0<path?fileName.substring(0,path):fileName}function downloadFile(url,localItem){var imageUrl=getImageUrl(localItem.Item.ServerId,localItem.Item.Id,{type:"Primary",index:0});return transferManager.downloadFile(url,localItem,imageUrl)}function downloadSubtitles(url,fileName){return transferManager.downloadSubtitles(url,fileName)}function getImageUrl(serverId,itemId,imageOptions){serverId=getImagePath(serverId,itemId,imageOptions.type,imageOptions.index);return fileRepository.getImageUrl(serverId)}function hasImage(serverId,itemId,imageType,index){serverId=getImagePath(serverId,itemId,imageType,index),itemId=fileRepository.getFullMetadataPath(serverId);return fileRepository.fileExists(itemId).then(function(exists){return Promise.resolve(exists)},function(){return Promise.resolve(!1)})}function fileExists(localFilePath){return fileRepository.fileExists(localFilePath)}function downloadImage(localItem,url,serverId,itemId,imageType,index){serverId=getImagePath(serverId,itemId,imageType,index);return transferManager.downloadImage(url,serverId)}function isDownloadFileInQueue(path){return transferManager.isDownloadFileInQueue(path)}function getDownloadItemCount(){return transferManager.getDownloadItemCount()}function getDirectoryPath(item){var parts=[],itemtype=item.Type.toLowerCase(),mediaType=(item.MediaType||"").toLowerCase(),albumArtist=("episode"===itemtype||"series"===itemtype||"season"===itemtype?parts.push("TV"):"trailer"===itemtype?parts.push("Trailers"):"video"===mediaType?parts.push("Videos"):"audio"===itemtype||"musicalbum"===itemtype||"musicartist"===itemtype?parts.push("Music"):"photo"===itemtype||"photoalbum"===itemtype?parts.push("Photos"):"game"!==itemtype&&"gamesystem"!==itemtype||parts.push("Games"),item.AlbumArtist),albumArtist=(albumArtist&&parts.push(albumArtist),item.SeriesName),albumArtist=(albumArtist&&parts.push(albumArtist),item.SeasonName),finalParts=(albumArtist&&parts.push(albumArtist),item.Album&&parts.push(item.Album),item.GameSystem&&parts.push(item.GameSystem),("video"===mediaType&&"episode"!==itemtype||"game"===itemtype||item.IsFolder)&&parts.push(item.Name),[]);for(let i=0;i<parts.length;i++)finalParts.push(fileRepository.getValidFileName(parts[i]));return finalParts}function getImagePath(serverId,itemId,imageType,index){var parts=[],finalParts=(parts.push("images"),parts.push(itemId+"_"+imageType+"_"+(index=index||0).toString()),[]);for(let i=0;i<parts.length;i++)finalParts.push(parts[i]);return finalParts}function getLocalFileName(item,originalFileName){originalFileName=originalFileName||item.Name;return fileRepository.getValidFileName(originalFileName)}function resyncTransfers(){return transferManager.resyncTransfers()}function enableBackgroundCompletion(){return transferManager.enableBackgroundCompletion}export default{getDirectoryPath:getDirectoryPath,getLocalFileName:getLocalFileName,removeLocalItem:removeLocalItem,downloadFile:downloadFile,downloadSubtitles:downloadSubtitles,hasImage:hasImage,downloadImage:downloadImage,getImageUrl:getImageUrl,getSubtitleSaveFileName:getSubtitleSaveFileName,getItemFileSize:getItemFileSize,isDownloadFileInQueue:isDownloadFileInQueue,getDownloadItemCount:getDownloadItemCount,resyncTransfers:resyncTransfers,fileExists:fileExists,enableBackgroundCompletion:enableBackgroundCompletion}; |