From c79606ed11be8d88c9b6976323a68ea71935aaaf Mon Sep 17 00:00:00 2001 From: Matthias Kortstiege Date: Tue, 7 Apr 2015 10:11:04 +0200 Subject: [scraper] added GetArtwork function --- xbmc/addons/Scraper.cpp | 29 +++++++++++++++++++++++++++++ xbmc/addons/Scraper.h | 1 + 2 files changed, 30 insertions(+) diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp index 06f34f2f72..f763481355 100644 --- a/xbmc/addons/Scraper.cpp +++ b/xbmc/addons/Scraper.cpp @@ -1029,5 +1029,34 @@ bool CScraper::GetArtistDetails(CCurlFile &fcurl, const CScraperUrl &scurl, return fRet; } +bool CScraper::GetArtwork(XFILE::CCurlFile &fcurl, CVideoInfoTag &details) +{ + if (details.m_strIMDBNumber.empty()) + return false; + + CLog::Log(LOGDEBUG, "%s: Reading artwork for '%s' using %s scraper " + "(file: '%s', content: '%s', version: '%s')", __FUNCTION__, details.m_strIMDBNumber.c_str(), + Name().c_str(), Path().c_str(), ADDON::TranslateContent(Content()).c_str(), Version().asString().c_str()); + + std::vector vcsIn; + CScraperUrl scurl; + vcsIn.push_back(details.m_strIMDBNumber); + std::vector vcsOut = RunNoThrow("GetArt", scurl, fcurl, &vcsIn); + + bool fRet(false); + for (std::vector::const_iterator it = vcsOut.begin(); it != vcsOut.end(); ++it) + { + CXBMCTinyXML doc; + doc.Parse(*it, TIXML_ENCODING_UTF8); + if (!doc.RootElement()) + { + CLog::Log(LOGERROR, "%s: Unable to parse XML", __FUNCTION__); + return false; + } + fRet = details.Load(doc.RootElement(), it != vcsOut.begin()); + } + return fRet; +} + } diff --git a/xbmc/addons/Scraper.h b/xbmc/addons/Scraper.h index 7a0b0c68d4..e46f9decf2 100644 --- a/xbmc/addons/Scraper.h +++ b/xbmc/addons/Scraper.h @@ -149,6 +149,7 @@ public: CAlbum &album); bool GetArtistDetails(XFILE::CCurlFile &fcurl, const CScraperUrl &scurl, const std::string &sSearch, CArtist &artist); + bool GetArtwork(XFILE::CCurlFile &fcurl, CVideoInfoTag &details); private: CScraper(const CScraper &rhs); -- cgit v1.2.3