class Plex_Server_Library_Section_Photo extends Plex_Server_Library_SectionAbstract

Class that represents a Plex library photo section and makes available the retrieval of library photo items.

Traits

Trait groups diferents functionalities for Plex library section.

Constants

DEFAULT_ADDRESS

The default address on which a Plex server listens.

DEFAULT_PORT

The default port on which a Plex server listens.

ENDPOINT_CLIENT

The Plex HTTP API endpoint for client listing.

ENDPOINT_LIBRARY

URL endpoint for Plex server library.

ENDPOINT_SECTION

URL endpoint for library sections.

ENDPOINT_RECENTLY_ADDED

URL endpoint for a library's recently added items.

ENDPOINT_ON_DECK

URL endpoint for a library's on deck items.

ENDPOINT_METADATA

URL endpoint for single library items.

TYPE_MOVIE

String that identifies a Plex library movie item type.

TYPE_ARTIST

String that identifies a Plex library artist item type.

TYPE_ALBUM

String that identifies a Plex library album item type.

TYPE_TRACK

String that identifies a Plex library track item type.

TYPE_PHOTO

String that identifies a Plex library photo item type.

TYPE_SHOW

String that identifies a Plex library TV show item type.

TYPE_SEASON

String that identifies a Plex library TV season item type.

TYPE_EPISODE

String that identifies a Plex library episode item type.

ENDPOINT_CATEGORY_ALL

Endpoint for retrieving all items for a section.

ENDPOINT_CATEGORY_UNWATCHED

Endpoint for retrieving all unwatched items for a section.

ENDPOINT_CATEGORY_NEWEST

Endpoint for retrieving the newest items for a section.

ENDPOINT_CATEGORY_RECENTLY_ADDED

Endpoint for retrieving recently added items for a section.

ENDPOINT_CATEGORY_RECENTLY_VIEWED

Endpoint for retrieving recently viewed items for a section.

ENDPOINT_CATEGORY_ON_DECK

Endpoint for retrieving on deck items for a section.

ENDPOINT_CATEGORY_COLLECTION

Endpoint for retrieving items for a section by collection.

ENDPOINT_CATEGORY_FIRST_CHARACTER

Endpoint for retrieving items for a section by first character.

ENDPOINT_CATEGORY_GENRE

Endpoint for retrieving items for a section by genre.

ENDPOINT_CATEGORY_YEAR

Endpoint for retrieving items for a section by year.

ENDPOINT_CATEGORY_CONTENT_RATING

Endpoint for retrieving shows by content rating.

ENDPOINT_SEARCH

Endpoint for searching a section for items.

SEARCH_TYPE_MOVIE

Parameter for searching movies.

SEARCH_TYPE_SHOW

Parameter for searching television shows.

SEARCH_TYPE_EPISODE

Parameter for searching television episodes.

SEARCH_TYPE_ARTIST

Parameter for searching artists.

SEARCH_TYPE_TRACK

Parameter for searching tracks.

Properties

protected string $name The name of the Plex machine on the network. from Plex_MachineAbstract
protected string $address The IP address of the Plex machine on the network. from Plex_MachineAbstract
protected integer $port The port on which the Plex machine is listening. Typically 32400 for servers and 3000 for clients. from Plex_MachineAbstract
protected string $token The token of the Plex machine on the network. from Plex_MachineAbstract
protected string $art Reference to the art section's art. from Plex_Server_Library_SectionAbstract
protected boolean $refreshing Boolean saying whether or not the section is currently refreshing. from Plex_Server_Library_SectionAbstract
protected integer $key The section's key. from Plex_Server_Library_SectionAbstract
protected string $type The section's type. from Plex_Server_Library_SectionAbstract
protected string $title The section's title. from Plex_Server_Library_SectionAbstract
protected string $agent The metadata agent for the section. from Plex_Server_Library_SectionAbstract
protected string $scanner The type of scanner for the section. from Plex_Server_Library_SectionAbstract
protected string $language The section's language. from Plex_Server_Library_SectionAbstract
protected string $uuid Universally unique identifier for the section. from Plex_Server_Library_SectionAbstract
protected DateTime $updatedAt Date the section was last updated. from Plex_Server_Library_SectionAbstract
protected DateTime $createdAt Date the section was created. from Plex_Server_Library_SectionAbstract

Methods

string
getBaseUrl()

