mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
projects/RPi/patches/kodi: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
ebcb3e8d10
commit
60c0006307
@ -114,451 +114,6 @@ index 0000000..4ac5636
|
||||
+ }
|
||||
+ }
|
||||
|
||||
From 5116901918bb718694906bbe731df901a33e356b Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Marshall <jmarshall@xbmc.org>
|
||||
Date: Sat, 2 Nov 2013 23:49:17 +1300
|
||||
Subject: [PATCH 03/96] adds GetTvShowSeasons
|
||||
|
||||
---
|
||||
xbmc/video/VideoDatabase.cpp | 30 ++++++++++++++++++++++++------
|
||||
xbmc/video/VideoDatabase.h | 1 +
|
||||
2 files changed, 25 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp
|
||||
index 21391dd..0249ed6 100644
|
||||
--- a/xbmc/video/VideoDatabase.cpp
|
||||
+++ b/xbmc/video/VideoDatabase.cpp
|
||||
@@ -4213,7 +4213,7 @@ bool CVideoDatabase::RemoveArtForItem(int mediaId, const MediaType &mediaType, c
|
||||
return result;
|
||||
}
|
||||
|
||||
-bool CVideoDatabase::GetTvShowSeasonArt(int showId, map<int, map<string, string> > &seasonArt)
|
||||
+bool CVideoDatabase::GetTvShowSeasons(int showId, map<int, int> &seasons)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -4224,19 +4224,37 @@ bool CVideoDatabase::GetTvShowSeasonArt(int showId, map<int, map<string, string>
|
||||
CStdString sql = PrepareSQL("select idSeason,season from seasons where idShow=%i", showId);
|
||||
m_pDS2->query(sql.c_str());
|
||||
|
||||
- vector< pair<int, int> > seasons;
|
||||
+ seasons.clear();
|
||||
while (!m_pDS2->eof())
|
||||
{
|
||||
- seasons.push_back(make_pair(m_pDS2->fv(0).get_asInt(), m_pDS2->fv(1).get_asInt()));
|
||||
+ seasons.insert(make_pair(m_pDS2->fv(1).get_asInt(), m_pDS2->fv(0).get_asInt()));
|
||||
m_pDS2->next();
|
||||
}
|
||||
m_pDS2->close();
|
||||
+ return true;
|
||||
+ }
|
||||
+ catch (...)
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "%s(%d) failed", __FUNCTION__, showId);
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+bool CVideoDatabase::GetTvShowSeasonArt(int showId, map<int, map<string, string> > &seasonArt)
|
||||
+{
|
||||
+ try
|
||||
+ {
|
||||
+ if (NULL == m_pDB.get()) return false;
|
||||
+ if (NULL == m_pDS2.get()) return false; // using dataset 2 as we're likely called in loops on dataset 1
|
||||
+
|
||||
+ map<int, int> seasons;
|
||||
+ GetTvShowSeasons(showId, seasons);
|
||||
|
||||
- for (vector< pair<int,int> >::const_iterator i = seasons.begin(); i != seasons.end(); ++i)
|
||||
+ for (map<int, int>::const_iterator i = seasons.begin(); i != seasons.end(); ++i)
|
||||
{
|
||||
map<string, string> art;
|
||||
- GetArtForItem(i->first, MediaTypeSeason, art);
|
||||
- seasonArt.insert(make_pair(i->second,art));
|
||||
+ GetArtForItem(i->second, MediaTypeSeason, art);
|
||||
+ seasonArt.insert(make_pair(i->first,art));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h
|
||||
index 78259ed..cbb26b7 100644
|
||||
--- a/xbmc/video/VideoDatabase.h
|
||||
+++ b/xbmc/video/VideoDatabase.h
|
||||
@@ -746,6 +746,7 @@ class CVideoDatabase : public CDatabase
|
||||
std::string GetArtForItem(int mediaId, const MediaType &mediaType, const std::string &artType);
|
||||
bool RemoveArtForItem(int mediaId, const MediaType &mediaType, const std::string &artType);
|
||||
bool RemoveArtForItem(int mediaId, const MediaType &mediaType, const std::set<std::string> &artTypes);
|
||||
+ bool GetTvShowSeasons(int showId, std::map<int, int> &seasons);
|
||||
bool GetTvShowSeasonArt(int mediaId, std::map<int, std::map<std::string, std::string> > &seasonArt);
|
||||
bool GetArtTypes(const MediaType &mediaType, std::vector<std::string> &artTypes);
|
||||
|
||||
|
||||
From eb300fcaab79f877d913e2d38fb15cdd97858fc6 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Marshall <jmarshall@xbmc.org>
|
||||
Date: Sat, 2 Nov 2013 23:50:10 +1300
|
||||
Subject: [PATCH 04/96] move AddSeason() public.
|
||||
|
||||
---
|
||||
xbmc/video/VideoDatabase.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h
|
||||
index cbb26b7..1a79c00 100644
|
||||
--- a/xbmc/video/VideoDatabase.h
|
||||
+++ b/xbmc/video/VideoDatabase.h
|
||||
@@ -757,6 +757,7 @@ class CVideoDatabase : public CDatabase
|
||||
|
||||
virtual bool GetFilter(CDbUrl &videoUrl, Filter &filter, SortDescription &sorting);
|
||||
|
||||
+ int AddSeason(int showID, int season);
|
||||
int AddSet(const CStdString& strSet);
|
||||
void ClearMovieSet(int idMovie);
|
||||
void SetMovieSet(int idMovie, int idSet);
|
||||
@@ -787,7 +788,6 @@ class CVideoDatabase : public CDatabase
|
||||
|
||||
int AddTvShow();
|
||||
int AddMusicVideo(const CStdString& strFilenameAndPath);
|
||||
- int AddSeason(int showID, int season);
|
||||
|
||||
/*! \brief Adds a path to the tvshow link table.
|
||||
\param idShow the id of the show.
|
||||
|
||||
From 69ed0c95572c3371d2f6d45cfc27610656e6002f Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Marshall <jmarshall@xbmc.org>
|
||||
Date: Sat, 2 Nov 2013 23:48:24 +1300
|
||||
Subject: [PATCH 05/96] adds GetArt function to (video) scraper, allowing art
|
||||
to be fetched given the video identifier.
|
||||
|
||||
---
|
||||
xbmc/addons/Scraper.cpp | 38 ++++++++++++++++++++++++++++++++++++++
|
||||
xbmc/addons/Scraper.h | 3 +++
|
||||
xbmc/video/VideoInfoDownloader.cpp | 5 +++++
|
||||
xbmc/video/VideoInfoDownloader.h | 7 +++++++
|
||||
4 files changed, 53 insertions(+)
|
||||
|
||||
diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp
|
||||
index 4d22ce7..36865ac 100644
|
||||
--- a/xbmc/addons/Scraper.cpp
|
||||
+++ b/xbmc/addons/Scraper.cpp
|
||||
@@ -924,6 +924,44 @@ EPISODELIST CScraper::GetEpisodeList(XFILE::CCurlFile &fcurl, const CScraperUrl
|
||||
return vcep;
|
||||
}
|
||||
|
||||
+// takes URL; returns true and populates art XML details on success, false otherwise
|
||||
+bool CScraper::GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfoTag &video)
|
||||
+{
|
||||
+ CLog::Log(LOGDEBUG, "%s: Reading art for '%s' using %s scraper "
|
||||
+ "(file: '%s', content: '%s', version: '%s')", __FUNCTION__, id.c_str(), Name().c_str(), Path().c_str(),
|
||||
+ ADDON::TranslateContent(Content()).c_str(), Version().asString().c_str());
|
||||
+
|
||||
+ video.Reset();
|
||||
+ vector<string> vcsIn;
|
||||
+ CScraperUrl scurl;
|
||||
+ vcsIn.push_back(id);
|
||||
+ vector<string> vcsOut = RunNoThrow("GetArt", scurl, fcurl, &vcsIn);
|
||||
+
|
||||
+ // parse XML output
|
||||
+ bool fRet(false);
|
||||
+ for (vector<string>::const_iterator i = vcsOut.begin(); i != vcsOut.end(); ++i)
|
||||
+ {
|
||||
+ CXBMCTinyXML doc;
|
||||
+ doc.Parse(*i, TIXML_ENCODING_UTF8);
|
||||
+ if (!doc.RootElement())
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "%s: Unable to parse XML", __FUNCTION__);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ TiXmlHandle xhDoc(&doc);
|
||||
+ TiXmlElement *pxeDetails = xhDoc.FirstChild("details").Element();
|
||||
+ if (!pxeDetails)
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "%s: Invalid XML file (want <details>)", __FUNCTION__);
|
||||
+ continue;
|
||||
+ }
|
||||
+ video.Load(pxeDetails, true/*fChain*/);
|
||||
+ fRet = true; // but don't exit in case of chaining
|
||||
+ }
|
||||
+ return fRet;
|
||||
+}
|
||||
+
|
||||
// takes URL; returns true and populates video details on success, false otherwise
|
||||
bool CScraper::GetVideoDetails(XFILE::CCurlFile &fcurl, const CScraperUrl &scurl,
|
||||
bool fMovie/*else episode*/, CVideoInfoTag &video)
|
||||
diff --git a/xbmc/addons/Scraper.h b/xbmc/addons/Scraper.h
|
||||
index c7274f2..5df5296 100644
|
||||
--- a/xbmc/addons/Scraper.h
|
||||
+++ b/xbmc/addons/Scraper.h
|
||||
@@ -18,6 +18,8 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
+
|
||||
+#include <string>
|
||||
#include "addons/Addon.h"
|
||||
#include "XBDateTime.h"
|
||||
#include "utils/ScraperUrl.h"
|
||||
@@ -146,6 +148,7 @@ class CScraper : public CAddon
|
||||
CAlbum &album);
|
||||
bool GetArtistDetails(XFILE::CCurlFile &fcurl, const CScraperUrl &scurl,
|
||||
const std::string &sSearch, CArtist &artist);
|
||||
+ bool GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfoTag &video);
|
||||
|
||||
private:
|
||||
CScraper(const CScraper &rhs);
|
||||
diff --git a/xbmc/video/VideoInfoDownloader.cpp b/xbmc/video/VideoInfoDownloader.cpp
|
||||
index f33ac8a..5d84734 100644
|
||||
--- a/xbmc/video/VideoInfoDownloader.cpp
|
||||
+++ b/xbmc/video/VideoInfoDownloader.cpp
|
||||
@@ -191,6 +191,11 @@ bool CVideoInfoDownloader::GetDetails(const CScraperUrl &url,
|
||||
return m_info->GetVideoDetails(*m_http, url, true/*fMovie*/, movieDetails);
|
||||
}
|
||||
|
||||
+bool CVideoInfoDownloader::GetArt(const std::string &id, CVideoInfoTag &details)
|
||||
+{
|
||||
+ return m_info->GetArt(*m_http, id, details);
|
||||
+}
|
||||
+
|
||||
bool CVideoInfoDownloader::GetEpisodeDetails(const CScraperUrl &url,
|
||||
CVideoInfoTag &movieDetails,
|
||||
CGUIDialogProgress *pProgress /* = NULL */)
|
||||
diff --git a/xbmc/video/VideoInfoDownloader.h b/xbmc/video/VideoInfoDownloader.h
|
||||
index 22ac229..75bc341 100644
|
||||
--- a/xbmc/video/VideoInfoDownloader.h
|
||||
+++ b/xbmc/video/VideoInfoDownloader.h
|
||||
@@ -59,6 +59,13 @@ class CVideoInfoDownloader : public CThread
|
||||
|
||||
static void ShowErrorDialog(const ADDON::CScraperError &sce);
|
||||
|
||||
+ /*! \brief Grab art URLs for an item with the scraper
|
||||
+ \param id the unique identifier used by the scraper to describe the item.
|
||||
+ \param details [out] the video info tag structure to fill with art.
|
||||
+ \return true on success, false on failure.
|
||||
+ */
|
||||
+ bool GetArt(const std::string &id, CVideoInfoTag &details);
|
||||
+
|
||||
protected:
|
||||
enum LOOKUP_STATE { DO_NOTHING = 0,
|
||||
FIND_MOVIE = 1,
|
||||
|
||||
From e56fe6d246ef40dca634d78f393279e361c90e9f Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Marshall <jmarshall@xbmc.org>
|
||||
Date: Sat, 2 Nov 2013 23:53:14 +1300
|
||||
Subject: [PATCH 06/96] refresh season art if a new season is found that isn't
|
||||
recorded in the database yet. Fixes #14339
|
||||
|
||||
---
|
||||
xbmc/video/VideoInfoScanner.cpp | 33 ++++++++++++++++++++++++++++++++-
|
||||
xbmc/video/VideoInfoScanner.h | 2 ++
|
||||
2 files changed, 34 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp
|
||||
index cb6a4fe..fe1355c 100644
|
||||
--- a/xbmc/video/VideoInfoScanner.cpp
|
||||
+++ b/xbmc/video/VideoInfoScanner.cpp
|
||||
@@ -1405,6 +1405,10 @@ namespace VIDEO
|
||||
pDlgProgress->Progress();
|
||||
}
|
||||
|
||||
+ bool updateSeasons = false;
|
||||
+ map<int, int> seasons;
|
||||
+ m_database.GetTvShowSeasons(showInfo.m_iDbId, seasons);
|
||||
+
|
||||
EPISODELIST episodes;
|
||||
bool hasEpisodeGuide = false;
|
||||
|
||||
@@ -1453,6 +1457,8 @@ namespace VIDEO
|
||||
}
|
||||
if (AddVideo(&item, CONTENT_TVSHOWS, file->isFolder, true, &showInfo) < 0)
|
||||
return INFO_ERROR;
|
||||
+ if (seasons.find(item.GetVideoInfoTag()->m_iSeason) == seasons.end())
|
||||
+ updateSeasons = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1582,6 +1588,8 @@ namespace VIDEO
|
||||
|
||||
if (AddVideo(&item, CONTENT_TVSHOWS, file->isFolder, useLocal, &showInfo) < 0)
|
||||
return INFO_ERROR;
|
||||
+ if (seasons.find(item.GetVideoInfoTag()->m_iSeason) == seasons.end())
|
||||
+ updateSeasons = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1590,9 +1598,27 @@ namespace VIDEO
|
||||
file->cDate.GetAsLocalizedDate().c_str(), file->strTitle.c_str());
|
||||
}
|
||||
}
|
||||
+ if (updateSeasons)
|
||||
+ UpdateSeasons(showInfo, scraper, useLocal);
|
||||
return INFO_ADDED;
|
||||
}
|
||||
|
||||
+ void CVideoInfoScanner::UpdateSeasons(const CVideoInfoTag &showInfo, const ADDON::ScraperPtr &scraper, bool useLocal)
|
||||
+ {
|
||||
+ map<int, map<string, string> > seasonArt;
|
||||
+ m_database.GetTvShowSeasonArt(showInfo.m_iDbId, seasonArt);
|
||||
+ CVideoInfoTag details;
|
||||
+ CVideoInfoDownloader loader(scraper);
|
||||
+ loader.GetArt(showInfo.m_strIMDBNumber, details);
|
||||
+ details.m_strPath = showInfo.m_strPath;
|
||||
+ GetSeasonThumbs(details, seasonArt, CVideoThumbLoader::GetArtTypes("season"), useLocal);
|
||||
+ for (map<int, map<string, string> >::iterator i = seasonArt.begin(); i != seasonArt.end(); ++i)
|
||||
+ {
|
||||
+ int seasonID = m_database.AddSeason(showInfo.m_iDbId, i->first);
|
||||
+ m_database.SetArtForItem(seasonID, "season", i->second);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
CStdString CVideoInfoScanner::GetnfoFile(CFileItem *item, bool bGrabAny) const
|
||||
{
|
||||
CStdString nfoFile;
|
||||
@@ -1857,6 +1883,11 @@ namespace VIDEO
|
||||
}
|
||||
for (int season = -1; season <= maxSeasons; season++)
|
||||
{
|
||||
+ // skip if we already have some art
|
||||
+ map<int, map<string, string> >::const_iterator i = seasonArt.find(season);
|
||||
+ if (i != seasonArt.end() && !i->second.empty())
|
||||
+ continue;
|
||||
+
|
||||
map<string, string> art;
|
||||
if (useLocal)
|
||||
{
|
||||
@@ -1910,7 +1941,7 @@ namespace VIDEO
|
||||
art.insert(make_pair(artTypes.front(), image));
|
||||
}
|
||||
|
||||
- seasonArt.insert(make_pair(season, art));
|
||||
+ seasonArt[season] = art;
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/xbmc/video/VideoInfoScanner.h b/xbmc/video/VideoInfoScanner.h
|
||||
index 28bd2bf..a0f9d53 100644
|
||||
--- a/xbmc/video/VideoInfoScanner.h
|
||||
+++ b/xbmc/video/VideoInfoScanner.h
|
||||
@@ -232,6 +232,8 @@ namespace VIDEO
|
||||
*/
|
||||
INFO_RET OnProcessSeriesFolder(EPISODELIST& files, const ADDON::ScraperPtr &scraper, bool useLocal, const CVideoInfoTag& showInfo, CGUIDialogProgress* pDlgProgress = NULL);
|
||||
|
||||
+ void UpdateSeasons(const CVideoInfoTag &showInfo, const ADDON::ScraperPtr &scraper, bool useLocal);
|
||||
+
|
||||
bool EnumerateSeriesFolder(CFileItem* item, EPISODELIST& episodeList);
|
||||
bool ProcessItemByVideoInfoTag(const CFileItem *item, EPISODELIST &episodeList);
|
||||
|
||||
|
||||
From 1b57e14b00d8fc755c66f646e4bfaebf9beb927d Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Marshall <jmarshall@xbmc.org>
|
||||
Date: Sat, 2 Nov 2013 23:53:34 +1300
|
||||
Subject: [PATCH 07/96] REMOVEME: updated thetvdb.com scraper to support art
|
||||
updates
|
||||
|
||||
---
|
||||
addons/metadata.tvdb.com/tvdb.xml | 59 +++++++++++++++++++++++++--------------
|
||||
1 file changed, 38 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/addons/metadata.tvdb.com/tvdb.xml b/addons/metadata.tvdb.com/tvdb.xml
|
||||
index f27e4fc..bdf329f 100644
|
||||
--- a/addons/metadata.tvdb.com/tvdb.xml
|
||||
+++ b/addons/metadata.tvdb.com/tvdb.xml
|
||||
@@ -102,57 +102,74 @@
|
||||
<RegExp input="$$5" output="<actor><name>\2</name><role>\3</role></actor>" dest="4+">
|
||||
<expression repeat="yes" noclean="1,2,3"><Actor>.*?<Image>([^<]*)</Image>.*?<Name>([^<]*)</Name>.*?<Role>([^<]*)</expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$2" output="<chain function="GetArt">\1</chain>" dest="4+">
|
||||
+ <expression/>
|
||||
+ </RegExp>
|
||||
+ <RegExp input="$$3" output="\1" dest="6">
|
||||
+ <expression>.*/(.*).zip</expression>
|
||||
+ </RegExp>
|
||||
+ <RegExp input="$$3" output="<episodeguide><url cache="$$2-$$6.xml">\1</url></episodeguide>" dest="4+">
|
||||
+ <expression/>
|
||||
+ </RegExp>
|
||||
+ <expression noclean="1"/>
|
||||
+ </RegExp>
|
||||
+ </GetDetails>
|
||||
+
|
||||
+ <GetArt dest="3">
|
||||
+ <RegExp input="$$4" output="<details>\1</details>" dest="3">
|
||||
+ <RegExp input="$$1" output="<url function="ParseArt" cache="\1-banners.xml">http://thetvdb.com/api/1D62F2F90030C444/series/\1/banners.xml</url>" dest="4">
|
||||
+ <expression/>
|
||||
+ </RegExp>
|
||||
+ <expression noclean="1"/>
|
||||
+ </RegExp>
|
||||
+ </GetArt>
|
||||
+ <ParseArt dest="3">
|
||||
+ <RegExp input="$$4" output="<details>\1</details>" dest="3">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>series</BannerType>[^<]*<BannerType2>graphical</BannerType2>[^<]*<Language>$INFO[language]</Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>series</BannerType>[^<]*<BannerType2>graphical</BannerType2>[^<]*<Language>((?!$INFO[language])[a-z])*</Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>series</BannerType>[^<]*<BannerType2>text</BannerType2>[^<]*<Language>$INFO[language]</Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>series</BannerType>[^<]*<BannerType2>text</BannerType2>[^<]*<Language>((?!$INFO[language])[a-z])*</Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>series</BannerType>[^<]*<BannerType2>blank</BannerType2>[^<]*<Language></Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="poster" type="season" season="\2">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="poster" type="season" season="\2">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>season</BannerType>[^<]*<BannerType2>season</BannerType2>[^<]*<Language>$INFO[language]</Language>[^<]*[^S]*Season>([0-9]+)</Season></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="poster" type="season" season="\3">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="poster" type="season" season="\3">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>season</BannerType>[^<]*<BannerType2>season</BannerType2>[^<]*<Language>((?!$INFO[language])[a-z])*</Language>[^<]*[^S]*Season>([0-9]+)</Season></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner" type="season" season="\2">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner" type="season" season="\2">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>season</BannerType>[^<]*<BannerType2>seasonwide</BannerType2>[^<]*<Language>$INFO[language]</Language>[^<]*[^S]*Season>([0-9]+)</Season></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="banner" type="season" season="\3">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="banner" type="season" season="\3">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>season</BannerType>[^<]*<BannerType2>seasonwide</BannerType2>[^<]*<Language>((?!$INFO[language])[a-z])*</Language>[^<]*[^S]*Season>([0-9]+)</Season></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="poster">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="poster">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>poster</BannerType></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb aspect="poster" type="season" season="-1">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb aspect="poster" type="season" season="-1">http://thetvdb.com/banners/\1</thumb>" dest="4+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>poster</BannerType></expression>
|
||||
</RegExp>
|
||||
- <RegExp conditional="fanart" input="$$7" output="<fanart url="http://thetvdb.com/banners/">\1</fanart>" dest="4+">
|
||||
- <RegExp input="$$5" output="<thumb dim="\2" colors="\3" preview="_cache/\1">\1</thumb>" dest="7+">
|
||||
+ <RegExp conditional="fanart" input="$$5" output="<fanart url="http://thetvdb.com/banners/">\1</fanart>" dest="4+">
|
||||
+ <RegExp input="$$1" output="<thumb dim="\2" colors="\3" preview="_cache/\1">\1</thumb>" dest="5">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>fanart</BannerType>[^<]*<BannerType2>([^<]*)</BannerType2>[^<]*<Colors>([^<]*)</Colors>[^<]*<Language>$INFO[language]</Language></expression>
|
||||
</RegExp>
|
||||
- <RegExp input="$$5" output="<thumb dim="\2" colors="\3" preview="_cache/\1">\1</thumb>" dest="7+">
|
||||
+ <RegExp input="$$1" output="<thumb dim="\2" colors="\3" preview="_cache/\1">\1</thumb>" dest="5+">
|
||||
<expression repeat="yes"><BannerPath>([^<]*)</BannerPath>[^<]*<BannerType>fanart</BannerType>[^<]*<BannerType2>([^<]*)</BannerType2>[^<]*<Colors>([^<]*)</Colors>[^<]*<Language>((?!$INFO[language])[a-z])*</Language></expression>
|
||||
</RegExp>
|
||||
<expression noclean="1"/>
|
||||
</RegExp>
|
||||
- <RegExp input="$$3" output="\1" dest="6">
|
||||
- <expression>.*/(.*).zip</expression>
|
||||
- </RegExp>
|
||||
- <RegExp input="$$3" output="<episodeguide><url cache="$$2-$$6.xml">\1</url></episodeguide>" dest="4+">
|
||||
- <expression/>
|
||||
- </RegExp>
|
||||
<expression noclean="1"/>
|
||||
</RegExp>
|
||||
- </GetDetails>
|
||||
+ </ParseArt>
|
||||
|
||||
<!-- input: $1=html !-->
|
||||
<!-- input: $2=series url !-->
|
||||
|
||||
From 93085d1cd4ca39f8be362d187a289dcfdbb259e2 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sat, 2 Aug 2014 17:48:04 +0100
|
||||
@ -10419,38 +9974,6 @@ index 03a05de..c0ff30d 100644
|
||||
// we only want to upload frames once
|
||||
if (buffer->flipindex++)
|
||||
|
||||
From b1b3b79b2dfd39574fb9fe6dcbc3c2e4cf7077cc Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 19 Nov 2014 20:36:56 +0000
|
||||
Subject: [PATCH 95/96] scraper: Fix for losing infotags when artwork grab
|
||||
fails suggested by menakite
|
||||
|
||||
---
|
||||
xbmc/addons/Scraper.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp
|
||||
index 36865ac..d430f15 100644
|
||||
--- a/xbmc/addons/Scraper.cpp
|
||||
+++ b/xbmc/addons/Scraper.cpp
|
||||
@@ -931,7 +931,6 @@ bool CScraper::GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfo
|
||||
"(file: '%s', content: '%s', version: '%s')", __FUNCTION__, id.c_str(), Name().c_str(), Path().c_str(),
|
||||
ADDON::TranslateContent(Content()).c_str(), Version().asString().c_str());
|
||||
|
||||
- video.Reset();
|
||||
vector<string> vcsIn;
|
||||
CScraperUrl scurl;
|
||||
vcsIn.push_back(id);
|
||||
@@ -956,6 +955,8 @@ bool CScraper::GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfo
|
||||
CLog::Log(LOGERROR, "%s: Invalid XML file (want <details>)", __FUNCTION__);
|
||||
continue;
|
||||
}
|
||||
+ if (!fRet)
|
||||
+ video.Reset();
|
||||
video.Load(pxeDetails, true/*fChain*/);
|
||||
fRet = true; // but don't exit in case of chaining
|
||||
}
|
||||
|
||||
From a815b2f685515f3669f33d842421dbaad278def8 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 19 Nov 2014 20:57:10 +0000
|
||||
|
Loading…
x
Reference in New Issue
Block a user