summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-05-14 07:10:39 +0200
committerlouis <louis.braun@gmx.de>2014-05-14 07:10:39 +0200
commit9691a7042c1b6b986966e7d1b5d41e86368ed64d (patch)
tree62c5ef8a372958ed3817d77ab6baeb31df57b5e3
parent482f1d284a99b61f9ce269b1f030734e8ffc8a95 (diff)
downloadvdr-plugin-scraper2vdr-9691a7042c1b6b986966e7d1b5d41e86368ed64d.tar.gz
vdr-plugin-scraper2vdr-9691a7042c1b6b986966e7d1b5d41e86368ed64d.tar.bz2
fixed a bug that series meta data is not loaded completely, fixed crash during shutdown of plugin
-rw-r--r--tvdbseries.c1
-rw-r--r--update.c24
-rw-r--r--update.h1
3 files changed, 22 insertions, 4 deletions
diff --git a/tvdbseries.c b/tvdbseries.c
index 4fc2192..663e622 100644
--- a/tvdbseries.c
+++ b/tvdbseries.c
@@ -108,6 +108,7 @@ void cTVDBSeries::InsertMedia(int mediaType, int imgWidth, int imgHeight, string
case msBanner2:
case msBanner3:
banners.push_back(media);
+ break;
case msSeasonPoster:
seasonPosters.insert(pair<int, cTVDBMedia*>(season, media));
break;
diff --git a/update.c b/update.c
index 8394678..a023181 100644
--- a/update.c
+++ b/update.c
@@ -30,6 +30,7 @@ cUpdate::cUpdate(cScrapManager *manager) : cThread("update thread started", true
selectReadScrapedEventsInit = 0;
selectReadScrapedEvents = 0;
selectImg = 0;
+ selectEpisodeImg = 0;
selectSeasonPoster = 0;
selectActors = 0;
selectActorThumbs = 0;
@@ -184,9 +185,24 @@ int cUpdate::initDb() {
selectImg->build(")");
selectImg->build(" from %s where ", tSeriesMedia->TableName());
selectImg->bind(cTableSeriesMedia::fiSeriesId, cDBS::bndIn | cDBS::bndSet);
- selectImg->bind(cTableSeriesMedia::fiEpisodeId, cDBS::bndIn | cDBS::bndSet, " and ");
status += selectImg->prepare();
+ // select episode image
+
+ imageSize.setField(&imageSizeDef);
+ selectEpisodeImg = new cDbStatement(tSeriesMedia);
+ selectEpisodeImg->build("select ");
+ selectEpisodeImg->bind(cTableSeriesMedia::fiMediaWidth, cDBS::bndOut);
+ selectEpisodeImg->bind(cTableSeriesMedia::fiMediaHeight, cDBS::bndOut, ", ");
+ selectEpisodeImg->bind(cTableSeriesMedia::fiMediaContent, cDBS::bndOut, ", ");
+ selectEpisodeImg->build(", length(");
+ selectEpisodeImg->bind(&imageSize, cDBS::bndOut);
+ selectEpisodeImg->build(")");
+ selectEpisodeImg->build(" from %s where ", tSeriesMedia->TableName());
+ selectEpisodeImg->bind(cTableSeriesMedia::fiSeriesId, cDBS::bndIn | cDBS::bndSet);
+ selectEpisodeImg->bind(cTableSeriesMedia::fiEpisodeId, cDBS::bndIn | cDBS::bndSet, " and ");
+ status += selectEpisodeImg->prepare();
+
// select poster image
posterSize.setField(&imageSizeDef);
@@ -360,6 +376,7 @@ int cUpdate::exitDb() {
delete selectReadScrapedEvents; selectReadScrapedEvents = 0;
delete selectReadScrapedEventsInit; selectReadScrapedEventsInit = 0;
delete selectImg; selectImg = 0;
+ delete selectEpisodeImg; selectEpisodeImg = 0;
delete selectSeasonPoster; selectSeasonPoster = 0;
delete selectActors; selectActors = 0;
delete selectActorThumbs; selectActorThumbs = 0;
@@ -537,7 +554,7 @@ void cUpdate::LoadEpisodeImage(cTVDBSeries *series, int episodeId, string path)
tSeriesMedia->setValue(cTableSeriesMedia::fiSeriesId, series->id);
tSeriesMedia->setValue(cTableSeriesMedia::fiEpisodeId, episodeId);
- int res = selectImg->find();
+ int res = selectEpisodeImg->find();
if (res) {
if (!imgExists) {
@@ -552,7 +569,7 @@ void cUpdate::LoadEpisodeImage(cTVDBSeries *series, int episodeId, string path)
series->InsertEpisodeImage(episodeId, imgWidth, imgHeight, imgPath);
}
- selectImg->freeResult();
+ selectEpisodeImg->freeResult();
}
void cUpdate::LoadSeasonPoster(cTVDBSeries *series, int season, string path) {
@@ -708,7 +725,6 @@ string cUpdate::LoadMediaSeries(int seriesId, int mediaType, string path, int wi
tSeriesMedia->clear();
tSeriesMedia->setValue(cTableSeriesMedia::fiSeriesId, seriesId);
tSeriesMedia->setValue(cTableSeriesMedia::fiMediaType, mediaType);
-
int res = selectImg->find();
if (res) {
int size = imageSize.getIntValue();
diff --git a/update.h b/update.h
index 484dc3c..55d6b19 100644
--- a/update.h
+++ b/update.h
@@ -76,6 +76,7 @@ class cUpdate : public cThread {
cDbStatement* selectReadScrapedEventsInit;
cDbStatement* selectReadScrapedEvents;
cDbStatement* selectImg;
+ cDbStatement* selectEpisodeImg;
cDbStatement* selectSeasonPoster;
cDbStatement* selectActors;
cDbStatement* selectActorThumbs;