diff options
author | louis <louis.braun@gmx.de> | 2013-08-27 06:48:56 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2013-08-27 06:48:56 +0200 |
commit | 2e460f46395dd61931d3dd431a7ad8dd465f1b81 (patch) | |
tree | 36efe9fc04938b15805fdda631c08ecd1f3e898a | |
parent | db1cd1a028511a0df3a12025a61850018fe2d974 (diff) | |
download | vdr-plugin-tvscraper-2e460f46395dd61931d3dd431a7ad8dd465f1b81.tar.gz vdr-plugin-tvscraper-2e460f46395dd61931d3dd431a7ad8dd465f1b81.tar.bz2 |
Scrap a running recording if it is not scraped already
-rw-r--r-- | HISTORY | 3 | ||||
-rw-r--r-- | tvscraperdb.c | 8 | ||||
-rw-r--r-- | tvscraperdb.h | 4 | ||||
-rw-r--r-- | worker.c | 13 |
4 files changed, 21 insertions, 7 deletions
@@ -19,3 +19,6 @@ Version 0.0.3 - Implemented cache so that an already looked up series or movie will not be looked up again - Removed quotation marks around search strings + +Version 0.0.4 +- Scrap a running recording if it is not scraped already diff --git a/tvscraperdb.c b/tvscraperdb.c index 245e43e..86f9fec 100644 --- a/tvscraperdb.c +++ b/tvscraperdb.c @@ -461,7 +461,7 @@ void cTVScraperDB::InsertRecording(int recEventID, int seriesID, int movieID) { int ret = sqlite3_step(stmt);
}
-void cTVScraperDB::SetRecordingSeries(int eventID) {
+bool cTVScraperDB::SetRecordingSeries(int eventID) {
stringstream sql;
sql << "select series_id from event_series where event_id = " << eventID;
vector<vector<string> > result = Query(sql.str());
@@ -471,11 +471,13 @@ void cTVScraperDB::SetRecordingSeries(int eventID) { if (row.size() > 0) {
int seriesID = atoi(row[0].c_str());
InsertRecording(eventID, seriesID, 0);
+ return true;
}
}
+ return false;
}
-void cTVScraperDB::SetRecordingMovie(int eventID) {
+bool cTVScraperDB::SetRecordingMovie(int eventID) {
stringstream sql;
sql << "select movie_id from event_movie where event_id =" << eventID;
vector<vector<string> > result = Query(sql.str());
@@ -485,8 +487,10 @@ void cTVScraperDB::SetRecordingMovie(int eventID) { if (row.size() > 0) {
int movieID = atoi(row[0].c_str());
InsertRecording(eventID, 0, movieID);
+ return true;
}
}
+ return false;
}
void cTVScraperDB::ClearRecordings(void) {
diff --git a/tvscraperdb.h b/tvscraperdb.h index fa9c58d..4c811a6 100644 --- a/tvscraperdb.h +++ b/tvscraperdb.h @@ -35,8 +35,8 @@ public: int SearchMovie(string movieTitle);
int SearchSeries(string seriesTitle);
void InsertRecording(int recEventID, int seriesID, int movieID);
- void SetRecordingSeries(int eventID);
- void SetRecordingMovie(int eventID);
+ bool SetRecordingSeries(int eventID);
+ bool SetRecordingMovie(int eventID);
void ClearRecordings(void);
bool CheckScrap(time_t timeStamp, string channelID);
bool CheckStartScrapping(int minimumDistance);
@@ -180,9 +180,13 @@ void cTVScraperWorker::CheckRunningTimers(void) { const cEvent *event = timer->Event(); scrapType type = GetScrapType(event); if (type == scrapSeries) { - db->SetRecordingSeries((int)event->EventID()); + if (!db->SetRecordingSeries((int)event->EventID())) { + tvdbScraper->Scrap(event, (int)event->EventID()); + } } else if (type == scrapMovie) { - db->SetRecordingMovie((int)event->EventID()); + if (!db->SetRecordingMovie((int)event->EventID())) { + moviedbScraper->Scrap(event, (int)event->EventID()); + } } } } @@ -216,7 +220,10 @@ void cTVScraperWorker::Action(void) { DisconnectScrapers(); continue; } - CheckRunningTimers(); + if (ConnectScrapers()) { + CheckRunningTimers(); + DisconnectScrapers(); + } if (StartScrapping()) { dsyslog("tvscraper: start scraping epg"); db->ClearOutdated(movieDir); |