优化jellyfin搜刮器
This commit is contained in:
13
src/main/java/com/yutou/nas/Datas/Jellyfin/Chapter.java
Normal file
13
src/main/java/com/yutou/nas/Datas/Jellyfin/Chapter.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class Chapter {
|
||||
private long startPositionTicks;
|
||||
private String name;
|
||||
private String imagePath;
|
||||
private String imageDateModified;
|
||||
private String imageTag;
|
||||
}
|
||||
31
src/main/java/com/yutou/nas/Datas/Jellyfin/Episode.java
Normal file
31
src/main/java/com/yutou/nas/Datas/Jellyfin/Episode.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Episode {
|
||||
private long runTimeTicks;
|
||||
private String seriesID;
|
||||
private UserData userData;
|
||||
private String seasonName;
|
||||
private long parentIndexNumber;
|
||||
private String name;
|
||||
private String videoType;
|
||||
private String container;
|
||||
private String serverID;
|
||||
private String parentBackdropItemID;
|
||||
private String seriesName;
|
||||
private String parentLogoImageTag;
|
||||
private String mediaType;
|
||||
private String seasonID;
|
||||
private ImageBlurHashes imageBlurHashes;
|
||||
private String parentLogoItemID;
|
||||
private ImageTags imageTags;
|
||||
private String seriesPrimaryImageTag;
|
||||
private String type;
|
||||
private Object[] backdropImageTags;
|
||||
private String[] parentBackdropImageTags;
|
||||
private String id;
|
||||
private boolean isFolder;
|
||||
private String locationType;
|
||||
}
|
||||
78
src/main/java/com/yutou/nas/Datas/Jellyfin/EpisodeData.java
Normal file
78
src/main/java/com/yutou/nas/Datas/Jellyfin/EpisodeData.java
Normal file
@@ -0,0 +1,78 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yutou.nas.utils.AppTools;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
||||
@Data
|
||||
public class EpisodeData {
|
||||
private String name;
|
||||
private String serverID;
|
||||
private String id;
|
||||
private String etag;
|
||||
private String dateCreated;
|
||||
private boolean canDelete;
|
||||
private boolean canDownload;
|
||||
private String container;
|
||||
private String sortName;
|
||||
private Object[] externalUrls;
|
||||
private MediaSource[] mediaSources;
|
||||
private String path;
|
||||
private boolean enableMediaSourceDisplay;
|
||||
private Object channelID;
|
||||
private Object[] taglines;
|
||||
private Object[] genres;
|
||||
private long runTimeTicks;
|
||||
private String playAccess;
|
||||
private long parentIndexNumber;
|
||||
private Object[] remoteTrailers;
|
||||
private JSONObject providerIDS;
|
||||
private boolean isHD;
|
||||
private boolean isFolder;
|
||||
private String parentID;
|
||||
private String type;
|
||||
private Object[] people;
|
||||
private Object[] studios;
|
||||
private Object[] genreItems;
|
||||
private String parentLogoItemID;
|
||||
private String parentBackdropItemID;
|
||||
private String[] parentBackdropImageTags;
|
||||
private long localTrailerCount;
|
||||
private UserData userData;
|
||||
private String seriesName;
|
||||
private String seriesID;
|
||||
private String seasonID;
|
||||
private long specialFeatureCount;
|
||||
private String displayPreferencesID;
|
||||
private Object[] tags;
|
||||
private double primaryImageAspectRatio;
|
||||
private String seriesPrimaryImageTag;
|
||||
private String seasonName;
|
||||
private MediaStream[] mediaStreams;
|
||||
private String videoType;
|
||||
private ImageTags imageTags;
|
||||
private Object[] backdropImageTags;
|
||||
private Object[] screenshotImageTags;
|
||||
private String parentLogoImageTag;
|
||||
private ImageBlurHashes imageBlurHashes;
|
||||
private String seriesStudio;
|
||||
private Chapter[] chapters;
|
||||
private String locationType;
|
||||
private String mediaType;
|
||||
private Object[] lockedFields;
|
||||
private boolean lockData;
|
||||
private long width;
|
||||
private long height;
|
||||
|
||||
public String getPath() {
|
||||
if (AppTools.isRuntimeSystemOfWindow()) {
|
||||
if (path != null) {
|
||||
path = path.replace("/media/yutou/disk_lvm/public/download/anim/", "Z:\\download\\anim\\").replace("/", File.separator);
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class ImageBlurHashes {
|
||||
private Map<String,String> primary;
|
||||
private Map<String,String> backdrop;
|
||||
private Map<String,String> logo;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageTags {
|
||||
private String primary;
|
||||
}
|
||||
57
src/main/java/com/yutou/nas/Datas/Jellyfin/ItemInfo.java
Normal file
57
src/main/java/com/yutou/nas/Datas/Jellyfin/ItemInfo.java
Normal file
@@ -0,0 +1,57 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import com.yutou.nas.utils.AppTools;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Data
|
||||
public class ItemInfo {
|
||||
private String name;
|
||||
private String serverID;
|
||||
private String id;
|
||||
private String etag;
|
||||
private String dateCreated;
|
||||
private String dateLastMediaAdded;
|
||||
private boolean canDelete;
|
||||
private boolean canDownload;
|
||||
private String sortName;
|
||||
private Object[] externalUrls;
|
||||
private String path;
|
||||
private boolean enableMediaSourceDisplay;
|
||||
private Object channelID;
|
||||
private Object[] taglines;
|
||||
private Object[] genres;
|
||||
private String playAccess;
|
||||
private Object[] remoteTrailers;
|
||||
private boolean isFolder;
|
||||
private String parentID;
|
||||
private String type;
|
||||
private Object[] people;
|
||||
private Object[] studios;
|
||||
private Object[] genreItems;
|
||||
private long localTrailerCount;
|
||||
private UserData userData;
|
||||
private long recursiveItemCount;
|
||||
private long childCount;
|
||||
private long specialFeatureCount;
|
||||
private String displayPreferencesID;
|
||||
private Object[] airDays;
|
||||
private Object[] tags;
|
||||
private double primaryImageAspectRatio;
|
||||
private ImageTags imageTags;
|
||||
private String[] backdropImageTags;
|
||||
private Object[] screenshotImageTags;
|
||||
private String locationType;
|
||||
private Object[] lockedFields;
|
||||
private boolean lockData;
|
||||
|
||||
public String getPath() {
|
||||
if (AppTools.isRuntimeSystemOfWindow()) {
|
||||
if (path != null) {
|
||||
path = path.replace("/media/yutou/disk_lvm/public/download/anim/", "Z:\\download\\anim\\").replace("/", File.separator);
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
}
|
||||
24
src/main/java/com/yutou/nas/Datas/Jellyfin/LibsItem.java
Normal file
24
src/main/java/com/yutou/nas/Datas/Jellyfin/LibsItem.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import com.yutou.nas.utils.JellyfinAPIManager;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class LibsItem {
|
||||
private String name;
|
||||
private String serverID;
|
||||
private String id;
|
||||
private Object channelID;
|
||||
private boolean isFolder;
|
||||
private String type;
|
||||
private UserData userData;
|
||||
private String collectionType;
|
||||
private ImageTags imageTags;
|
||||
private List<Object> backdropImageTags;
|
||||
private Object imageBlurHashes;
|
||||
private String locationType;
|
||||
private ItemInfo info;
|
||||
|
||||
}
|
||||
37
src/main/java/com/yutou/nas/Datas/Jellyfin/MediaSource.java
Normal file
37
src/main/java/com/yutou/nas/Datas/Jellyfin/MediaSource.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MediaSource {
|
||||
private String protocol;
|
||||
private String id;
|
||||
private String path;
|
||||
private String type;
|
||||
private String container;
|
||||
private long size;
|
||||
private String name;
|
||||
private boolean isRemote;
|
||||
private String eTag;
|
||||
private long runTimeTicks;
|
||||
private boolean readAtNativeFramerate;
|
||||
private boolean ignoreDts;
|
||||
private boolean ignoreIndex;
|
||||
private boolean genPtsInput;
|
||||
private boolean supportsTranscoding;
|
||||
private boolean supportsDirectStream;
|
||||
private boolean supportsDirectPlay;
|
||||
private boolean isInfiniteStream;
|
||||
private boolean requiresOpening;
|
||||
private boolean requiresClosing;
|
||||
private boolean requiresLooping;
|
||||
private boolean supportsProbing;
|
||||
private String videoType;
|
||||
private MediaStream[] mediaStreams;
|
||||
private Object[] mediaAttachments;
|
||||
private Object[] formats;
|
||||
private long bitrate;
|
||||
private JSONObject requiredHTTPHeaders;
|
||||
private long defaultAudioStreamIndex;
|
||||
}
|
||||
38
src/main/java/com/yutou/nas/Datas/Jellyfin/MediaStream.java
Normal file
38
src/main/java/com/yutou/nas/Datas/Jellyfin/MediaStream.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MediaStream {
|
||||
private String codec;
|
||||
private String codecTag;
|
||||
private String language;
|
||||
private String timeBase;
|
||||
private String codecTimeBase;
|
||||
private String videoRange;
|
||||
private String displayTitle;
|
||||
private String nalLengthSize;
|
||||
private boolean isInterlaced;
|
||||
private Boolean isAVC;
|
||||
private long bitRate;
|
||||
private Long bitDepth;
|
||||
private Long refFrames;
|
||||
private boolean isDefault;
|
||||
private boolean isForced;
|
||||
private Long height;
|
||||
private Long width;
|
||||
private Double averageFrameRate;
|
||||
private Double realFrameRate;
|
||||
private String profile;
|
||||
private String type;
|
||||
private String aspectRatio;
|
||||
private long index;
|
||||
private boolean isExternal;
|
||||
private boolean isTextSubtitleStream;
|
||||
private boolean supportsExternalStream;
|
||||
private String pixelFormat;
|
||||
private long level;
|
||||
private String channelLayout;
|
||||
private Long channels;
|
||||
private Long sampleRate;
|
||||
}
|
||||
12
src/main/java/com/yutou/nas/Datas/Jellyfin/UserData.java
Normal file
12
src/main/java/com/yutou/nas/Datas/Jellyfin/UserData.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.yutou.nas.Datas.Jellyfin;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserData {
|
||||
private long playbackPositionTicks;
|
||||
private long playCount;
|
||||
private boolean isFavorite;
|
||||
private boolean played;
|
||||
private String key;
|
||||
}
|
||||
Reference in New Issue
Block a user