673 lines
27 KiB
Java
673 lines
27 KiB
Java
/*
|
|
* Copyright 2015 Synced Synapse. All rights reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
package org.xbmc.kore.jsonrpc.type;
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
import org.xbmc.kore.utils.JsonUtils;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Types from Video.*
|
|
*/
|
|
public class VideoType {
|
|
|
|
public static class Cast {
|
|
public static final String NAME = "name";
|
|
public static final String ORDER = "order";
|
|
public static final String ROLE = "role";
|
|
public static final String THUMBNAIL = "thumbnail";
|
|
|
|
public final String name;
|
|
public final int order;
|
|
public final String role;
|
|
public final String thumbnail;
|
|
|
|
public Cast(JsonNode node) {
|
|
name = JsonUtils.stringFromJsonNode(node, NAME);
|
|
order = JsonUtils.intFromJsonNode(node, ORDER, 0);
|
|
role = JsonUtils.stringFromJsonNode(node, ROLE);
|
|
thumbnail = JsonUtils.stringFromJsonNode(node, THUMBNAIL);
|
|
}
|
|
|
|
public Cast(String name, int order, String role, String thumbnail) {
|
|
this.name = name;
|
|
this.order = order;
|
|
this.role = role;
|
|
this.thumbnail = thumbnail;
|
|
}
|
|
|
|
public static List<Cast> castListFromJsonNode(JsonNode node, String key) {
|
|
if ((node == null) || (!node.has(key))) {
|
|
return new ArrayList<Cast>(0);
|
|
}
|
|
|
|
ArrayNode arrayNode = (ArrayNode) node.get(key);
|
|
ArrayList<Cast> castList = new ArrayList<Cast>(arrayNode.size());
|
|
for (JsonNode innerNode : arrayNode) {
|
|
castList.add(new Cast(innerNode));
|
|
}
|
|
return castList;
|
|
}
|
|
}
|
|
|
|
public static class Resume {
|
|
public static final String POSITION = "position";
|
|
public static final String TOTAL = "total";
|
|
|
|
public final double position;
|
|
public final double total;
|
|
|
|
public Resume(JsonNode node) {
|
|
position = JsonUtils.doubleFromJsonNode(node, POSITION, 0);
|
|
total = JsonUtils.doubleFromJsonNode(node, TOTAL, 0);
|
|
}
|
|
}
|
|
|
|
public static class Streams {
|
|
|
|
public static class Audio {
|
|
public static final String CHANNELS = "channels";
|
|
public static final String CODEC = "codec";
|
|
public static final String LANGUAGE = "language";
|
|
|
|
public final int channels;
|
|
public final String codec;
|
|
public final String language;
|
|
|
|
public Audio(JsonNode node) {
|
|
channels = JsonUtils.intFromJsonNode(node, CHANNELS, 0);
|
|
codec = JsonUtils.stringFromJsonNode(node, CODEC);
|
|
language = JsonUtils.stringFromJsonNode(node, LANGUAGE);
|
|
}
|
|
}
|
|
|
|
public static class Subtitle {
|
|
public static final String LANGUAGE = "language";
|
|
|
|
public final String language;
|
|
|
|
public Subtitle(JsonNode node) {
|
|
language = JsonUtils.stringFromJsonNode(node, LANGUAGE, null);
|
|
}
|
|
}
|
|
|
|
public static class Video {
|
|
public static final String ASPECT = "aspect";
|
|
public static final String CODEC = "codec";
|
|
public static final String DURATION = "duration";
|
|
public static final String HEIGHT = "height";
|
|
public static final String WIDTH = "width";
|
|
|
|
public final double aspect;
|
|
public final String codec;
|
|
public final int duration;
|
|
public final int height;
|
|
public final int width;
|
|
|
|
public Video(JsonNode node) {
|
|
aspect = JsonUtils.doubleFromJsonNode(node, ASPECT, 0);
|
|
codec = JsonUtils.stringFromJsonNode(node, CODEC, null);
|
|
duration = JsonUtils.intFromJsonNode(node, DURATION, -1);
|
|
height = JsonUtils.intFromJsonNode(node, HEIGHT, -1);
|
|
width = JsonUtils.intFromJsonNode(node, WIDTH, -1);
|
|
}
|
|
}
|
|
|
|
public static final String AUDIO = "audio";
|
|
public static final String SUBTITLE = "subtitle";
|
|
public static final String VIDEO = "video";
|
|
|
|
// class members
|
|
public final List<Audio> audio;
|
|
public final List<Subtitle> subtitle;
|
|
public final List<Video> video;
|
|
|
|
public Streams(JsonNode node) {
|
|
audio = new ArrayList<Audio>();
|
|
if (node.has(AUDIO)) {
|
|
ArrayNode arrayNode = (ArrayNode)node.get(AUDIO);
|
|
for (JsonNode innerNode : arrayNode) {
|
|
audio.add(new Audio(innerNode));
|
|
}
|
|
}
|
|
|
|
subtitle = new ArrayList<Subtitle>();
|
|
if (node.has(SUBTITLE)) {
|
|
ArrayNode arrayNode = (ArrayNode)node.get(SUBTITLE);
|
|
for (JsonNode innerNode : arrayNode) {
|
|
subtitle.add(new Subtitle(innerNode));
|
|
}
|
|
}
|
|
|
|
video = new ArrayList<Video>();
|
|
if (node.has(VIDEO)) {
|
|
ArrayNode arrayNode = (ArrayNode)node.get(VIDEO);
|
|
for (JsonNode innerNode : arrayNode) {
|
|
video.add(new Video(innerNode));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enums for Video.Fields.Movie
|
|
*/
|
|
public interface FieldsMovie {
|
|
public final String TITLE = "title";
|
|
public final String GENRE = "genre";
|
|
public final String YEAR = "year";
|
|
public final String RATING = "rating";
|
|
public final String DIRECTOR = "director";
|
|
public final String TRAILER = "trailer";
|
|
public final String TAGLINE = "tagline";
|
|
public final String PLOT = "plot";
|
|
public final String PLOTOUTLINE = "plotoutline";
|
|
public final String ORIGINALTITLE = "originaltitle";
|
|
public final String LASTPLAYED = "lastplayed";
|
|
public final String PLAYCOUNT = "playcount";
|
|
public final String WRITER = "writer";
|
|
public final String STUDIO = "studio";
|
|
public final String MPAA = "mpaa";
|
|
public final String CAST = "cast";
|
|
public final String COUNTRY = "country";
|
|
public final String IMDBNUMBER = "imdbnumber";
|
|
public final String RUNTIME = "runtime";
|
|
public final String SET = "set";
|
|
public final String SHOWLINK = "showlink";
|
|
public final String STREAMDETAILS = "streamdetails";
|
|
public final String TOP250 = "top250";
|
|
public final String VOTES = "votes";
|
|
public final String FANART = "fanart";
|
|
public final String THUMBNAIL = "thumbnail";
|
|
public final String FILE = "file";
|
|
public final String SORTTITLE = "sorttitle";
|
|
public final String RESUME = "resume";
|
|
public final String SETID = "setid";
|
|
public final String DATEADDED = "dateadded";
|
|
public final String TAG = "tag";
|
|
public final String ART = "art";
|
|
|
|
public final static String[] allValues = new String[]{
|
|
TITLE, GENRE, YEAR, RATING, DIRECTOR, TRAILER, TAGLINE, PLOT, PLOTOUTLINE,
|
|
ORIGINALTITLE, LASTPLAYED, PLAYCOUNT, WRITER, STUDIO, MPAA, CAST, COUNTRY,
|
|
IMDBNUMBER, RUNTIME, SET, SHOWLINK, STREAMDETAILS, TOP250, VOTES, FANART,
|
|
THUMBNAIL, FILE, SORTTITLE, RESUME, SETID, DATEADDED, TAG, ART
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Video.Details.Base
|
|
*/
|
|
public static class DetailsBase extends MediaType.DetailsBase {
|
|
public static final String ART = "art";
|
|
public static final String PLAYCOUNT = "playcount";
|
|
|
|
public final MediaType.Artwork art;
|
|
public final Integer playcount;
|
|
|
|
/**
|
|
* Constructor
|
|
* @param node Json node
|
|
*/
|
|
public DetailsBase(JsonNode node) {
|
|
super(node);
|
|
art = node.has(ART) ? new MediaType.Artwork(node.get(ART)) : null;
|
|
playcount = JsonUtils.intFromJsonNode(node, PLAYCOUNT, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Video.Details.Media
|
|
*/
|
|
public static class DetailsMedia extends DetailsBase {
|
|
public static final String TITLE = "title";
|
|
|
|
public final String title;
|
|
|
|
public DetailsMedia(JsonNode node) {
|
|
super(node);
|
|
title = JsonUtils.stringFromJsonNode(node, TITLE, null);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Video.Details.Item
|
|
*/
|
|
public static class DetailsItem extends DetailsMedia {
|
|
public static final String DATEADDED = "dateadded";
|
|
public static final String FILE = "file";
|
|
public static final String LASTPLAYED = "lastplayed";
|
|
public static final String PLOT = "plot";
|
|
|
|
public final String dateadded;
|
|
public final String file;
|
|
public final String lastplayed;
|
|
public final String plot;
|
|
|
|
public DetailsItem(JsonNode node) {
|
|
super(node);
|
|
dateadded = JsonUtils.stringFromJsonNode(node, DATEADDED, null);
|
|
file = JsonUtils.stringFromJsonNode(node, FILE, null);
|
|
lastplayed = JsonUtils.stringFromJsonNode(node, LASTPLAYED, null);
|
|
plot = JsonUtils.stringFromJsonNode(node, PLOT, null);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Video.Details.File
|
|
*/
|
|
public static class DetailsFile extends DetailsItem {
|
|
// field names
|
|
public static final String DIRECTOR = "director";
|
|
public static final String RESUME = "resume";
|
|
public static final String RUNTIME = "runtime";
|
|
public static final String STREAMDETAILS = "streamdetails";
|
|
|
|
// class members
|
|
public final List<String> director;
|
|
public final Resume resume;
|
|
public final int runtime;
|
|
public final Streams streamdetails;
|
|
|
|
public DetailsFile(JsonNode node) {
|
|
super(node);
|
|
director = JsonUtils.stringListFromJsonNode(node, DIRECTOR);
|
|
resume = node.has(RESUME) ? new Resume(node.get(RESUME)) : null;
|
|
runtime = JsonUtils.intFromJsonNode(node, RUNTIME, 0);
|
|
streamdetails = node.has(STREAMDETAILS) ? new Streams(node.get(STREAMDETAILS)) : null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Video.Details.Movie
|
|
*/
|
|
public static class DetailsMovie extends DetailsFile {
|
|
public static final String CAST = "cast";
|
|
public static final String COUNTRY = "country";
|
|
public static final String GENRE = "genre";
|
|
public static final String IMDBNUMBER = "imdbnumber";
|
|
public static final String MOVIEID = "movieid";
|
|
public static final String MPAA = "mpaa";
|
|
public static final String ORIGINALTITLE = "originaltitle";
|
|
public static final String PLOTOUTLINE = "plotoutline";
|
|
public static final String RATING = "rating";
|
|
public static final String SET = "set";
|
|
public static final String SETID = "setid";
|
|
public static final String SHOWLINK = "showlink";
|
|
public static final String SORTTITLE = "sorttitle";
|
|
public static final String STUDIO = "studio";
|
|
public static final String TAG = "tag";
|
|
public static final String TAGLINE = "tagline";
|
|
public static final String TOP250 = "top250";
|
|
public static final String TRAILER = "trailer";
|
|
public static final String VOTES = "votes";
|
|
public static final String WRITER = "writer";
|
|
public static final String YEAR = "year";
|
|
|
|
public final List<Cast> cast;
|
|
public final List<String> country;
|
|
public final List<String> genre;
|
|
public final String imdbnumber;
|
|
public final int movieid;
|
|
public final String mpaa;
|
|
public final String originaltitle;
|
|
public final String plotoutline;
|
|
public final double rating;
|
|
public final String set;
|
|
public final int setid;
|
|
public final List<String> showlink;
|
|
public final String sorttitle;
|
|
public final List<String> studio;
|
|
public final List<String> tag;
|
|
public final String tagline;
|
|
public final int top250;
|
|
public final String trailer;
|
|
public final String votes;
|
|
public final List<String> writer;
|
|
public final int year;
|
|
|
|
public DetailsMovie(JsonNode node) {
|
|
super(node);
|
|
cast = Cast.castListFromJsonNode(node, CAST);
|
|
country = JsonUtils.stringListFromJsonNode(node, COUNTRY);
|
|
genre = JsonUtils.stringListFromJsonNode(node, GENRE);
|
|
imdbnumber = JsonUtils.stringFromJsonNode(node, IMDBNUMBER);
|
|
movieid = JsonUtils.intFromJsonNode(node, MOVIEID);
|
|
mpaa = JsonUtils.stringFromJsonNode(node, MPAA);
|
|
originaltitle = JsonUtils.stringFromJsonNode(node, ORIGINALTITLE);
|
|
plotoutline = JsonUtils.stringFromJsonNode(node, PLOTOUTLINE);
|
|
rating = JsonUtils.doubleFromJsonNode(node, RATING, 0);
|
|
set = JsonUtils.stringFromJsonNode(node, SET);
|
|
setid = JsonUtils.intFromJsonNode(node, SETID, -1);
|
|
showlink = JsonUtils.stringListFromJsonNode(node, SHOWLINK);
|
|
sorttitle = JsonUtils.stringFromJsonNode(node, SORTTITLE);
|
|
studio = JsonUtils.stringListFromJsonNode(node, STUDIO);
|
|
tag = JsonUtils.stringListFromJsonNode(node, TAG);
|
|
tagline = JsonUtils.stringFromJsonNode(node, TAGLINE);
|
|
top250 = JsonUtils.intFromJsonNode(node, TOP250, 0);
|
|
trailer = JsonUtils.stringFromJsonNode(node, TRAILER);
|
|
votes = JsonUtils.stringFromJsonNode(node, VOTES);
|
|
writer = JsonUtils.stringListFromJsonNode(node, WRITER);
|
|
year = JsonUtils.intFromJsonNode(node, YEAR, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enums for Video.Fields.TVShow
|
|
*/
|
|
public interface FieldsTVShow {
|
|
public final String TITLE = "title";
|
|
public final String GENRE = "genre";
|
|
public final String YEAR = "year";
|
|
public final String RATING = "rating";
|
|
public final String PLOT = "plot";
|
|
public final String STUDIO = "studio";
|
|
public final String MPAA = "mpaa";
|
|
public final String CAST = "cast";
|
|
public final String PLAYCOUNT = "playcount";
|
|
public final String EPISODE = "episode";
|
|
public final String IMDBNUMBER = "imdbnumber";
|
|
public final String PREMIERED = "premiered";
|
|
public final String VOTES = "votes";
|
|
public final String LASTPLAYED = "lastplayed";
|
|
public final String FANART = "fanart";
|
|
public final String THUMBNAIL = "thumbnail";
|
|
public final String FILE = "file";
|
|
public final String ORIGINALTITLE = "originaltitle";
|
|
public final String SORTTITLE = "sorttitle";
|
|
public final String EPISODEGUIDE = "episodeguide";
|
|
public final String SEASON = "season";
|
|
public final String WATCHEDEPISODES = "watchedepisodes";
|
|
public final String DATEADDED = "dateadded";
|
|
public final String TAG = "tag";
|
|
public final String ART = "art";
|
|
|
|
public final static String[] allValues = new String[] {
|
|
TITLE, GENRE, YEAR, RATING, PLOT, STUDIO, MPAA, CAST, PLAYCOUNT, EPISODE,
|
|
IMDBNUMBER, PREMIERED, VOTES, LASTPLAYED, FANART, THUMBNAIL, FILE, ORIGINALTITLE,
|
|
SORTTITLE, EPISODEGUIDE, SEASON, WATCHEDEPISODES, DATEADDED, TAG, ART
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Video.Details.TVShow
|
|
*/
|
|
public static class DetailsTVShow extends DetailsItem {
|
|
public static final String CAST = "cast";
|
|
public static final String EPISODE = "episode";
|
|
public static final String EPISODEGUIDE = "episodeguide";
|
|
public static final String GENRE = "genre";
|
|
public static final String IMDBNUMBER = "imdbnumber";
|
|
public static final String MPAA = "mpaa";
|
|
public static final String ORIGINALTITLE = "originaltitle";
|
|
public static final String PREMIERED = "premiered";
|
|
public static final String RATING = "rating";
|
|
public static final String SEASON = "season";
|
|
public static final String SORTTITLE = "sorttitle";
|
|
public static final String STUDIO = "studio";
|
|
public static final String TAG = "tag";
|
|
public static final String TVSHOWID = "tvshowid";
|
|
public static final String VOTES = "votes";
|
|
public static final String WATCHEDEPISODES = "watchedepisodes";
|
|
public static final String YEAR = "year";
|
|
|
|
public final List<Cast> cast;
|
|
public final int episode;
|
|
public final String episodeguide;
|
|
public final List<String> genre;
|
|
public final String imdbnumber;
|
|
public final String mpaa;
|
|
public final String originaltitle;
|
|
public final String premiered;
|
|
public final double rating;
|
|
public final int season;
|
|
public final String sorttitle;
|
|
public final List<String> studio;
|
|
public final List<String> tag;
|
|
public final int tvshowid;
|
|
public final String votes;
|
|
public final int watchedepisodes;
|
|
public final int year;
|
|
|
|
public DetailsTVShow(JsonNode node) {
|
|
super(node);
|
|
cast = Cast.castListFromJsonNode(node, CAST);
|
|
episode = JsonUtils.intFromJsonNode(node, EPISODE, 0);
|
|
episodeguide = JsonUtils.stringFromJsonNode(node, EPISODEGUIDE);
|
|
genre = JsonUtils.stringListFromJsonNode(node, GENRE);
|
|
imdbnumber = JsonUtils.stringFromJsonNode(node, IMDBNUMBER);
|
|
mpaa = JsonUtils.stringFromJsonNode(node, MPAA);
|
|
originaltitle = JsonUtils.stringFromJsonNode(node, ORIGINALTITLE);
|
|
premiered = JsonUtils.stringFromJsonNode(node, PREMIERED);
|
|
rating = JsonUtils.doubleFromJsonNode(node, RATING, 0);
|
|
season = JsonUtils.intFromJsonNode(node, SEASON, 0);
|
|
sorttitle = JsonUtils.stringFromJsonNode(node, SORTTITLE);
|
|
studio = JsonUtils.stringListFromJsonNode(node, STUDIO);
|
|
tag = JsonUtils.stringListFromJsonNode(node, TAG);
|
|
tvshowid = JsonUtils.intFromJsonNode(node, TVSHOWID, 0);
|
|
votes = JsonUtils.stringFromJsonNode(node, VOTES);
|
|
watchedepisodes = JsonUtils.intFromJsonNode(node, WATCHEDEPISODES, 0);
|
|
year = JsonUtils.intFromJsonNode(node, YEAR, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enums for Video.Fields.Season
|
|
*/
|
|
public interface FieldsSeason {
|
|
public final String SEASON = "season";
|
|
public final String SHOWTITLE = "showtitle";
|
|
public final String PLAYCOUNT = "playcount";
|
|
public final String EPISODE = "episode";
|
|
public final String FANART = "fanart";
|
|
public final String THUMBNAIL = "thumbnail";
|
|
public final String TVSHOWID = "tvshowid";
|
|
public final String WATCHEDEPISODES = "watchedepisodes";
|
|
public final String ART = "art";
|
|
|
|
public final static String[] allValues = new String[] {
|
|
SEASON, SHOWTITLE, PLAYCOUNT, EPISODE, FANART, THUMBNAIL, TVSHOWID,
|
|
WATCHEDEPISODES, ART
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Video.Details.Season
|
|
*/
|
|
public static class DetailsSeason extends DetailsBase {
|
|
public static final String EPISODE = "episode";
|
|
public static final String SEASON = "season";
|
|
public static final String SHOWTITLE = "showtitle";
|
|
public static final String TVSHOWID = "tvshowid";
|
|
public static final String WATCHEDEPISODES = "watchedepisodes";
|
|
|
|
// class members
|
|
public final int episode;
|
|
public final int season;
|
|
public final String showtitle;
|
|
public final int tvshowid;
|
|
public final int watchedepisodes;
|
|
|
|
public DetailsSeason(JsonNode node) {
|
|
super(node);
|
|
episode = JsonUtils.intFromJsonNode(node, EPISODE, 0);
|
|
season = JsonUtils.intFromJsonNode(node, SEASON, 0);
|
|
showtitle = JsonUtils.stringFromJsonNode(node, SHOWTITLE);
|
|
tvshowid = JsonUtils.intFromJsonNode(node, TVSHOWID, -1);
|
|
watchedepisodes = JsonUtils.intFromJsonNode(node, WATCHEDEPISODES, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enums for Video.Fields.Episoode
|
|
*/
|
|
public interface FieldsEpisode {
|
|
public final String TITLE = "title";
|
|
public final String PLOT = "plot";
|
|
public final String VOTES = "votes";
|
|
public final String RATING = "rating";
|
|
public final String WRITER = "writer";
|
|
public final String FIRSTAIRED = "firstaired";
|
|
public final String PLAYCOUNT = "playcount";
|
|
public final String RUNTIME = "runtime";
|
|
public final String DIRECTOR = "director";
|
|
public final String PRODUCTIONCODE = "productioncode";
|
|
public final String SEASON = "season";
|
|
public final String EPISODE = "episode";
|
|
public final String ORIGINALTITLE = "originaltitle";
|
|
public final String SHOWTITLE = "showtitle";
|
|
public final String CAST = "cast";
|
|
public final String STREAMDETAILS = "streamdetails";
|
|
public final String LASTPLAYED = "lastplayed";
|
|
public final String FANART = "fanart";
|
|
public final String THUMBNAIL = "thumbnail";
|
|
public final String FILE = "file";
|
|
public final String RESUME = "resume";
|
|
public final String TVSHOWID = "tvshowid";
|
|
public final String DATEADDED = "dateadded";
|
|
public final String UNIQUEID = "uniqueid";
|
|
public final String ART = "art";
|
|
|
|
public final static String[] allValues = new String[] {
|
|
TITLE, PLOT, VOTES, RATING, WRITER, FIRSTAIRED, PLAYCOUNT, RUNTIME, DIRECTOR,
|
|
PRODUCTIONCODE, SEASON, EPISODE, ORIGINALTITLE, SHOWTITLE, CAST, STREAMDETAILS,
|
|
LASTPLAYED, FANART, THUMBNAIL, FILE, RESUME, TVSHOWID, DATEADDED, UNIQUEID, ART
|
|
};
|
|
}
|
|
|
|
|
|
/**
|
|
* Video.Details.Episode
|
|
*/
|
|
public static class DetailsEpisode extends DetailsFile {
|
|
public static final String CAST = "cast";
|
|
public static final String EPISODE = "episode";
|
|
public static final String EPISODEID = "episodeid";
|
|
public static final String FIRSTAIRED = "firstaired";
|
|
public static final String ORIGINALTITLE = "originaltitle";
|
|
public static final String PRODUCTIONCODE = "productioncode";
|
|
public static final String RATING = "rating";
|
|
public static final String SEASON = "season";
|
|
public static final String SHOWTITLE = "showtitle";
|
|
public static final String TVSHOWID = "tvshowid";
|
|
// public static final String UNIQUEID = "uniqueid";
|
|
public static final String VOTES = "votes";
|
|
public static final String WRITER = "writer";
|
|
|
|
public final List<Cast> cast;
|
|
public final int episode;
|
|
public final int episodeid;
|
|
public final String firstaired;
|
|
public final String originaltitle;
|
|
public final String productioncode;
|
|
public final double rating;
|
|
public final int season;
|
|
public final String showtitle;
|
|
public final int tvshowid;
|
|
public final String votes;
|
|
public final List<String> writer;
|
|
|
|
public DetailsEpisode(JsonNode node) {
|
|
super(node);
|
|
cast = Cast.castListFromJsonNode(node, CAST);
|
|
episode = JsonUtils.intFromJsonNode(node, EPISODE, 0);
|
|
episodeid = JsonUtils.intFromJsonNode(node, EPISODEID);
|
|
firstaired = JsonUtils.stringFromJsonNode(node, FIRSTAIRED);
|
|
originaltitle = JsonUtils.stringFromJsonNode(node, ORIGINALTITLE);
|
|
productioncode = JsonUtils.stringFromJsonNode(node, PRODUCTIONCODE);
|
|
rating = JsonUtils.doubleFromJsonNode(node, RATING, 0);
|
|
season = JsonUtils.intFromJsonNode(node, SEASON, 0);
|
|
showtitle = JsonUtils.stringFromJsonNode(node, SHOWTITLE);
|
|
tvshowid = JsonUtils.intFromJsonNode(node, TVSHOWID);
|
|
votes = JsonUtils.stringFromJsonNode(node, VOTES);
|
|
writer = JsonUtils.stringListFromJsonNode(node, WRITER);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enums for Video.Fields.MusicVideo
|
|
*/
|
|
public interface FieldsMusicVideo {
|
|
public final String TITLE = "title";
|
|
public final String PLAYCOUNT = "playcount";
|
|
public final String RUNTIME = "runtime";
|
|
public final String DIRECTOR = "director";
|
|
public final String STUDIO = "studio";
|
|
public final String YEAR = "year";
|
|
public final String PLOT = "plot";
|
|
public final String ALBUM = "album";
|
|
public final String ARTIST = "artist";
|
|
public final String GENRE = "genre";
|
|
public final String TRACK = "track";
|
|
public final String STREAMDETAILS = "streamdetails";
|
|
public final String LASTPLAYED = "lastplayed";
|
|
public final String FANART = "fanart";
|
|
public final String THUMBNAIL = "thumbnail";
|
|
public final String FILE = "file";
|
|
public final String RESUME = "resume";
|
|
public final String DATEADDED = "dateadded";
|
|
public final String TAG = "tag";
|
|
public final String ART = "art";
|
|
|
|
public final static String[] allValues = new String[] {
|
|
TITLE, PLAYCOUNT, RUNTIME, DIRECTOR, STUDIO, YEAR, PLOT, ALBUM, ARTIST, GENRE,
|
|
TRACK, STREAMDETAILS, LASTPLAYED, FANART, THUMBNAIL, FILE, RESUME, DATEADDED,
|
|
TAG, ART
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Video.Details.MusicVideo
|
|
*/
|
|
public static class DetailsMusicVideo extends DetailsFile {
|
|
public static final String ALBUM = "album";
|
|
public static final String ARTIST = "artist";
|
|
public static final String GENRE = "genre";
|
|
public static final String MUSICVIDEOID = "musicvideoid";
|
|
public static final String STUDIO = "studio";
|
|
public static final String TAG = "tag";
|
|
public static final String TRACK = "track";
|
|
public static final String YEAR = "year";
|
|
|
|
public final String album;
|
|
public final List<String> artist;
|
|
public final List<String> genre;
|
|
public final int musicvideoid;
|
|
public final List<String> studio;
|
|
public final List<String> tag;
|
|
public final int track;
|
|
public final int year;
|
|
|
|
/**
|
|
* Constructor
|
|
* @param node Json node
|
|
*/
|
|
public DetailsMusicVideo(JsonNode node) {
|
|
super(node);
|
|
album = JsonUtils.stringFromJsonNode(node, ALBUM);
|
|
artist = JsonUtils.stringListFromJsonNode(node, ARTIST);
|
|
genre = JsonUtils.stringListFromJsonNode(node, GENRE);
|
|
musicvideoid = JsonUtils.intFromJsonNode(node, MUSICVIDEOID);
|
|
studio = JsonUtils.stringListFromJsonNode(node, STUDIO);
|
|
tag = JsonUtils.stringListFromJsonNode(node, TAG);
|
|
track = JsonUtils.intFromJsonNode(node, TRACK, 0);
|
|
year = JsonUtils.intFromJsonNode(node, YEAR, 0);
|
|
}
|
|
}
|
|
} |