diff options
author | chriszero <zerov83@gmail.com> | 2014-11-15 19:43:07 +0100 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2014-11-15 19:43:07 +0100 |
commit | 23f9f7712bfa33b5a488a447a6fabe6035cc3240 (patch) | |
tree | 06bbe8e0bc52496c5ad3c41accc7524aa597e670 /MediaContainer.cpp | |
parent | a40adaf76fb1267d38b4c5e6386933ddb2d0d328 (diff) | |
download | vdr-plugin-plex-23f9f7712bfa33b5a488a447a6fabe6035cc3240.tar.gz vdr-plugin-plex-23f9f7712bfa33b5a488a447a6fabe6035cc3240.tar.bz2 |
initial commit
Diffstat (limited to 'MediaContainer.cpp')
-rw-r--r-- | MediaContainer.cpp | 46 |
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; + } +} + +} |