Returns the base URL, which will be standard for all requests made to the Plex machine.

array
xmlAttributesToArray(SimpleXMLElement $xml, integer $pass = 0)

Typically the useful data returned by a Plex machine will containted in XML attributes. This allows a set of XML nodes to be passed and all the attribues extracted and returned as an associated array.

array
makeCall(string $url)

Utilizes php-curl to send a request to the passed URL and returns an XML document reprentation of the returned content.

string
getCallingFunction(integer $depth = 2)

Universal function so any method belonging to a child class of a Plex machine can discover which function called it. This is used mainly for some of our polymorphic requests as the calling function can tell us what type of item is being requested.

void
__construct(string $name, string $address, integer $port, string $token)

Sets up our Plex server using the minimum amount of data required to interact.

getClients()

Returns all the available clients to which the Plex server has access indexed by the Plex client name.

getLibrary()

Returns the Plex library belonging to the instantiated Plex server.

string
getName()

Returns the Plex server's name.

string
getAddress()

Returns the Plex server's IP address.

integer
getPort()

Returns the port on which the Plex server listens.

string
getToken()

Returns the token on which the Plex machine listens.

string
buildUrl(string $endpoint)

Generic way of building a url agains the Plex library.

mixed[]
getItems(string $endpoint)

Generic way of requesting Plex library items.

string
functionToType($function)

Given a function name, uses that name to decide what Plex library item item type with which the function is associated. This is useful when trying to polymorphically request items because we can use the calling function to abstractly identify what type of item with which we are dealing.

mixed[]
getSections()

Returns an array of user defined Plex library sections that can be used to interact with the items contained within.

mixed
getSectionByKey(integer $key) deprecated

Returns a Plex library section by its given key. Here we simply run self::getSections() because the endpoint /library/sections/ID does not return full section data, it returns the categories below the section.

mixed
getSection(integer|string $polymorphicData)

Returns a Plex library section by its given key or by a exact match on title. Here we simply run self::getSections() because the endpoint /library/sections/ID does not return full section data, it returns the categories below the section.

mixed[]
getRecentlyAddedItems()

Returns the recently added items at the library level.

mixed[]
getOnDeckItems()

Returns the on deck items at the library level.

void
setAttributes(array $attribute)

Adds the attributes to the object if they exist.

string
buildEndpoint(string $endpoint)

Generic method for building a Plex library section endpoint.

string
buildSearchEndpoint(integer $type, string $query)

Builds an endpoint to search a Plex library section.

getAllItems()

Generic method allowing a child class to retrieve all items for its section.

getUnwatchedItems()

Generic method allowing a child class to retrieve all unwatched items for its section.

getNewestItems()

Generic method allowing a child class to retrieve the newest items for its section.

getRecentlyAddedSectionItems()

Generic method allowing a child class to retrieve recently added items for its section. It is named slightly differently as it collided with the library method of the same name.

getOnDeckSectionItems()

Generic method allowing a child class to retrieve the on deck items for its section. It is named slightly differently as it collided with the library method of the same name.

getRecentlyViewedItems()

Generic method allowing a child class to retrieve recently viewed items for its section.

getItemsByCollection(integer $collectionKey)

Generic method allowing a child class to retrieve recently viewed items for its section.

getItemsByFirstCharacter(string $character)

Generic method allowing a child class to retrieve items by first character from its section.

getItemsByGenre(integer $genreKey)

Generic method allowing a child class to retrieve items by genre from its section.

getItemsByYear(integer $year)

Generic method allowing a child class to retrieve items by four digit year from its section

getPolymorphicItem(integer|string $polymorphicData, boolean $scopedToItem = FALSE)

A generic method to allow polymorphic retrieval of a single library item.

array
getFirstCharacters()

Returns a list with first letter of title, key and size for the child class's section. We use makeCall directly here, because we want to return just the raw array of caracters and not do any post processing on it.

array
getAlphabet()

Returns a list of alphanumeric of first letter for the child class's section.

array
getCollections()

Returns a list of collections for the child class's section. We use makeCall directly here, because we want to return just the raw array of collections and not do any post processing on it.

array
getGenres()

Returns a list of genres for the child class's section. We use makeCall directly here, because we want to return just the raw array of genres and not do any post processing on it.

factory(string $type, string $name, string $address, integer $port, string $token)

Static factory method used to instantiate child section classes by their type.

string
getArt()

