summaryrefslogtreecommitdiff
path: root/MediaContainer.cpp
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2014-11-15 19:43:07 +0100
committerchriszero <zerov83@gmail.com>2014-11-15 19:43:07 +0100
commit23f9f7712bfa33b5a488a447a6fabe6035cc3240 (patch)
tree06bbe8e0bc52496c5ad3c41accc7524aa597e670 /MediaContainer.cpp
parenta40adaf76fb1267d38b4c5e6386933ddb2d0d328 (diff)
downloadvdr-plugin-plex-23f9f7712bfa33b5a488a447a6fabe6035cc3240.tar.gz
vdr-plugin-plex-23f9f7712bfa33b5a488a447a6fabe6035cc3240.tar.bz2
initial commit
Diffstat (limited to 'MediaContainer.cpp')
-rw-r--r--MediaContainer.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/MediaContainer.cpp b/MediaContainer.cpp
new file mode 100644
index 0000000..08b386f
--- /dev/null
+++ b/MediaContainer.cpp
@@ -0,0 +1,46 @@
+#include "MediaContainer.h"
+
+namespace plexclient
+{
+MediaContainer::MediaContainer(std::istream* response)
+{
+ try {
+ InputSource src(*response);
+ DOMParser parser;
+ Poco::XML::AutoPtr<Document> pDoc = parser.parse(&src);
+
+ NodeIterator it(pDoc, Poco::XML::NodeFilter::SHOW_ALL);
+ Poco::XML::Node* pNode = it.nextNode();
+
+ while(pNode) {
+ if(Poco::icompare(pNode->nodeName(), "MediaContainer") == 0) {
+ Poco::XML::NamedNodeMap* pAttribs = pNode->attributes();
+
+ m_sTitle = GetNodeValue(pAttribs->getNamedItem("title1"));
+ m_sTitle2 = GetNodeValue(pAttribs->getNamedItem("title2"));
+ m_sThumb = GetNodeValue(pAttribs->getNamedItem("thumb"));
+ m_sViewGroup = GetNodeValue(pAttribs->getNamedItem("viewGroup"));
+ m_sLibrarySectionTitle = GetNodeValue(pAttribs->getNamedItem("librarySectionTitle"));
+ m_sLibrarySectionUUID = GetNodeValue(pAttribs->getNamedItem("librarySectionUUID"));
+ m_iLibrarySectionID = GetNodeValueAsInt(pAttribs->getNamedItem("librarySectionID"));
+ m_sMediaTagPrefix = GetNodeValue(pAttribs->getNamedItem("mediaTagPrefix"));
+ m_iSize = GetNodeValueAsInt(pAttribs->getNamedItem("size"));
+ m_bAllowSync = GetNodeValueAsBool(pAttribs->getNamedItem("allowSync"));
+ m_sArt = GetNodeValue(pAttribs->getNamedItem("art"));
+
+ pAttribs->release();
+ } else if(Poco::icompare(pNode->nodeName(), "Directory") == 0) {
+ m_vDirectories.push_back(Directory(pNode));
+ } else if(Poco::icompare(pNode->nodeName(), "Video") == 0) {
+ m_vVideos.push_back(Video(pNode));
+ }
+
+ pNode = it.nextNode();
+ }
+
+ } catch(Exception &exc) {
+ std::cerr << exc.displayText() << std::endl;
+ }
+}
+
+}