diff options
Diffstat (limited to 'update.c')
-rw-r--r-- | update.c | 80 |
1 files changed, 32 insertions, 48 deletions
@@ -188,18 +188,17 @@ int cUpdate::ReadScrapedEvents(void) { tEvents->getField(cTableEvents::fiScrSp)->name, lastScrap); } + select->build(" order by %s", tEvents->getField(cTableEvents::fiInsSp)->name); status += select->prepare(); if (status != success) { delete select; return 0; } - int eventId = 0; int seriesId = 0; int episodeId = 0; int movieId = 0; string channelId = ""; - int numNew = 0; for (int res = select->find(); res; res = select->fetch()) { eventId = tEvents->getIntValue(cTableEvents::fiUseId); @@ -266,23 +265,7 @@ void cUpdate::ReadEpisode(int episodeId, cTVDBSeries *series, string path) { int status = success; tEpisodes->clear(); tEpisodes->setValue(cTableSeriesEpisode::fiEpisodeId, episodeId); - cDbStatement *selectEpisode = new cDbStatement(tEpisodes); - selectEpisode->build("select "); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeName, cDBS::bndOut); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeNumber, cDBS::bndOut, ", "); - selectEpisode->bind(cTableSeriesEpisode::fiSeasonNumber, cDBS::bndOut, ", "); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeOverview, cDBS::bndOut, ", "); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeFirstAired, cDBS::bndOut, ", "); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeGuestStars, cDBS::bndOut, ", "); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeRating, cDBS::bndOut, ", "); - selectEpisode->build(" from %s where ", tEpisodes->TableName()); - selectEpisode->bind(cTableSeriesEpisode::fiEpisodeId, cDBS::bndIn | cDBS::bndSet); - status += selectEpisode->prepare(); - if (status != success) { - delete selectEpisode; - return; - } - int res = selectEpisode->find(); + int res = tEpisodes->find(); if (res) { scrapManager->AddSeriesEpisode(series, tEpisodes); LoadEpisodeImage(series, episodeId, path); @@ -290,8 +273,6 @@ void cUpdate::ReadEpisode(int episodeId, cTVDBSeries *series, string path) { if (season > 0) LoadSeasonPoster(series, season, path); } - selectEpisode->freeResult(); - delete selectEpisode; return; } @@ -301,8 +282,9 @@ void cUpdate::LoadEpisodeImage(cTVDBSeries *series, int episodeId, string path) iPath << path << "/" << "episode_" << episodeId << ".jpg"; string imgPath = iPath.str(); bool imgExists = FileExists(imgPath); - if (!CreateDirectory(path)) - return; + if (!imgExists) + if (!CreateDirectory(path)) + return; tSeriesMedia->clear(); cDbValue imageSize; cDBS::FieldDef imageSizeDef = { "media_content", cDBS::ffUInt, 0, 999, cDBS::ftData }; @@ -353,8 +335,9 @@ void cUpdate::LoadSeasonPoster(cTVDBSeries *series, int season, string path) { string imgPath = iPath.str(); string thumbPath = tPath.str(); bool imgExists = FileExists(imgPath); - if (!CreateDirectory(path)) - return; + if (!imgExists) + if (!CreateDirectory(path)) + return; tSeriesMedia->clear(); cDbValue imageSize; cDBS::FieldDef imageSizeDef = { "media_content", cDBS::ffUInt, 0, 999, cDBS::ftData }; @@ -443,8 +426,9 @@ void cUpdate::LoadSeriesActorThumb(cTVDBSeries *series, int actorId, string path iPath << path << "/" << "actor_" << actorId << ".jpg"; string imgPath = iPath.str(); bool imgExists = FileExists(imgPath); - if (!CreateDirectory(path)) - return; + if (!imgExists) + if (!CreateDirectory(path)) + return; cDbValue imageSize; cDBS::FieldDef imageSizeDef = { "media_content", cDBS::ffUInt, 0, 999, cDBS::ftData }; imageSize.setField(&imageSizeDef); @@ -1193,6 +1177,19 @@ void cUpdate::Action() { waitCondition.TimedWait(mutex, reconnectTimeout*1000); continue; } + //Update Recordings from Database + if (forceRecordingUpdate || (time(0) - lastScanNewRecDB > scanNewRecDBFreq)) { + if (!init && CheckEpgdBusy()) + continue; + int numNewRecs = ReadRecordings(); + if (numNewRecs > 0) { + int numSeries = ReadSeries(true); + int numMovies = ReadMovies(true); + tell(0, "Loaded %d new Recordings from Database, %d series, %d movies", numNewRecs, numSeries, numMovies); + } + forceRecordingUpdate = false; + } + //Update Events if (!config.headless && (forceUpdate || (time(0) - lastScan > scanFreq))) { if (!init && CheckEpgdBusy()) @@ -1206,35 +1203,22 @@ void cUpdate::Action() { init = false; continue; } - tell(0, "Loading new Series and Episodes from Database..."); + tell(0, "Loading new Movies from Database..."); time_t now = time(0); - int numNewSeries = ReadSeries(false); + int numNewMovies = ReadMovies(false); int dur = time(0) - now; - tell(0, "Loaded %d new Series and Episodes in %ds from Database", numNewSeries, dur); - //scrapManager->DumpSeries(5); + tell(0, "Loaded %d new Movies in %ds from Database", numNewMovies, dur); - tell(0, "Loading new Movies from Database..."); + tell(0, "Loading new Series and Episodes from Database..."); now = time(0); - int numNewMovies = ReadMovies(false); + int numNewSeries = ReadSeries(false); dur = time(0) - now; - tell(0, "Loaded %d new Movies in %ds from Database", numNewMovies, dur); - //scrapManager->DumpMovies(5); + tell(0, "Loaded %d new Series and Episodes in %ds from Database", numNewSeries, dur); + lastScan = time(0); forceUpdate = false; } - //Update Recordings from Database - if (forceRecordingUpdate || (time(0) - lastScanNewRecDB > scanNewRecDBFreq)) { - if (!init && CheckEpgdBusy()) - continue; - int numNewRecs = ReadRecordings(); - if (numNewRecs > 0) { - int numSeries = ReadSeries(true); - int numMovies = ReadMovies(true); - tell(0, "Loaded %d new Recordings from Database, %d series, %d movies", numNewRecs, numSeries, numMovies); - } - forceRecordingUpdate = false; - } - + //Scan new recordings if (init || forceVideoDirUpdate || (time(0) - lastScanNewRec > scanNewRecFreq)) { if (CheckEpgdBusy()) { |