Returns a reference to the section's art.

void
setArt(string $art)

Sets a reference to the section's art.

boolean
isRefreshing()

Tells whether the section is currently in the process of refreshing.

void
setRefreshing(boolean $refreshing)

Sets whether the section is currently in the process of refreshing.

integer
getKey()

Returns the section's key.

void
setKey(integer $key)

Sets the section's key.

string
getType()

Returns the section's type.

void
setType(string $type)

Sets the section's type.

string
getTitle()

Returns the section's title.

void
setTitle(string $title)

sets the section's title.

string
getAgent()

Returns the section's agent.

void
setAgent(string $agent)

Sets the section's agent.

string
getScanner()

Returns the section's scanner

void
setScanner(string $scanner)

Sets the section's scanner

string
getLanguage()

Returns the section's language.

void
setLanguage(string $language)

Sets the section's language.

string
getUuid()

Returns the section's universally unique identifier.

void
setUuid(string $uuid)

Sets the section's universally unique identifier.

getUpdatedAt()

Returns the time at which the section was last updated.

void
setUpdatedAt(integer $updatedAtTs)

Sets the time at which the section was last updated.

getCreatedAt()

Returns the time at which the section was created.

void
setCreatedAt(integer $createdAtTs)

Sets the time at which the section was last created.

Details

in Plex_MachineAbstract at line 78
protected string getBaseUrl()

Returns the base URL, which will be standard for all requests made to the Plex machine.

Return Value

string The base URL, which will be standard for all requests made to the Plex machine.

in Plex_MachineAbstract at line 102
protected array xmlAttributesToArray(SimpleXMLElement $xml, integer $pass = 0)

Typically the useful data returned by a Plex machine will containted in XML attributes. This allows a set of XML nodes to be passed and all the attribues extracted and returned as an associated array.

Parameters

SimpleXMLElement $xml An XML node to have its attributes converted to a useful PHP array.
integer $pass The number of recursive levels down the method has run. This is mainly used for determining if we are on our first pass or not because the data is picked up slightly differently on the first pass.

Return Value

array An associated array of XML attributes.

in Plex_MachineAbstract at line 149
protected array makeCall(string $url)

Utilizes php-curl to send a request to the passed URL and returns an XML document reprentation of the returned content.

Parameters

string $url The URL to which the request is to be made.

Return Value

array An XML document from a Plex machine converted in array.

Exceptions

Plex_Exception_Machine

in Plex_MachineAbstract at line 196
protected string getCallingFunction(integer $depth = 2)

Universal function so any method belonging to a child class of a Plex machine can discover which function called it. This is used mainly for some of our polymorphic requests as the calling function can tell us what type of item is being requested.

Parameters

integer $depth Depth defaults to 2 because 0 is this function and 1 will be the function that asked for the calling function. This can be changed by the calling function in case a specific calling function needs to be identified. This can be handy if the original calling function goes through a number of hops on its way to identification.

Return Value

string The name of the function that called the function that issued the getCallingFunction request.

in Plex_Server at line 75
void __construct(string $name, string $address, integer $port, string $token)

Sets up our Plex server using the minimum amount of data required to interact.

Parameters

string $name The name of the Plex server.
string $address The IP address of the Plex server.
integer $port The port on which the Plex server is listening.
string $token The token of the Plex server.

Return Value

void

in Plex_Server at line 99
Plex_Client[] getClients()

Returns all the available clients to which the Plex server has access indexed by the Plex client name.

Return Value

Plex_Client[] An array of Plex clients indexed by the Plex client name.

in Plex_Server at line 138
Plex_Server_Library getLibrary()

Returns the Plex library belonging to the instantiated Plex server.

Return Value

Plex_Server_Library The Plex library belonging to the instantiated Plex server.

in Plex_Server at line 155
string getName()

Returns the Plex server's name.

Return Value

string The name of the Plex machine.

in Plex_Server at line 167
string getAddress()

Returns the Plex server's IP address.

Return Value

string The IP address of the Plex machine.

in Plex_Server at line 179
integer getPort()

Returns the port on which the Plex server listens.

Return Value

integer The port on which the Plex machine listens.

in Plex_Server at line 191
string getToken()

Returns the token on which the Plex machine listens.

Return Value

string The token on which the Plex machine listens.

in Plex_Server_Library at line 123
protected string buildUrl(string $endpoint)

