From e20fc79c6592ad01fc90403caec6ed4515491c16 Mon Sep 17 00:00:00 2001 From: xeviff Date: Sat, 6 Jan 2024 16:08:45 +0100 Subject: [PATCH] old changes I don't remember --- .../config/CommonConfigFileLoader.java | 1 + .../config/LocalEnvironmentManager.java | 6 +- src/main/java/tv/mangrana/jobs/JobFile.java | 73 - .../java/tv/mangrana/jobs/JobFileManager.java | 91 - .../tv/mangrana/jobs/JobsFileStorage.java | 113 - .../radarr/api/schema/movie/AddOptions.java | 93 + .../radarr/api/schema/movie/Movie2Add.java | 2181 +++++++++++++++++ .../radarr/api/schema/movie/MovieFile.java | 239 ++ .../java/tv/mangrana/utils/PathUtils.java | 28 +- 9 files changed, 2518 insertions(+), 307 deletions(-) delete mode 100644 src/main/java/tv/mangrana/jobs/JobFile.java delete mode 100644 src/main/java/tv/mangrana/jobs/JobFileManager.java delete mode 100644 src/main/java/tv/mangrana/jobs/JobsFileStorage.java create mode 100644 src/main/java/tv/mangrana/radarr/api/schema/movie/AddOptions.java create mode 100644 src/main/java/tv/mangrana/radarr/api/schema/movie/Movie2Add.java create mode 100644 src/main/java/tv/mangrana/radarr/api/schema/movie/MovieFile.java diff --git a/src/main/java/tv/mangrana/config/CommonConfigFileLoader.java b/src/main/java/tv/mangrana/config/CommonConfigFileLoader.java index efbddb4..65b8206 100644 --- a/src/main/java/tv/mangrana/config/CommonConfigFileLoader.java +++ b/src/main/java/tv/mangrana/config/CommonConfigFileLoader.java @@ -11,6 +11,7 @@ public abstract class CommonConfigFileLoader

