All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tinymediamanager.jsonrpc.api.call.Files Maven / Gradle / Ivy

Go to download

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