Generic way of building a url agains the Plex library.

Parameters

string $endpoint A URL endpoint of a Plex service.

Return Value

string A Plex library URL based on the given endpoint.

in Plex_Server_Library at line 160
protected mixed[] getItems(string $endpoint)

Generic way of requesting Plex library items.

Parameters

string $endpoint A URL endpoint of a Plex service.

Return Value

mixed[] An array of plex library items.

in Plex_Server_Library at line 204
string functionToType($function)

Given a function name, uses that name to decide what Plex library item item type with which the function is associated. This is useful when trying to polymorphically request items because we can use the calling function to abstractly identify what type of item with which we are dealing.

Parameters

$function

Return Value

string The type of item with which the given function is associated.

in Plex_Server_Library at line 240
mixed[] getSections()

Returns an array of user defined Plex library sections that can be used to interact with the items contained within.

Return Value

mixed[] An array of user defined Plex library sections.

in Plex_Server_Library at line 280
mixed getSectionByKey(integer $key) deprecated

deprecated This method is deprecated in lieu of the new getSection() method.

Returns a Plex library section by its given key. Here we simply run self::getSections() because the endpoint /library/sections/ID does not return full section data, it returns the categories below the section.

Parameters

integer $key The key of the requested section.

Return Value

mixed The request library section.

Exceptions

Plex_Exception_Server_Library

in Plex_Server_Library at line 311
mixed getSection(integer|string $polymorphicData)

Returns a Plex library section by its given key or by a exact match on title. Here we simply run self::getSections() because the endpoint /library/sections/ID does not return full section data, it returns the categories below the section.

Parameters

integer|string $polymorphicData The key or title of the requested section.

Return Value

mixed The request library section.

Exceptions

Plex_Exception_Server_Library()

in Plex_Server_Library at line 343
mixed[] getRecentlyAddedItems()

Returns the recently added items at the library level.

Return Value

mixed[] An array of plex library items.

in Plex_Server_Library at line 356
mixed[] getOnDeckItems()

Returns the on deck items at the library level.

Return Value

mixed[] An array of plex library items.

void setAttributes(array $attribute)

Adds the attributes to the object if they exist.

Parameters

array $attribute Array of attributes to be added to the object.

Return Value

void

protected string buildEndpoint(string $endpoint)

Generic method for building a Plex library section endpoint.

Parameters

string $endpoint The specific section endpoint to be added to the generic Plex library section endpoint.

Return Value

string The requested endpoint.

protected string buildSearchEndpoint(integer $type, string $query)

Builds an endpoint to search a Plex library section.

Parameters

integer $type The type of item to be searched.
string $query The string of text against which the search will be run.

Return Value

string The requested search endpoint.

protected Plex_Server_Library_ItemAbstract[] getAllItems()

Generic method allowing a child class to retrieve all items for its section.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected getUnwatchedItems()

Generic method allowing a child class to retrieve all unwatched items for its section.

protected getNewestItems()

Generic method allowing a child class to retrieve the newest items for its section.

protected Plex_Server_Library_ItemAbstract[] getRecentlyAddedSectionItems()

Generic method allowing a child class to retrieve recently added items for its section. It is named slightly differently as it collided with the library method of the same name.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getOnDeckSectionItems()

Generic method allowing a child class to retrieve the on deck items for its section. It is named slightly differently as it collided with the library method of the same name.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getRecentlyViewedItems()

Generic method allowing a child class to retrieve recently viewed items for its section.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getItemsByCollection(integer $collectionKey)

Generic method allowing a child class to retrieve recently viewed items for its section.

Parameters

integer $collectionKey Key that represents the collection by which the items will be retrieved. The collection key can be discovered by using the getCollections() method in this same class.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getItemsByFirstCharacter(string $character)

Generic method allowing a child class to retrieve items by first character from its section.

Parameters

string $character The first character by which the items will be retrieved.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getItemsByGenre(integer $genreKey)

Generic method allowing a child class to retrieve items by genre from its section.

Parameters

integer $genreKey Key that represents the genre by which the items will be retrieved. The genre key can be discovered by using the getGenres() method in this same class.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract[] getItemsByYear(integer $year)

Generic method allowing a child class to retrieve items by four digit year from its section

Parameters

integer $year Four digit year by which the items will be retrieved.

Return Value

Plex_Server_Library_ItemAbstract[] An array of Plex library items.