> { private static final String CONFIG_FOLDER = "/config"; public enum CommonProjectConfiguration { + FILEBOT_PATHS_STARTER, SONARR_API_HOST, SONARR_API_KEY, SONARR_PATHS_STARTER, diff --git a/src/main/java/tv/mangrana/config/LocalEnvironmentManager.java b/src/main/java/tv/mangrana/config/LocalEnvironmentManager.java index 60430cf..eedd44b 100644 --- a/src/main/java/tv/mangrana/config/LocalEnvironmentManager.java +++ b/src/main/java/tv/mangrana/config/LocalEnvironmentManager.java @@ -5,11 +5,11 @@ import org.apache.commons.lang.StringUtils; public class LocalEnvironmentManager { - public enum LocalMode {NAS, PC, CONTABO} + public enum LocalMode {NAS, PC} static LocalMode mode; static { - mode = LocalMode.CONTABO; + mode = LocalMode.NAS; } public static final String PROJECT_ROOT = System.getProperty("user.dir"); @@ -35,7 +35,7 @@ public class LocalEnvironmentManager { } public static boolean isWorkingWithProdFiles () { - return mode.equals(LocalMode.CONTABO) || !isLocal(); + return mode.equals(LocalMode.NAS) || !isLocal(); } public static LocalMode getLocalMode() { diff --git a/src/main/java/tv/mangrana/jobs/JobFile.java b/src/main/java/tv/mangrana/jobs/JobFile.java deleted file mode 100644 index 761e8a1..0000000 --- a/src/main/java/tv/mangrana/jobs/JobFile.java +++ /dev/null @@ -1,73 +0,0 @@ -package tv.mangrana.jobs; - -import tv.mangrana.config.LocalEnvironmentManager; -import tv.mangrana.exception.JobFileNotMovedException; - -import java.io.File; - -import static tv.mangrana.jobs.JobFile.JobLocation.*; -import static tv.mangrana.utils.PathUtils.shiftFileFolder; - -public abstract class JobFile { - - public enum JobLocation { - PATH_TODO("to_do"), - PATH_DOING("doing"), - PATH_DONE("done"); - private final String folderName; - private static final String LOCAL_WORKING_PATH = "local_test"; - JobLocation(String folderName) { - this.folderName=folderName; - } - public String getFolderName(){ - return getLocalNameIfNecessary(this); - } - private String getLocalNameIfNecessary(JobLocation location) { - if (LocalEnvironmentManager.isLocal() && !LocalEnvironmentManager.isWorkingWithProdFiles() - && (location.equals(JobLocation.PATH_TODO) || location.equals(JobLocation.PATH_DOING))) { - return LOCAL_WORKING_PATH; - } - return location.folderName; - } - } - - protected JobFile(File jobFile) { - this.jobFile = jobFile; - } - - public abstract String getInfo(E key); - - public abstract boolean hasNoInfo(); - - protected File jobFile; - - public File getFile () { - return jobFile; - } - - - public void markDoing() throws JobFileNotMovedException { - if (jobFile.getAbsolutePath().contains(PATH_TODO.getFolderName())) { - jobFile = shiftFileFolder(jobFile, PATH_TODO, PATH_DOING); - } - } - - public void markDone() throws JobFileNotMovedException { - jobFile = shiftFileFolder(jobFile, PATH_DOING, PATH_DONE); - } - - public void forceMarkDone() throws JobFileNotMovedException { - if (jobFile.getAbsolutePath().contains(PATH_DOING.getFolderName())) { - jobFile = shiftFileFolder(jobFile, PATH_DOING, PATH_DONE); - } else if (jobFile.getAbsolutePath().contains(PATH_TODO.getFolderName())) { - jobFile = shiftFileFolder(jobFile, PATH_TODO, PATH_DONE); - } - } - - public void driveBack() throws JobFileNotMovedException { - if (jobFile.getAbsolutePath().contains(PATH_DOING.getFolderName())) { - jobFile = shiftFileFolder(jobFile, PATH_DOING, PATH_TODO); - } - } - -} diff --git a/src/main/java/tv/mangrana/jobs/JobFileManager.java b/src/main/java/tv/mangrana/jobs/JobFileManager.java deleted file mode 100644 index ae05bac..0000000 --- a/src/main/java/tv/mangrana/jobs/JobFileManager.java +++ /dev/null @@ -1,91 +0,0 @@ -package tv.mangrana.jobs; - -import tv.mangrana.config.LocalEnvironmentManager; -import tv.mangrana.exception.JobFileNotMovedException; -import tv.mangrana.utils.PathUtils; - -import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import static tv.mangrana.config.LocalEnvironmentManager.LocalMode.CONTABO; -import static tv.mangrana.config.LocalEnvironmentManager.getLocalMode; -import static tv.mangrana.jobs.JobFile.JobLocation; -import static tv.mangrana.jobs.JobFile.JobLocation.PATH_DOING; -import static tv.mangrana.jobs.JobFile.JobLocation.PATH_TODO; -import static tv.mangrana.utils.PathUtils.addSubElement; -import static tv.mangrana.utils.PathUtils.rootFolder; - -public class JobFileManager { - - private JobFileManager(){} - - static final String JOBS_FOLDER = "jobs"; - static final String CONTABO_JOBS_FOLDER = "contabo_jobs"; - - static final String RESUME_FILE = "jobs.txt"; - - public enum JobFileType { - SONARR_JOBS("sonarr"), - RADARR_JOBS("radarr"), - TRANSMISSION_JOBS("transm"); - - private final String folderName; - JobFileType(String folderName) { - this.folderName=folderName; - } - public String getFolderName(){ - return folderName; - } - } - public static void moveUncompletedJobsToRetry(JobFileType appType) { - File jobsDir = new File(getAbsolutePath(PATH_DOING, appType)); - File[] files = jobsDir.listFiles(); - List uncompleted = files!=null - ? Arrays.asList(files) - : Collections.emptyList(); - uncompleted.forEach(file -> { - try { - PathUtils.shiftFileFolder(file, PATH_DOING, PATH_TODO); - } catch (JobFileNotMovedException e) { - e.printStackTrace(); - } - }); - } - - public static List retrieveJobFiles(String fileIdentifierRegex, JobFileType appType) { - File jobsDir = new File(getAbsolutePath(PATH_TODO, appType)); - File[] files = jobsDir.listFiles(); - return files==null - ? Collections.emptyList() - : Arrays.stream(files) - .filter(file -> file.getName().matches(fileIdentifierRegex)) - .sorted(PathUtils::compareFileCreationDate) - .collect(Collectors.toList()); - } - - public static String getAbsolutePath(JobLocation location, JobFileType appType) { - String jobsFolder = getJobsFolder(); - String appFolderPath = addSubElement(jobsFolder, appType.getFolderName()); - return addSubElement(appFolderPath, location.getFolderName()); - } - - public static String getResumeFile() { - String jobsFolder = getJobsFolder(); - return addSubElement(jobsFolder, RESUME_FILE); - } - - public static String getJobsFolder() { - return LocalEnvironmentManager.isLocal() - ? addSubElement(rootFolder(LocalEnvironmentManager.getLocalRootPath()), getLocalJobsFolderName()) - : rootFolder(JOBS_FOLDER); - } - - static String getLocalJobsFolderName() { - return CONTABO.equals(getLocalMode()) - ? CONTABO_JOBS_FOLDER - : JOBS_FOLDER; - } -} diff --git a/src/main/java/tv/mangrana/jobs/JobsFileStorage.java b/src/main/java/tv/mangrana/jobs/JobsFileStorage.java deleted file mode 100644 index 579b4c2..0000000 --- a/src/main/java/tv/mangrana/jobs/JobsFileStorage.java +++ /dev/null @@ -1,113 +0,0 @@ -package tv.mangrana.jobs; - -import org.apache.commons.lang.StringUtils; -import tv.mangrana.exception.IncorrectWorkingReferencesException; - -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.text.MessageFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - -import static tv.mangrana.utils.Output.DATE_TIME_FORMAT; - -public class JobsFileStorage { - - static final String COMPLETED_DATE = "done"; - static final String JOB_TYPE = "type"; - static final String HASH = "hash"; - static final String ARR_ID = "arrId"; - static final String INTERNET_DB_ID = "iId"; - static final String ELEMENT_NAME = "element"; - - public final String JOB_LINE_FORMAT; - private static final String RESUME_FILE = JobFileManager.getResumeFile(); - - private final List> linesInfo; - - public JobsFileStorage() throws IncorrectWorkingReferencesException { - String preFormat = "{COMPLETED_DATE}: {5} | {JOB_TYPE}: {0} | {HASH}: {1} | {ARR_ID}: {2} | {INTERNET_DB_ID}: {3} | {ELEMENT_NAME}: {4}"; - JOB_LINE_FORMAT = preFormat - .replace("{COMPLETED_DATE}", COMPLETED_DATE) - .replace("{JOB_TYPE}", JOB_TYPE) - .replace("{HASH}", HASH) - .replace("{ARR_ID}", ARR_ID) - .replace("{INTERNET_DB_ID}", INTERNET_DB_ID) - .replace("{ELEMENT_NAME}", ELEMENT_NAME); - - linesInfo = getInfoFromFile(); - } - - private List> getInfoFromFile() throws IncorrectWorkingReferencesException { - List> newLinesInfo = new ArrayList<>(); - try (Stream linesStream = Files.lines(Paths.get(RESUME_FILE))) { - linesStream - .filter(probableLine -> StringUtils.isNotEmpty(probableLine) && probableLine.contains("|")) - .forEach(line -> newLinesInfo.add(line2Map(line))); - } catch (IOException e) { - e.printStackTrace(); - throw new IncorrectWorkingReferencesException("A problem occurred when trying to get jobs file info"); - } - return newLinesInfo; - } - - private Map line2Map(String line) { - Map mappedLine = new HashMap<>(); - String[] infoList = line.split("\\|"); - for (String elementInfo : infoList) { - if (!elementInfo.trim().startsWith(COMPLETED_DATE)) { - String[] fieldValue = elementInfo.split(":"); - String field = fieldValue[0].trim(); - String value = fieldValue[1].trim(); - mappedLine.put(field, value); - } - } - return mappedLine; - } - - public void persistCompleted(String type, String downloadId, int arrId, int iId, String element, LocalDateTime time){ - String jobLine = MessageFormat.format(JOB_LINE_FORMAT, - type, - downloadId, - fixLength(String.valueOf(arrId)), - fixLength(String.valueOf(iId)), - element, - formatTime(time)); - addLine(jobLine); - } - - String fixLength(String text) { - return StringUtils.rightPad(text, 7); - } - - void addLine(String jobLine) { - try (FileWriter fw = new FileWriter(RESUME_FILE, true); - PrintWriter pw = new PrintWriter(fw)) { - - pw.println(jobLine); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public String getIIDByElement(String element) { - return linesInfo.stream() - .filter(mappedLine -> element.equals(mappedLine.get(ELEMENT_NAME))) - .findAny() - .map(found -> found.get(INTERNET_DB_ID)) - .orElse(null); - } - - String formatTime(LocalDateTime time) { - return time.format(DateTimeFormatter.ofPattern(DATE_TIME_FORMAT)); - } - -} diff --git a/src/main/java/tv/mangrana/radarr/api/schema/movie/AddOptions.java b/src/main/java/tv/mangrana/radarr/api/schema/movie/AddOptions.java new file mode 100644 index 0000000..d51f6a5 --- /dev/null +++ b/src/main/java/tv/mangrana/radarr/api/schema/movie/AddOptions.java @@ -0,0 +1,93 @@ +package tv.mangrana.radarr.api.schema.movie; + +import com.fasterxml.jackson.annotation.*; + +import javax.annotation.Generated; +import java.util.LinkedHashMap; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "ignoreEpisodesWithFiles", + "ignoreEpisodesWithoutFiles", + "monitor", + "searchForMovie", + "addMethod" +}) +@Generated("jsonschema2pojo") +public class AddOptions { + + @JsonProperty("ignoreEpisodesWithFiles") + private Boolean ignoreEpisodesWithFiles; + @JsonProperty("ignoreEpisodesWithoutFiles") + private Boolean ignoreEpisodesWithoutFiles; + @JsonProperty("monitor") + private String monitor; + @JsonProperty("searchForMovie") + private Boolean searchForMovie; + @JsonProperty("addMethod") + private String addMethod; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("ignoreEpisodesWithFiles") + public Boolean getIgnoreEpisodesWithFiles() { + return ignoreEpisodesWithFiles; + } + + @JsonProperty("ignoreEpisodesWithFiles") + public void setIgnoreEpisodesWithFiles(Boolean ignoreEpisodesWithFiles) { + this.ignoreEpisodesWithFiles = ignoreEpisodesWithFiles; + } + + @JsonProperty("ignoreEpisodesWithoutFiles") + public Boolean getIgnoreEpisodesWithoutFiles() { + return ignoreEpisodesWithoutFiles; + } + + @JsonProperty("ignoreEpisodesWithoutFiles") + public void setIgnoreEpisodesWithoutFiles(Boolean ignoreEpisodesWithoutFiles) { + this.ignoreEpisodesWithoutFiles = ignoreEpisodesWithoutFiles; + } + + @JsonProperty("monitor") + public String getMonitor() { + return monitor; + } + + @JsonProperty("monitor") + public void setMonitor(String monitor) { + this.monitor = monitor; + } + + @JsonProperty("searchForMovie") + public Boolean getSearchForMovie() { + return searchForMovie; + } + + @JsonProperty("searchForMovie") + public void setSearchForMovie(Boolean searchForMovie) { + this.searchForMovie = searchForMovie; + } + + @JsonProperty("addMethod") + public String getAddMethod() { + return addMethod; + } + + @JsonProperty("addMethod") + public void setAddMethod(String addMethod) { + this.addMethod = addMethod; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/src/main/java/tv/mangrana/radarr/api/schema/movie/Movie2Add.java b/src/main/java/tv/mangrana/radarr/api/schema/movie/Movie2Add.java new file mode 100644 index 0000000..8fc4ebf --- /dev/null +++ b/src/main/java/tv/mangrana/radarr/api/schema/movie/Movie2Add.java @@ -0,0 +1,2181 @@ +package tv.mangrana.radarr.api.schema.movie; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "title", + "originalTitle", + "originalLanguage", + "alternateTitles", + "secondaryYear", + "secondaryYearSourceId", + "sortTitle", + "sizeOnDisk", + "status", + "overview", + "inCinemas", + "physicalRelease", + "digitalRelease", + "physicalReleaseNote", + "images", + "website", + "remotePoster", + "year", + "hasFile", + "youTubeTrailerId", + "studio", + "path", + "qualityProfileId", + "monitored", + "minimumAvailability", + "isAvailable", + "folderName", + "runtime", + "cleanTitle", + "imdbId", + "tmdbId", + "titleSlug", + "rootFolderPath", + "folder", + "certification", + "genres", + "tags", + "added", + "addOptions", + "ratings", + "movieFile", + "collection", + "popularity" +}) +@Generated("jsonschema2pojo") +public class Movie2Add { + + @JsonProperty("id") + private Integer id; + @JsonProperty("title") + private String title; + @JsonProperty("originalTitle") + private String originalTitle; + @JsonProperty("originalLanguage") + private OriginalLanguage originalLanguage; + @JsonProperty("alternateTitles") + private List alternateTitles; + @JsonProperty("secondaryYear") + private Integer secondaryYear; + @JsonProperty("secondaryYearSourceId") + private Integer secondaryYearSourceId; + @JsonProperty("sortTitle") + private String sortTitle; + @JsonProperty("sizeOnDisk") + private Integer sizeOnDisk; + @JsonProperty("status") + private String status; + @JsonProperty("overview") + private String overview; + @JsonProperty("inCinemas") + private String inCinemas; + @JsonProperty("physicalRelease") + private String physicalRelease; + @JsonProperty("digitalRelease") + private String digitalRelease; + @JsonProperty("physicalReleaseNote") + private String physicalReleaseNote; + @JsonProperty("images") + private List images; + @JsonProperty("website") + private String website; + @JsonProperty("remotePoster") + private String remotePoster; + @JsonProperty("year") + private Integer year; + @JsonProperty("hasFile") + private Boolean hasFile; + @JsonProperty("youTubeTrailerId") + private String youTubeTrailerId; + @JsonProperty("studio") + private String studio; + @JsonProperty("path") + private String path; + @JsonProperty("qualityProfileId") + private Integer qualityProfileId; + @JsonProperty("monitored") + private Boolean monitored; + @JsonProperty("minimumAvailability") + private String minimumAvailability; + @JsonProperty("isAvailable") + private Boolean isAvailable; + @JsonProperty("folderName") + private String folderName; + @JsonProperty("runtime") + private Integer runtime; + @JsonProperty("cleanTitle") + private String cleanTitle; + @JsonProperty("imdbId") + private String imdbId; + @JsonProperty("tmdbId") + private Integer tmdbId; + @JsonProperty("titleSlug") + private String titleSlug; + @JsonProperty("rootFolderPath") + private String rootFolderPath; + @JsonProperty("folder") + private String folder; + @JsonProperty("certification") + private String certification; + @JsonProperty("genres") + private List genres; + @JsonProperty("tags") + private List tags; + @JsonProperty("added") + private String added; + @JsonProperty("addOptions") + private AddOptions addOptions; + @JsonProperty("ratings") + private Ratings ratings; + @JsonProperty("movieFile") + private MovieFile movieFile; + @JsonProperty("collection") + private Collection collection; + @JsonProperty("popularity") + private Integer popularity; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("title") + public String getTitle() { + return title; + } + + @JsonProperty("title") + public void setTitle(String title) { + this.title = title; + } + + @JsonProperty("originalTitle") + public String getOriginalTitle() { + return originalTitle; + } + + @JsonProperty("originalTitle") + public void setOriginalTitle(String originalTitle) { + this.originalTitle = originalTitle; + } + + @JsonProperty("originalLanguage") + public OriginalLanguage getOriginalLanguage() { + return originalLanguage; + } + + @JsonProperty("originalLanguage") + public void setOriginalLanguage(OriginalLanguage originalLanguage) { + this.originalLanguage = originalLanguage; + } + + @JsonProperty("alternateTitles") + public List getAlternateTitles() { + return alternateTitles; + } + + @JsonProperty("alternateTitles") + public void setAlternateTitles(List alternateTitles) { + this.alternateTitles = alternateTitles; + } + + @JsonProperty("secondaryYear") + public Integer getSecondaryYear() { + return secondaryYear; + } + + @JsonProperty("secondaryYear") + public void setSecondaryYear(Integer secondaryYear) { + this.secondaryYear = secondaryYear; + } + + @JsonProperty("secondaryYearSourceId") + public Integer getSecondaryYearSourceId() { + return secondaryYearSourceId; + } + + @JsonProperty("secondaryYearSourceId") + public void setSecondaryYearSourceId(Integer secondaryYearSourceId) { + this.secondaryYearSourceId = secondaryYearSourceId; + } + + @JsonProperty("sortTitle") + public String getSortTitle() { + return sortTitle; + } + + @JsonProperty("sortTitle") + public void setSortTitle(String sortTitle) { + this.sortTitle = sortTitle; + } + + @JsonProperty("sizeOnDisk") + public Integer getSizeOnDisk() { + return sizeOnDisk; + } + + @JsonProperty("sizeOnDisk") + public void setSizeOnDisk(Integer sizeOnDisk) { + this.sizeOnDisk = sizeOnDisk; + } + + @JsonProperty("status") + public String getStatus() { + return status; + } + + @JsonProperty("status") + public void setStatus(String status) { + this.status = status; + } + + @JsonProperty("overview") + public String getOverview() { + return overview; + } + + @JsonProperty("overview") + public void setOverview(String overview) { + this.overview = overview; + } + + @JsonProperty("inCinemas") + public String getInCinemas() { + return inCinemas; + } + + @JsonProperty("inCinemas") + public void setInCinemas(String inCinemas) { + this.inCinemas = inCinemas; + } + + @JsonProperty("physicalRelease") + public String getPhysicalRelease() { + return physicalRelease; + } + + @JsonProperty("physicalRelease") + public void setPhysicalRelease(String physicalRelease) { + this.physicalRelease = physicalRelease; + } + + @JsonProperty("digitalRelease") + public String getDigitalRelease() { + return digitalRelease; + } + + @JsonProperty("digitalRelease") + public void setDigitalRelease(String digitalRelease) { + this.digitalRelease = digitalRelease; + } + + @JsonProperty("physicalReleaseNote") + public String getPhysicalReleaseNote() { + return physicalReleaseNote; + } + + @JsonProperty("physicalReleaseNote") + public void setPhysicalReleaseNote(String physicalReleaseNote) { + this.physicalReleaseNote = physicalReleaseNote; + } + + @JsonProperty("images") + public List getImages() { + return images; + } + + @JsonProperty("images") + public void setImages(List images) { + this.images = images; + } + + @JsonProperty("website") + public String getWebsite() { + return website; + } + + @JsonProperty("website") + public void setWebsite(String website) { + this.website = website; + } + + @JsonProperty("remotePoster") + public String getRemotePoster() { + return remotePoster; + } + + @JsonProperty("remotePoster") + public void setRemotePoster(String remotePoster) { + this.remotePoster = remotePoster; + } + + @JsonProperty("year") + public Integer getYear() { + return year; + } + + @JsonProperty("year") + public void setYear(Integer year) { + this.year = year; + } + + @JsonProperty("hasFile") + public Boolean getHasFile() { + return hasFile; + } + + @JsonProperty("hasFile") + public void setHasFile(Boolean hasFile) { + this.hasFile = hasFile; + } + + @JsonProperty("youTubeTrailerId") + public String getYouTubeTrailerId() { + return youTubeTrailerId; + } + + @JsonProperty("youTubeTrailerId") + public void setYouTubeTrailerId(String youTubeTrailerId) { + this.youTubeTrailerId = youTubeTrailerId; + } + + @JsonProperty("studio") + public String getStudio() { + return studio; + } + + @JsonProperty("studio") + public void setStudio(String studio) { + this.studio = studio; + } + + @JsonProperty("path") + public String getPath() { + return path; + } + + @JsonProperty("path") + public void setPath(String path) { + this.path = path; + } + + @JsonProperty("qualityProfileId") + public Integer getQualityProfileId() { + return qualityProfileId; + } + + @JsonProperty("qualityProfileId") + public void setQualityProfileId(Integer qualityProfileId) { + this.qualityProfileId = qualityProfileId; + } + + @JsonProperty("monitored") + public Boolean getMonitored() { + return monitored; + } + + @JsonProperty("monitored") + public void setMonitored(Boolean monitored) { + this.monitored = monitored; + } + + @JsonProperty("minimumAvailability") + public String getMinimumAvailability() { + return minimumAvailability; + } + + @JsonProperty("minimumAvailability") + public void setMinimumAvailability(String minimumAvailability) { + this.minimumAvailability = minimumAvailability; + } + + @JsonProperty("isAvailable") + public Boolean getIsAvailable() { + return isAvailable; + } + + @JsonProperty("isAvailable") + public void setIsAvailable(Boolean isAvailable) { + this.isAvailable = isAvailable; + } + + @JsonProperty("folderName") + public String getFolderName() { + return folderName; + } + + @JsonProperty("folderName") + public void setFolderName(String folderName) { + this.folderName = folderName; + } + + @JsonProperty("runtime") + public Integer getRuntime() { + return runtime; + } + + @JsonProperty("runtime") + public void setRuntime(Integer runtime) { + this.runtime = runtime; + } + + @JsonProperty("cleanTitle") + public String getCleanTitle() { + return cleanTitle; + } + + @JsonProperty("cleanTitle") + public void setCleanTitle(String cleanTitle) { + this.cleanTitle = cleanTitle; + } + + @JsonProperty("imdbId") + public String getImdbId() { + return imdbId; + } + + @JsonProperty("imdbId") + public void setImdbId(String imdbId) { + this.imdbId = imdbId; + } + + @JsonProperty("tmdbId") + public Integer getTmdbId() { + return tmdbId; + } + + @JsonProperty("tmdbId") + public void setTmdbId(Integer tmdbId) { + this.tmdbId = tmdbId; + } + + @JsonProperty("titleSlug") + public String getTitleSlug() { + return titleSlug; + } + + @JsonProperty("titleSlug") + public void setTitleSlug(String titleSlug) { + this.titleSlug = titleSlug; + } + + @JsonProperty("rootFolderPath") + public String getRootFolderPath() { + return rootFolderPath; + } + + @JsonProperty("rootFolderPath") + public void setRootFolderPath(String rootFolderPath) { + this.rootFolderPath = rootFolderPath; + } + + @JsonProperty("folder") + public String getFolder() { + return folder; + } + + @JsonProperty("folder") + public void setFolder(String folder) { + this.folder = folder; + } + + @JsonProperty("certification") + public String getCertification() { + return certification; + } + + @JsonProperty("certification") + public void setCertification(String certification) { + this.certification = certification; + } + + @JsonProperty("genres") + public List getGenres() { + return genres; + } + + @JsonProperty("genres") + public void setGenres(List genres) { + this.genres = genres; + } + + @JsonProperty("tags") + public List getTags() { + return tags; + } + + @JsonProperty("tags") + public void setTags(List tags) { + this.tags = tags; + } + + @JsonProperty("added") + public String getAdded() { + return added; + } + + @JsonProperty("added") + public void setAdded(String added) { + this.added = added; + } + + @JsonProperty("addOptions") + public AddOptions getAddOptions() { + return addOptions; + } + + @JsonProperty("addOptions") + public void setAddOptions(AddOptions addOptions) { + this.addOptions = addOptions; + } + + @JsonProperty("ratings") + public Ratings getRatings() { + return ratings; + } + + @JsonProperty("ratings") + public void setRatings(Ratings ratings) { + this.ratings = ratings; + } + + @JsonProperty("movieFile") + public MovieFile getMovieFile() { + return movieFile; + } + + @JsonProperty("movieFile") + public void setMovieFile(MovieFile movieFile) { + this.movieFile = movieFile; + } + + @JsonProperty("collection") + public Collection getCollection() { + return collection; + } + + @JsonProperty("collection") + public void setCollection(Collection collection) { + this.collection = collection; + } + + @JsonProperty("popularity") + public Integer getPopularity() { + return popularity; + } + + @JsonProperty("popularity") + public void setPopularity(Integer popularity) { + this.popularity = popularity; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "title", + "cleanTitle", + "sortTitle", + "tmdbId", + "overview", + "monitored", + "qualityProfileId", + "rootFolderPath", + "searchOnAdd", + "minimumAvailability", + "lastInfoSync", + "images", + "added", + "movies" +}) +@Generated("jsonschema2pojo") + class Collection { + + @JsonProperty("id") + private Integer id; + @JsonProperty("title") + private String title; + @JsonProperty("cleanTitle") + private String cleanTitle; + @JsonProperty("sortTitle") + private String sortTitle; + @JsonProperty("tmdbId") + private Integer tmdbId; + @JsonProperty("overview") + private String overview; + @JsonProperty("monitored") + private Boolean monitored; + @JsonProperty("qualityProfileId") + private Integer qualityProfileId; + @JsonProperty("rootFolderPath") + private String rootFolderPath; + @JsonProperty("searchOnAdd") + private Boolean searchOnAdd; + @JsonProperty("minimumAvailability") + private String minimumAvailability; + @JsonProperty("lastInfoSync") + private String lastInfoSync; + @JsonProperty("images") + private List images; + @JsonProperty("added") + private String added; + @JsonProperty("movies") + private List movies; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("title") + public String getTitle() { + return title; + } + + @JsonProperty("title") + public void setTitle(String title) { + this.title = title; + } + + @JsonProperty("cleanTitle") + public String getCleanTitle() { + return cleanTitle; + } + + @JsonProperty("cleanTitle") + public void setCleanTitle(String cleanTitle) { + this.cleanTitle = cleanTitle; + } + + @JsonProperty("sortTitle") + public String getSortTitle() { + return sortTitle; + } + + @JsonProperty("sortTitle") + public void setSortTitle(String sortTitle) { + this.sortTitle = sortTitle; + } + + @JsonProperty("tmdbId") + public Integer getTmdbId() { + return tmdbId; + } + + @JsonProperty("tmdbId") + public void setTmdbId(Integer tmdbId) { + this.tmdbId = tmdbId; + } + + @JsonProperty("overview") + public String getOverview() { + return overview; + } + + @JsonProperty("overview") + public void setOverview(String overview) { + this.overview = overview; + } + + @JsonProperty("monitored") + public Boolean getMonitored() { + return monitored; + } + + @JsonProperty("monitored") + public void setMonitored(Boolean monitored) { + this.monitored = monitored; + } + + @JsonProperty("qualityProfileId") + public Integer getQualityProfileId() { + return qualityProfileId; + } + + @JsonProperty("qualityProfileId") + public void setQualityProfileId(Integer qualityProfileId) { + this.qualityProfileId = qualityProfileId; + } + + @JsonProperty("rootFolderPath") + public String getRootFolderPath() { + return rootFolderPath; + } + + @JsonProperty("rootFolderPath") + public void setRootFolderPath(String rootFolderPath) { + this.rootFolderPath = rootFolderPath; + } + + @JsonProperty("searchOnAdd") + public Boolean getSearchOnAdd() { + return searchOnAdd; + } + + @JsonProperty("searchOnAdd") + public void setSearchOnAdd(Boolean searchOnAdd) { + this.searchOnAdd = searchOnAdd; + } + + @JsonProperty("minimumAvailability") + public String getMinimumAvailability() { + return minimumAvailability; + } + + @JsonProperty("minimumAvailability") + public void setMinimumAvailability(String minimumAvailability) { + this.minimumAvailability = minimumAvailability; + } + + @JsonProperty("lastInfoSync") + public String getLastInfoSync() { + return lastInfoSync; + } + + @JsonProperty("lastInfoSync") + public void setLastInfoSync(String lastInfoSync) { + this.lastInfoSync = lastInfoSync; + } + + @JsonProperty("images") + public List getImages() { + return images; + } + + @JsonProperty("images") + public void setImages(List images) { + this.images = images; + } + + @JsonProperty("added") + public String getAdded() { + return added; + } + + @JsonProperty("added") + public void setAdded(String added) { + this.added = added; + } + + @JsonProperty("movies") + public List getMovies() { + return movies; + } + + @JsonProperty("movies") + public void setMovies(List movies) { + this.movies = movies; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "name", + "includeCustomFormatWhenRenaming", + "specifications" +}) +@Generated("jsonschema2pojo") + class CustomFormat { + + @JsonProperty("id") + private Integer id; + @JsonProperty("name") + private String name; + @JsonProperty("includeCustomFormatWhenRenaming") + private Boolean includeCustomFormatWhenRenaming; + @JsonProperty("specifications") + private List specifications; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("name") + public String getName() { + return name; + } + + @JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + @JsonProperty("includeCustomFormatWhenRenaming") + public Boolean getIncludeCustomFormatWhenRenaming() { + return includeCustomFormatWhenRenaming; + } + + @JsonProperty("includeCustomFormatWhenRenaming") + public void setIncludeCustomFormatWhenRenaming(Boolean includeCustomFormatWhenRenaming) { + this.includeCustomFormatWhenRenaming = includeCustomFormatWhenRenaming; + } + + @JsonProperty("specifications") + public List getSpecifications() { + return specifications; + } + + @JsonProperty("specifications") + public void setSpecifications(List specifications) { + this.specifications = specifications; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "order", + "name", + "label", + "unit", + "helpText", + "helpLink", + "value", + "type", + "advanced", + "selectOptions", + "selectOptionsProviderAction", + "section", + "hidden", + "placeholder" +}) +@Generated("jsonschema2pojo") + class Field { + + @JsonProperty("order") + private Integer order; + @JsonProperty("name") + private String name; + @JsonProperty("label") + private String label; + @JsonProperty("unit") + private String unit; + @JsonProperty("helpText") + private String helpText; + @JsonProperty("helpLink") + private String helpLink; + @JsonProperty("value") + private String value; + @JsonProperty("type") + private String type; + @JsonProperty("advanced") + private Boolean advanced; + @JsonProperty("selectOptions") + private List selectOptions; + @JsonProperty("selectOptionsProviderAction") + private String selectOptionsProviderAction; + @JsonProperty("section") + private String section; + @JsonProperty("hidden") + private String hidden; + @JsonProperty("placeholder") + private String placeholder; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("order") + public Integer getOrder() { + return order; + } + + @JsonProperty("order") + public void setOrder(Integer order) { + this.order = order; + } + + @JsonProperty("name") + public String getName() { + return name; + } + + @JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + @JsonProperty("label") + public String getLabel() { + return label; + } + + @JsonProperty("label") + public void setLabel(String label) { + this.label = label; + } + + @JsonProperty("unit") + public String getUnit() { + return unit; + } + + @JsonProperty("unit") + public void setUnit(String unit) { + this.unit = unit; + } + + @JsonProperty("helpText") + public String getHelpText() { + return helpText; + } + + @JsonProperty("helpText") + public void setHelpText(String helpText) { + this.helpText = helpText; + } + + @JsonProperty("helpLink") + public String getHelpLink() { + return helpLink; + } + + @JsonProperty("helpLink") + public void setHelpLink(String helpLink) { + this.helpLink = helpLink; + } + + @JsonProperty("value") + public String getValue() { + return value; + } + + @JsonProperty("value") + public void setValue(String value) { + this.value = value; + } + + @JsonProperty("type") + public String getType() { + return type; + } + + @JsonProperty("type") + public void setType(String type) { + this.type = type; + } + + @JsonProperty("advanced") + public Boolean getAdvanced() { + return advanced; + } + + @JsonProperty("advanced") + public void setAdvanced(Boolean advanced) { + this.advanced = advanced; + } + + @JsonProperty("selectOptions") + public List getSelectOptions() { + return selectOptions; + } + + @JsonProperty("selectOptions") + public void setSelectOptions(List selectOptions) { + this.selectOptions = selectOptions; + } + + @JsonProperty("selectOptionsProviderAction") + public String getSelectOptionsProviderAction() { + return selectOptionsProviderAction; + } + + @JsonProperty("selectOptionsProviderAction") + public void setSelectOptionsProviderAction(String selectOptionsProviderAction) { + this.selectOptionsProviderAction = selectOptionsProviderAction; + } + + @JsonProperty("section") + public String getSection() { + return section; + } + + @JsonProperty("section") + public void setSection(String section) { + this.section = section; + } + + @JsonProperty("hidden") + public String getHidden() { + return hidden; + } + + @JsonProperty("hidden") + public void setHidden(String hidden) { + this.hidden = hidden; + } + + @JsonProperty("placeholder") + public String getPlaceholder() { + return placeholder; + } + + @JsonProperty("placeholder") + public void setPlaceholder(String placeholder) { + this.placeholder = placeholder; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "audioBitrate", + "audioChannels", + "audioCodec", + "audioLanguages", + "audioStreamCount", + "videoBitDepth", + "videoBitrate", + "videoCodec", + "videoDynamicRangeType", + "videoFps", + "resolution", + "runTime", + "scanType", + "subtitles" +}) +@Generated("jsonschema2pojo") + class MediaInfo { + + @JsonProperty("id") + private Integer id; + @JsonProperty("audioBitrate") + private Integer audioBitrate; + @JsonProperty("audioChannels") + private Integer audioChannels; + @JsonProperty("audioCodec") + private String audioCodec; + @JsonProperty("audioLanguages") + private String audioLanguages; + @JsonProperty("audioStreamCount") + private Integer audioStreamCount; + @JsonProperty("videoBitDepth") + private Integer videoBitDepth; + @JsonProperty("videoBitrate") + private Integer videoBitrate; + @JsonProperty("videoCodec") + private String videoCodec; + @JsonProperty("videoDynamicRangeType") + private String videoDynamicRangeType; + @JsonProperty("videoFps") + private Integer videoFps; + @JsonProperty("resolution") + private String resolution; + @JsonProperty("runTime") + private String runTime; + @JsonProperty("scanType") + private String scanType; + @JsonProperty("subtitles") + private String subtitles; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("audioBitrate") + public Integer getAudioBitrate() { + return audioBitrate; + } + + @JsonProperty("audioBitrate") + public void setAudioBitrate(Integer audioBitrate) { + this.audioBitrate = audioBitrate; + } + + @JsonProperty("audioChannels") + public Integer getAudioChannels() { + return audioChannels; + } + + @JsonProperty("audioChannels") + public void setAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + } + + @JsonProperty("audioCodec") + public String getAudioCodec() { + return audioCodec; + } + + @JsonProperty("audioCodec") + public void setAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + } + + @JsonProperty("audioLanguages") + public String getAudioLanguages() { + return audioLanguages; + } + + @JsonProperty("audioLanguages") + public void setAudioLanguages(String audioLanguages) { + this.audioLanguages = audioLanguages; + } + + @JsonProperty("audioStreamCount") + public Integer getAudioStreamCount() { + return audioStreamCount; + } + + @JsonProperty("audioStreamCount") + public void setAudioStreamCount(Integer audioStreamCount) { + this.audioStreamCount = audioStreamCount; + } + + @JsonProperty("videoBitDepth") + public Integer getVideoBitDepth() { + return videoBitDepth; + } + + @JsonProperty("videoBitDepth") + public void setVideoBitDepth(Integer videoBitDepth) { + this.videoBitDepth = videoBitDepth; + } + + @JsonProperty("videoBitrate") + public Integer getVideoBitrate() { + return videoBitrate; + } + + @JsonProperty("videoBitrate") + public void setVideoBitrate(Integer videoBitrate) { + this.videoBitrate = videoBitrate; + } + + @JsonProperty("videoCodec") + public String getVideoCodec() { + return videoCodec; + } + + @JsonProperty("videoCodec") + public void setVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + } + + @JsonProperty("videoDynamicRangeType") + public String getVideoDynamicRangeType() { + return videoDynamicRangeType; + } + + @JsonProperty("videoDynamicRangeType") + public void setVideoDynamicRangeType(String videoDynamicRangeType) { + this.videoDynamicRangeType = videoDynamicRangeType; + } + + @JsonProperty("videoFps") + public Integer getVideoFps() { + return videoFps; + } + + @JsonProperty("videoFps") + public void setVideoFps(Integer videoFps) { + this.videoFps = videoFps; + } + + @JsonProperty("resolution") + public String getResolution() { + return resolution; + } + + @JsonProperty("resolution") + public void setResolution(String resolution) { + this.resolution = resolution; + } + + @JsonProperty("runTime") + public String getRunTime() { + return runTime; + } + + @JsonProperty("runTime") + public void setRunTime(String runTime) { + this.runTime = runTime; + } + + @JsonProperty("scanType") + public String getScanType() { + return scanType; + } + + @JsonProperty("scanType") + public void setScanType(String scanType) { + this.scanType = scanType; + } + + @JsonProperty("subtitles") + public String getSubtitles() { + return subtitles; + } + + @JsonProperty("subtitles") + public void setSubtitles(String subtitles) { + this.subtitles = subtitles; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "votes", + "value", + "type" +}) +@Generated("jsonschema2pojo") + class Metacritic { + + @JsonProperty("votes") + private Integer votes; + @JsonProperty("value") + private Integer value; + @JsonProperty("type") + private String type; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("votes") + public Integer getVotes() { + return votes; + } + + @JsonProperty("votes") + public void setVotes(Integer votes) { + this.votes = votes; + } + + @JsonProperty("value") + public Integer getValue() { + return value; + } + + @JsonProperty("value") + public void setValue(Integer value) { + this.value = value; + } + + @JsonProperty("type") + public String getType() { + return type; + } + + @JsonProperty("type") + public void setType(String type) { + this.type = type; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "tmdbId", + "images", + "genres", + "inCinemas", + "physicalRelease", + "digitalRelease", + "certification", + "year", + "ratings", + "collectionTmdbId", + "collectionTitle", + "lastInfoSync", + "runtime", + "website", + "imdbId", + "title", + "cleanTitle", + "sortTitle", + "status", + "overview", + "alternativeTitles", + "translations", + "secondaryYear", + "youTubeTrailerId", + "studio", + "originalTitle", + "cleanOriginalTitle", + "originalLanguage", + "recommendations", + "popularity" +}) +@Generated("jsonschema2pojo") + class Movie { + + @JsonProperty("id") + private Integer id; + @JsonProperty("tmdbId") + private Integer tmdbId; + @JsonProperty("images") + private List images; + @JsonProperty("genres") + private List genres; + @JsonProperty("inCinemas") + private String inCinemas; + @JsonProperty("physicalRelease") + private String physicalRelease; + @JsonProperty("digitalRelease") + private String digitalRelease; + @JsonProperty("certification") + private String certification; + @JsonProperty("year") + private Integer year; + @JsonProperty("ratings") + private Ratings ratings; + @JsonProperty("collectionTmdbId") + private Integer collectionTmdbId; + @JsonProperty("collectionTitle") + private String collectionTitle; + @JsonProperty("lastInfoSync") + private String lastInfoSync; + @JsonProperty("runtime") + private Integer runtime; + @JsonProperty("website") + private String website; + @JsonProperty("imdbId") + private String imdbId; + @JsonProperty("title") + private String title; + @JsonProperty("cleanTitle") + private String cleanTitle; + @JsonProperty("sortTitle") + private String sortTitle; + @JsonProperty("status") + private String status; + @JsonProperty("overview") + private String overview; + @JsonProperty("alternativeTitles") + private List alternativeTitles; + @JsonProperty("translations") + private List translations; + @JsonProperty("secondaryYear") + private Integer secondaryYear; + @JsonProperty("youTubeTrailerId") + private String youTubeTrailerId; + @JsonProperty("studio") + private String studio; + @JsonProperty("originalTitle") + private String originalTitle; + @JsonProperty("cleanOriginalTitle") + private String cleanOriginalTitle; + @JsonProperty("originalLanguage") + private OriginalLanguage originalLanguage; + @JsonProperty("recommendations") + private List recommendations; + @JsonProperty("popularity") + private Integer popularity; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("tmdbId") + public Integer getTmdbId() { + return tmdbId; + } + + @JsonProperty("tmdbId") + public void setTmdbId(Integer tmdbId) { + this.tmdbId = tmdbId; + } + + @JsonProperty("images") + public List getImages() { + return images; + } + + @JsonProperty("images") + public void setImages(List images) { + this.images = images; + } + + @JsonProperty("genres") + public List getGenres() { + return genres; + } + + @JsonProperty("genres") + public void setGenres(List genres) { + this.genres = genres; + } + + @JsonProperty("inCinemas") + public String getInCinemas() { + return inCinemas; + } + + @JsonProperty("inCinemas") + public void setInCinemas(String inCinemas) { + this.inCinemas = inCinemas; + } + + @JsonProperty("physicalRelease") + public String getPhysicalRelease() { + return physicalRelease; + } + + @JsonProperty("physicalRelease") + public void setPhysicalRelease(String physicalRelease) { + this.physicalRelease = physicalRelease; + } + + @JsonProperty("digitalRelease") + public String getDigitalRelease() { + return digitalRelease; + } + + @JsonProperty("digitalRelease") + public void setDigitalRelease(String digitalRelease) { + this.digitalRelease = digitalRelease; + } + + @JsonProperty("certification") + public String getCertification() { + return certification; + } + + @JsonProperty("certification") + public void setCertification(String certification) { + this.certification = certification; + } + + @JsonProperty("year") + public Integer getYear() { + return year; + } + + @JsonProperty("year") + public void setYear(Integer year) { + this.year = year; + } + + @JsonProperty("ratings") + public Ratings getRatings() { + return ratings; + } + + @JsonProperty("ratings") + public void setRatings(Ratings ratings) { + this.ratings = ratings; + } + + @JsonProperty("collectionTmdbId") + public Integer getCollectionTmdbId() { + return collectionTmdbId; + } + + @JsonProperty("collectionTmdbId") + public void setCollectionTmdbId(Integer collectionTmdbId) { + this.collectionTmdbId = collectionTmdbId; + } + + @JsonProperty("collectionTitle") + public String getCollectionTitle() { + return collectionTitle; + } + + @JsonProperty("collectionTitle") + public void setCollectionTitle(String collectionTitle) { + this.collectionTitle = collectionTitle; + } + + @JsonProperty("lastInfoSync") + public String getLastInfoSync() { + return lastInfoSync; + } + + @JsonProperty("lastInfoSync") + public void setLastInfoSync(String lastInfoSync) { + this.lastInfoSync = lastInfoSync; + } + + @JsonProperty("runtime") + public Integer getRuntime() { + return runtime; + } + + @JsonProperty("runtime") + public void setRuntime(Integer runtime) { + this.runtime = runtime; + } + + @JsonProperty("website") + public String getWebsite() { + return website; + } + + @JsonProperty("website") + public void setWebsite(String website) { + this.website = website; + } + + @JsonProperty("imdbId") + public String getImdbId() { + return imdbId; + } + + @JsonProperty("imdbId") + public void setImdbId(String imdbId) { + this.imdbId = imdbId; + } + + @JsonProperty("title") + public String getTitle() { + return title; + } + + @JsonProperty("title") + public void setTitle(String title) { + this.title = title; + } + + @JsonProperty("cleanTitle") + public String getCleanTitle() { + return cleanTitle; + } + + @JsonProperty("cleanTitle") + public void setCleanTitle(String cleanTitle) { + this.cleanTitle = cleanTitle; + } + + @JsonProperty("sortTitle") + public String getSortTitle() { + return sortTitle; + } + + @JsonProperty("sortTitle") + public void setSortTitle(String sortTitle) { + this.sortTitle = sortTitle; + } + + @JsonProperty("status") + public String getStatus() { + return status; + } + + @JsonProperty("status") + public void setStatus(String status) { + this.status = status; + } + + @JsonProperty("overview") + public String getOverview() { + return overview; + } + + @JsonProperty("overview") + public void setOverview(String overview) { + this.overview = overview; + } + + @JsonProperty("alternativeTitles") + public List getAlternativeTitles() { + return alternativeTitles; + } + + @JsonProperty("alternativeTitles") + public void setAlternativeTitles(List alternativeTitles) { + this.alternativeTitles = alternativeTitles; + } + + @JsonProperty("translations") + public List getTranslations() { + return translations; + } + + @JsonProperty("translations") + public void setTranslations(List translations) { + this.translations = translations; + } + + @JsonProperty("secondaryYear") + public Integer getSecondaryYear() { + return secondaryYear; + } + + @JsonProperty("secondaryYear") + public void setSecondaryYear(Integer secondaryYear) { + this.secondaryYear = secondaryYear; + } + + @JsonProperty("youTubeTrailerId") + public String getYouTubeTrailerId() { + return youTubeTrailerId; + } + + @JsonProperty("youTubeTrailerId") + public void setYouTubeTrailerId(String youTubeTrailerId) { + this.youTubeTrailerId = youTubeTrailerId; + } + + @JsonProperty("studio") + public String getStudio() { + return studio; + } + + @JsonProperty("studio") + public void setStudio(String studio) { + this.studio = studio; + } + + @JsonProperty("originalTitle") + public String getOriginalTitle() { + return originalTitle; + } + + @JsonProperty("originalTitle") + public void setOriginalTitle(String originalTitle) { + this.originalTitle = originalTitle; + } + + @JsonProperty("cleanOriginalTitle") + public String getCleanOriginalTitle() { + return cleanOriginalTitle; + } + + @JsonProperty("cleanOriginalTitle") + public void setCleanOriginalTitle(String cleanOriginalTitle) { + this.cleanOriginalTitle = cleanOriginalTitle; + } + + @JsonProperty("originalLanguage") + public OriginalLanguage getOriginalLanguage() { + return originalLanguage; + } + + @JsonProperty("originalLanguage") + public void setOriginalLanguage(OriginalLanguage originalLanguage) { + this.originalLanguage = originalLanguage; + } + + @JsonProperty("recommendations") + public List getRecommendations() { + return recommendations; + } + + @JsonProperty("recommendations") + public void setRecommendations(List recommendations) { + this.recommendations = recommendations; + } + + @JsonProperty("popularity") + public Integer getPopularity() { + return popularity; + } + + @JsonProperty("popularity") + public void setPopularity(Integer popularity) { + this.popularity = popularity; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "version", + "real", + "isRepack" +}) +@Generated("jsonschema2pojo") + class Revision { + + @JsonProperty("version") + private Integer version; + @JsonProperty("real") + private Integer real; + @JsonProperty("isRepack") + private Boolean isRepack; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("version") + public Integer getVersion() { + return version; + } + + @JsonProperty("version") + public void setVersion(Integer version) { + this.version = version; + } + + @JsonProperty("real") + public Integer getReal() { + return real; + } + + @JsonProperty("real") + public void setReal(Integer real) { + this.real = real; + } + + @JsonProperty("isRepack") + public Boolean getIsRepack() { + return isRepack; + } + + @JsonProperty("isRepack") + public void setIsRepack(Boolean isRepack) { + this.isRepack = isRepack; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "value", + "name", + "order", + "hint", + "dividerAfter" +}) +@Generated("jsonschema2pojo") + class SelectOption { + + @JsonProperty("value") + private Integer value; + @JsonProperty("name") + private String name; + @JsonProperty("order") + private Integer order; + @JsonProperty("hint") + private String hint; + @JsonProperty("dividerAfter") + private Boolean dividerAfter; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("value") + public Integer getValue() { + return value; + } + + @JsonProperty("value") + public void setValue(Integer value) { + this.value = value; + } + + @JsonProperty("name") + public String getName() { + return name; + } + + @JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + @JsonProperty("order") + public Integer getOrder() { + return order; + } + + @JsonProperty("order") + public void setOrder(Integer order) { + this.order = order; + } + + @JsonProperty("hint") + public String getHint() { + return hint; + } + + @JsonProperty("hint") + public void setHint(String hint) { + this.hint = hint; + } + + @JsonProperty("dividerAfter") + public Boolean getDividerAfter() { + return dividerAfter; + } + + @JsonProperty("dividerAfter") + public void setDividerAfter(Boolean dividerAfter) { + this.dividerAfter = dividerAfter; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "name", + "implementation", + "implementationName", + "infoLink", + "negate", + "required", + "fields", + "presets" +}) +@Generated("jsonschema2pojo") + class Specification { + + @JsonProperty("id") + private Integer id; + @JsonProperty("name") + private String name; + @JsonProperty("implementation") + private String implementation; + @JsonProperty("implementationName") + private String implementationName; + @JsonProperty("infoLink") + private String infoLink; + @JsonProperty("negate") + private Boolean negate; + @JsonProperty("required") + private Boolean required; + @JsonProperty("fields") + private List fields; + @JsonProperty("presets") + private List presets; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("name") + public String getName() { + return name; + } + + @JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + @JsonProperty("implementation") + public String getImplementation() { + return implementation; + } + + @JsonProperty("implementation") + public void setImplementation(String implementation) { + this.implementation = implementation; + } + + @JsonProperty("implementationName") + public String getImplementationName() { + return implementationName; + } + + @JsonProperty("implementationName") + public void setImplementationName(String implementationName) { + this.implementationName = implementationName; + } + + @JsonProperty("infoLink") + public String getInfoLink() { + return infoLink; + } + + @JsonProperty("infoLink") + public void setInfoLink(String infoLink) { + this.infoLink = infoLink; + } + + @JsonProperty("negate") + public Boolean getNegate() { + return negate; + } + + @JsonProperty("negate") + public void setNegate(Boolean negate) { + this.negate = negate; + } + + @JsonProperty("required") + public Boolean getRequired() { + return required; + } + + @JsonProperty("required") + public void setRequired(Boolean required) { + this.required = required; + } + + @JsonProperty("fields") + public List getFields() { + return fields; + } + + @JsonProperty("fields") + public void setFields(List fields) { + this.fields = fields; + } + + @JsonProperty("presets") + public List getPresets() { + return presets; + } + + @JsonProperty("presets") + public void setPresets(List presets) { + this.presets = presets; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "movieMetadataId", + "title", + "cleanTitle", + "overview", + "language" +}) +@Generated("jsonschema2pojo") + class Translation { + + @JsonProperty("id") + private Integer id; + @JsonProperty("movieMetadataId") + private Integer movieMetadataId; + @JsonProperty("title") + private String title; + @JsonProperty("cleanTitle") + private String cleanTitle; + @JsonProperty("overview") + private String overview; + @JsonProperty("language") + private Language language; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonProperty("movieMetadataId") + public Integer getMovieMetadataId() { + return movieMetadataId; + } + + @JsonProperty("movieMetadataId") + public void setMovieMetadataId(Integer movieMetadataId) { + this.movieMetadataId = movieMetadataId; + } + + @JsonProperty("title") + public String getTitle() { + return title; + } + + @JsonProperty("title") + public void setTitle(String title) { + this.title = title; + } + + @JsonProperty("cleanTitle") + public String getCleanTitle() { + return cleanTitle; + } + + @JsonProperty("cleanTitle") + public void setCleanTitle(String cleanTitle) { + this.cleanTitle = cleanTitle; + } + + @JsonProperty("overview") + public String getOverview() { + return overview; + } + + @JsonProperty("overview") + public void setOverview(String overview) { + this.overview = overview; + } + + @JsonProperty("language") + public Language getLanguage() { + return language; + } + + @JsonProperty("language") + public void setLanguage(Language language) { + this.language = language; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/src/main/java/tv/mangrana/radarr/api/schema/movie/MovieFile.java b/src/main/java/tv/mangrana/radarr/api/schema/movie/MovieFile.java new file mode 100644 index 0000000..43b3264 --- /dev/null +++ b/src/main/java/tv/mangrana/radarr/api/schema/movie/MovieFile.java @@ -0,0 +1,239 @@ + +package tv.mangrana.radarr.api.schema.movie; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import tv.mangrana.radarr.api.schema.queue.Quality__1; +import tv.mangrana.sonarr.api.schema.history.Revision; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "movieId", + "relativePath", + "path", + "size", + "dateAdded", + "indexerFlags", + "quality", + "customFormats", + "qualityCutoffNotMet", + "languages", + "edition", + "id" +}) +@Generated("jsonschema2pojo") +public class MovieFile { + + @JsonProperty("movieId") + private Integer movieId; + @JsonProperty("relativePath") + private String relativePath; + @JsonProperty("path") + private String path; + @JsonProperty("size") + private Long size; + @JsonProperty("dateAdded") + private String dateAdded; + @JsonProperty("indexerFlags") + private Integer indexerFlags; + @JsonProperty("quality") + private Quality quality; + @JsonProperty("customFormats") + private List customFormats; + @JsonProperty("qualityCutoffNotMet") + private Boolean qualityCutoffNotMet; + @JsonProperty("languages") + private List languages; + @JsonProperty("edition") + private String edition; + @JsonProperty("id") + private Integer id; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("movieId") + public Integer getMovieId() { + return movieId; + } + + @JsonProperty("movieId") + public void setMovieId(Integer movieId) { + this.movieId = movieId; + } + + @JsonProperty("relativePath") + public String getRelativePath() { + return relativePath; + } + + @JsonProperty("relativePath") + public void setRelativePath(String relativePath) { + this.relativePath = relativePath; + } + + @JsonProperty("path") + public String getPath() { + return path; + } + + @JsonProperty("path") + public void setPath(String path) { + this.path = path; + } + + @JsonProperty("size") + public Long getSize() { + return size; + } + + @JsonProperty("size") + public void setSize(Long size) { + this.size = size; + } + + @JsonProperty("dateAdded") + public String getDateAdded() { + return dateAdded; + } + + @JsonProperty("dateAdded") + public void setDateAdded(String dateAdded) { + this.dateAdded = dateAdded; + } + + @JsonProperty("indexerFlags") + public Integer getIndexerFlags() { + return indexerFlags; + } + + @JsonProperty("indexerFlags") + public void setIndexerFlags(Integer indexerFlags) { + this.indexerFlags = indexerFlags; + } + + @JsonProperty("quality") + public Quality getQuality() { + return quality; + } + + @JsonProperty("quality") + public void setQuality(Quality quality) { + this.quality = quality; + } + + @JsonProperty("customFormats") + public List getCustomFormats() { + return customFormats; + } + + @JsonProperty("customFormats") + public void setCustomFormats(List customFormats) { + this.customFormats = customFormats; + } + + @JsonProperty("qualityCutoffNotMet") + public Boolean getQualityCutoffNotMet() { + return qualityCutoffNotMet; + } + + @JsonProperty("qualityCutoffNotMet") + public void setQualityCutoffNotMet(Boolean qualityCutoffNotMet) { + this.qualityCutoffNotMet = qualityCutoffNotMet; + } + + @JsonProperty("languages") + public List getLanguages() { + return languages; + } + + @JsonProperty("languages") + public void setLanguages(List languages) { + this.languages = languages; + } + + @JsonProperty("edition") + public String getEdition() { + return edition; + } + + @JsonProperty("edition") + public void setEdition(String edition) { + this.edition = edition; + } + + @JsonProperty("id") + public Integer getId() { + return id; + } + + @JsonProperty("id") + public void setId(Integer id) { + this.id = id; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "quality", + "revision" +}) +@Generated("jsonschema2pojo") +class Quality { + + @JsonProperty("quality") + private Quality__1 quality; + @JsonProperty("revision") + private Revision revision; + @JsonIgnore + private Map additionalProperties = new LinkedHashMap(); + + @JsonProperty("quality") + public Quality__1 getQuality() { + return quality; + } + + @JsonProperty("quality") + public void setQuality(Quality__1 quality) { + this.quality = quality; + } + + @JsonProperty("revision") + public Revision getRevision() { + return revision; + } + + @JsonProperty("revision") + public void setRevision(Revision revision) { + this.revision = revision; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/src/main/java/tv/mangrana/utils/PathUtils.java b/src/main/java/tv/mangrana/utils/PathUtils.java index b754c3f..df7cd91 100644 --- a/src/main/java/tv/mangrana/utils/PathUtils.java +++ b/src/main/java/tv/mangrana/utils/PathUtils.java @@ -1,17 +1,12 @@ package tv.mangrana.utils; - -import tv.mangrana.exception.JobFileNotMovedException; -import tv.mangrana.jobs.JobFile; - import java.io.File; import java.io.IOException; -import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; -import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.FileTime; +import java.util.Optional; public class PathUtils { @@ -38,27 +33,6 @@ public class PathUtils { return absolutePath.substring(absolutePath.lastIndexOf(SEPARATOR)+1); } - public static File shiftFileFolder(File jobFile, JobFile.JobLocation folderOrigin, JobFile.JobLocation folderDestination) throws JobFileNotMovedException { - try { - Path newPath = Files.move( - jobFile.toPath() - , Paths.get(jobFile.getAbsolutePath() - .replaceFirst(folderOrigin.getFolderName(), folderDestination.getFolderName()))); - log(Output.msg("moved job file <{2}> from -{0}- to -{1}-", folderOrigin, folderDestination, jobFile.getAbsolutePath())); - return newPath.toFile(); - } catch (FileAlreadyExistsException e) { - log("File already exists on destination and will be deleted from source"); - boolean deleted = jobFile.delete(); - if (!deleted) throw new JobFileNotMovedException("Could not move the file because exists on destination and either delete it from source"); - } catch (IOException e) { - log(Output.msg("COULD NOT MOVE file {2} from -{0}- to -{1}-", folderOrigin, folderDestination, jobFile.getAbsolutePath())); - e.printStackTrace(); - boolean renamed = jobFile.renameTo(new File(jobFile.getName() + "_handled")); - if (!renamed) throw new JobFileNotMovedException("Could not move the file and either rename it"); - } - return jobFile; - } - public static int compareFileCreationDate (File o1, File o2) { final String creationTimeAttr = "creationTime"; int res = 0;