summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-08-27 06:48:56 +0200
committerlouis <louis.braun@gmx.de>2013-08-27 06:48:56 +0200
commit2e460f46395dd61931d3dd431a7ad8dd465f1b81 (patch)
tree36efe9fc04938b15805fdda631c08ecd1f3e898a
parentdb1cd1a028511a0df3a12025a61850018fe2d974 (diff)
downloadvdr-plugin-tvscraper-2e460f46395dd61931d3dd431a7ad8dd465f1b81.tar.gz
vdr-plugin-tvscraper-2e460f46395dd61931d3dd431a7ad8dd465f1b81.tar.bz2
Scrap a running recording if it is not scraped already
-rw-r--r--HISTORY3
-rw-r--r--tvscraperdb.c8
-rw-r--r--tvscraperdb.h4
-rw-r--r--worker.c13
4 files changed, 21 insertions, 7 deletions
diff --git a/HISTORY b/HISTORY
index 2eded02..ff217dd 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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);
diff --git a/worker.c b/worker.c
index d2fa8e7..85bbfaa 100644
--- a/worker.c
+++ b/worker.c
@@ -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);