protected Plex_Server_Library_ItemAbstract getPolymorphicItem(integer|string $polymorphicData, boolean $scopedToItem = FALSE)

A generic method to allow polymorphic retrieval of a single library item.

This will take a rating key, a key, or a string that it will use to attempt an exact title match.

Parameters

integer|string $polymorphicData Either a rating key, a key, or a title for an exact title match that will be used to retrieve a single library item.
boolean $scopedToItem Tells the method whether or not we are scoped to an item. If we are scoped to an item then we are use get methods instead of search methods.

Return Value

Plex_Server_Library_ItemAbstract The request Plex library item.

Exceptions

Plex_Exception_Server_Library()

array getFirstCharacters()

Returns a list with first letter of title, key and size for the child class's section. We use makeCall directly here, because we want to return just the raw array of caracters and not do any post processing on it.

Return Value

array An array with data of the first character of the items.

array getAlphabet()

Returns a list of alphanumeric of first letter for the child class's section.

Return Value

array An array of first letter of the items.

array getCollections()

Returns a list of collections for the child class's section. We use makeCall directly here, because we want to return just the raw array of collections and not do any post processing on it.

Return Value

array An array of collections with their names and keys.

array getGenres()

Returns a list of genres for the child class's section. We use makeCall directly here, because we want to return just the raw array of genres and not do any post processing on it.

Return Value

array An array of genres with their names and keys.

static Plex_Server_Library_SectionAbstract factory(string $type, string $name, string $address, integer $port, string $token)

Static factory method used to instantiate child section classes by their type.

Parameters

string $type The type of child section class being instantiated.
string $name The name of the Plex server.
string $address The IP address of the Plex server.
integer $port The port on which the Plex server is listening.
string $token The $token of the Plex server.

Return Value

Plex_Server_Library_SectionAbstract An instantiated section child class.

string getArt()

Returns a reference to the section's art.

Return Value

string A reference to the section's art.

void setArt(string $art)

Sets a reference to the section's art.

Parameters

string $art A reference to the section's art.

Return Value

void

boolean isRefreshing()

Tells whether the section is currently in the process of refreshing.

Return Value

boolean Whether or not the section is refreshing.

void setRefreshing(boolean $refreshing)

Sets whether the section is currently in the process of refreshing.

Parameters

boolean $refreshing Whether or not the section is refreshing.

Return Value

void

integer getKey()

Returns the section's key.

Return Value

integer The section's key.

void setKey(integer $key)

Sets the section's key.

Parameters

integer $key The section's key.

Return Value

void

string getType()

Returns the section's type.

Return Value

string The section's type.

void setType(string $type)

Sets the section's type.

Parameters

string $type The section's type.

Return Value

void

string getTitle()

Returns the section's title.

Return Value

string The section's title.

void setTitle(string $title)

sets the section's title.

Parameters

string $title The section's title.

Return Value

void

string getAgent()

Returns the section's agent.

Return Value

string The section's agent.

void setAgent(string $agent)

Sets the section's agent.

Parameters

string $agent The section's agent.

Return Value

void

string getScanner()

Returns the section's scanner

Return Value

string The section's scanner.

void setScanner(string $scanner)

Sets the section's scanner

Parameters

string $scanner The section's scanner.

Return Value

void

string getLanguage()

Returns the section's language.

Return Value

string The section's language.

void setLanguage(string $language)

Sets the section's language.

Parameters

string $language The section's language.

Return Value

void

string getUuid()

Returns the section's universally unique identifier.

Return Value

string The section's universally unique identifier.

void setUuid(string $uuid)

Sets the section's universally unique identifier.

Parameters

string $uuid The section's universally unique identifier.

Return Value

void

DateTime getUpdatedAt()

Returns the time at which the section was last updated.

Return Value

DateTime The time at which the section was last updated.

void setUpdatedAt(integer $updatedAtTs)

Sets the time at which the section was last updated.

Parameters

integer $updatedAtTs The unix timestamp representing the time the section was last updated. This will be turned into a DateTime object.

Return Value

void

DateTime getCreatedAt()

Returns the time at which the section was created.

Return Value

DateTime The time at which the section was created.

void setCreatedAt(integer $createdAtTs)

Sets the time at which the section was last created.

Parameters

integer $createdAtTs The unix timestamp representing the time the section was created. This will be turned into a DateTime object.

Return Value

void