
org.tinymediamanager.jsonrpc.api.call.Files Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kodi-json-rpc Show documentation
Show all versions of kodi-json-rpc Show documentation
This library is the result of freezy's Kodi JSON introspection, merged with dereulenspiegel's adoption
without android, and patched to Kodi 16 Jarvis.
The newest version!
/*
* Copyright (C) 2005-2013 Team XBMC
* http://xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XBMC Remote; see the file license. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
package org.tinymediamanager.jsonrpc.api.call;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;
import org.tinymediamanager.jsonrpc.api.AbstractCall;
import org.tinymediamanager.jsonrpc.api.AbstractModel;
import org.tinymediamanager.jsonrpc.api.model.FilesModel;
import org.tinymediamanager.jsonrpc.api.model.ListModel;
public final class Files {
/**
* Get the directories and files in the given directory.
*
* This class represents the API method Files.GetDirectory
*
* This class was generated automatically from XBMC's JSON-RPC introspect.
*/
public static class GetDirectory extends AbstractCall {
public final static String API_TYPE = "Files.GetDirectory";
public final static String RESULT = "files";
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param sort
* @param limits
* Limits are applied after getting the directory content thus retrieval is not faster when they are applied.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, String media, ListModel.Sort sort, ListModel.Limits limits, String... properties) {
super();
addParameter("directory", directory);
addParameter("media", media);
addParameter("sort", sort);
addParameter("limits", limits);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, String... properties) {
super();
addParameter("directory", directory);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, String media, String... properties) {
super();
addParameter("directory", directory);
addParameter("media", media);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param sort
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, ListModel.Sort sort, String... properties) {
super();
addParameter("directory", directory);
addParameter("sort", sort);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param sort
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, String media, ListModel.Sort sort, String... properties) {
super();
addParameter("directory", directory);
addParameter("media", media);
addParameter("sort", sort);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param limits
* Limits are applied after getting the directory content thus retrieval is not faster when they are applied.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, ListModel.Limits limits, String... properties) {
super();
addParameter("directory", directory);
addParameter("limits", limits);
addParameter("properties", properties);
}
/**
* Get the directories and files in the given directory.
*
* @param directory
* @param sort
* @param limits
* Limits are applied after getting the directory content thus retrieval is not faster when they are applied.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetDirectory(String directory, ListModel.Sort sort, ListModel.Limits limits, String... properties) {
super();
addParameter("directory", directory);
addParameter("sort", sort);
addParameter("limits", limits);
addParameter("properties", properties);
}
@Override
protected ArrayList parseMany(JsonNode node) {
final ArrayNode files = parseResults(node, RESULT);
if (files != null) {
final ArrayList ret = new ArrayList(files.size());
for (int i = 0; i < files.size(); i++) {
final ObjectNode item = (ObjectNode) files.get(i);
ret.add(new ListModel.FileItem(item));
}
return ret;
}
else {
return new ArrayList(0);
}
}
@Override
public String getName() {
return API_TYPE;
}
@Override
protected boolean returnsList() {
return true;
}
}
/**
* Get details for a specific file.
*
* This class represents the API method Files.GetFileDetails
*
* This class was generated automatically from XBMC's JSON-RPC introspect.
*/
public static class GetFileDetails extends AbstractCall {
public final static String API_TYPE = "Files.GetFileDetails";
public final static String RESULT = "filedetails";
/**
* Get details for a specific file.
*
* @param file
* Full path to the file.
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetFileDetails(String file, String media, String... properties) {
super();
addParameter("file", file);
addParameter("media", media);
addParameter("properties", properties);
}
/**
* Get details for a specific file.
*
* @param file
* Full path to the file.
* @param properties
* One or more of: title, artist, albumartist, genre, year, rating, album,
* track, duration, comment, lyrics, musicbrainztrackid, musicbrainzartistid,
* musicbrainzalbumid, musicbrainzalbumartistid, playcount, fanart, director,
* trailer, tagline, plot, plotoutline, originaltitle, lastplayed, writer,
* studio, mpaa, cast, country, imdbnumber, premiered, productioncode,
* runtime, set, showlink, streamdetails, top250, votes, firstaired,
* season, episode, showtitle, thumbnail, file, resume, artistid,
* albumid, tvshowid, setid, watchedepisodes, disc, tag, art,
* genreid, displayartist, albumartistid, description, theme, mood, style,
* albumlabel, sorttitle, episodeguide, uniqueid, dateadded, size,
* lastmodified, mimetype, specialsortseason, specialsortepisode. See constants at
* {@link ListModel.FileFields}.
*/
public GetFileDetails(String file, String... properties) {
super();
addParameter("file", file);
addParameter("properties", properties);
}
@Override
protected ListModel.FileItem parseOne(JsonNode node) {
return new ListModel.FileItem((ObjectNode) node.get(RESULT));
}
@Override
public String getName() {
return API_TYPE;
}
@Override
protected boolean returnsList() {
return false;
}
}
/**
* Get the sources of the media windows.
*
* This class represents the API method Files.GetSources
*
* This class was generated automatically from XBMC's JSON-RPC introspect.
*/
public static class GetSources extends AbstractCall {
public final static String API_TYPE = "Files.GetSources";
public final static String RESULT = "sources";
/**
* Get the sources of the media windows.
*
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param limits
* @param sort
*/
public GetSources(String media, ListModel.Limits limits, ListModel.Sort sort) {
super();
addParameter("media", media);
addParameter("limits", limits);
addParameter("sort", sort);
}
/**
* Get the sources of the media windows.
*
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
*/
public GetSources(String media) {
super();
addParameter("media", media);
}
/**
* Get the sources of the media windows.
*
* @param media
* One of: video, music, pictures, files, programs. See constants at
* {@link FilesModel.Media}.
* @param limits
*/
public GetSources(String media, ListModel.Limits limits) {
super();
addParameter("media", media);
addParameter("limits", limits);
}
@Override
protected ArrayList parseMany(JsonNode node) {
final ArrayNode sources = parseResults(node, RESULT);
if (sources != null) {
final ArrayList ret = new ArrayList(sources.size());
for (int i = 0; i < sources.size(); i++) {
final ObjectNode item = (ObjectNode) sources.get(i);
ret.add(new ListModel.SourceItem(item));
}
return ret;
}
else {
return new ArrayList(0);
}
}
@Override
public String getName() {
return API_TYPE;
}
@Override
protected boolean returnsList() {
return true;
}
}
/**
* Provides a way to download a given file (e.g. providing an URL to the real file location).
*
* This class represents the API method Files.PrepareDownload
*
* This class was generated automatically from XBMC's JSON-RPC introspect.
*/
public static class PrepareDownload extends AbstractCall {
public final static String API_TYPE = "Files.PrepareDownload";
/**
* Provides a way to download a given file (e.g. providing an URL to the real file location).
*
* @param path
*/
public PrepareDownload(String path) {
super();
addParameter("path", path);
}
@Override
protected PrepareDownloadResult parseOne(JsonNode node) {
return new PrepareDownloadResult(node);
}
@Override
public String getName() {
return API_TYPE;
}
@Override
protected boolean returnsList() {
return false;
}
/**
* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect.
*/
public static class PrepareDownloadResult extends AbstractModel {
// field names
public static final String DETAILS = "details";
public static final String MODE = "mode";
public static final String PROTOCOL = "protocol";
// class members
public final String details;
public final String mode;
public final String protocol;
/**
* @param details
* @param mode
* One of: redirect, direct. See constants at {@link Files.PrepareDownloadResult.Mode}.
* @param protocol
* One of: http. See constants at {@link Files.PrepareDownloadResult.Protocol}.
*/
public PrepareDownloadResult(String details, String mode, String protocol) {
this.details = details;
this.mode = mode;
this.protocol = protocol;
}
/**
* Construct from JSON object.
*
* @param node
* JSON object representing a PrepareDownloadResult object
*/
public PrepareDownloadResult(JsonNode node) {
details = node.get(DETAILS).getTextValue(); // required value
mode = parseString(node, MODE);
protocol = parseString(node, PROTOCOL);
}
@Override
public JsonNode toJsonNode() {
final ObjectNode node = OM.createObjectNode();
node.put(DETAILS, details);
node.put(MODE, mode); // enum
node.put(PROTOCOL, protocol); // enum
return node;
}
/**
* Extracts a list of {@link PrepareDownloadResult} objects from a JSON array.
*
* @param node
* ObjectNode containing the list of objects.
* @param key
* Key pointing to the node where the list is stored.
*/
static List getFilesPrepareDownloadResultList(JsonNode node, String key) {
if (node.has(key)) {
final ArrayNode a = (ArrayNode) node.get(key);
final List l = new ArrayList(a.size());
for (int i = 0; i < a.size(); i++) {
l.add(new PrepareDownloadResult((JsonNode) a.get(i)));
}
return l;
}
return new ArrayList(0);
}
/**
* API Name: protocol
*/
public interface Protocol {
public final String HTTP = "http";
public final static Set values = new HashSet(Arrays.asList(HTTP));
}
/**
* API Name: mode
*/
public interface Mode {
public final String REDIRECT = "redirect";
public final String DIRECT = "direct";
public final static Set values = new HashSet(Arrays.asList(REDIRECT, DIRECT));
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy