summaryrefslogtreecommitdiff
path: root/update.c
diff options
context:
space:
mode:
authorhorchi <vdr@jwendel.de>2018-03-11 14:00:31 +0100
committerhorchi <vdr@jwendel.de>2018-03-11 14:00:31 +0100
commit92e05e8cbf57fa45a87027484929c033c4002d14 (patch)
treeb5fa3a9ce5d20a23733461a147da3fbc1a279be4 /update.c
parenta29fa81a3dbf641a40b93f69b90151f70dc0290c (diff)
downloadvdr-plugin-epg2vdr-1.1.94.tar.gz
vdr-plugin-epg2vdr-1.1.94.tar.bz2
2018-03-11 version 1.1.94 (horchi)\n - change: Porting to dbapi 7 changes of epgd\n\n1.1.94
Diffstat (limited to 'update.c')
-rw-r--r--update.c54
1 files changed, 32 insertions, 22 deletions
diff --git a/update.c b/update.c
index ae51fe8..874b295 100644
--- a/update.c
+++ b/update.c
@@ -386,9 +386,10 @@ int cUpdate::initDb()
selectAllImages->setBindPrefix("e.");
selectAllImages->bind(&masterId, cDBS::bndOut);
selectAllImages->setBindPrefix("r.");
- selectAllImages->bind("ImgName", cDBS::bndOut, ", ");
- selectAllImages->bind("EventId", cDBS::bndOut, ", ");
- selectAllImages->bind("Lfn", cDBS::bndOut, ", ");
+ selectAllImages->bind("IMGNAME", cDBS::bndOut, ", ");
+ selectAllImages->bind("IMGNAMEFS", cDBS::bndOut, ", ");
+ selectAllImages->bind("EVENTID", cDBS::bndOut, ", ");
+ selectAllImages->bind("LFN", cDBS::bndOut, ", ");
selectAllImages->setBindPrefix("i.");
selectAllImages->build(", length(");
selectAllImages->bind(&imageSize, cDBS::bndOut);
@@ -397,13 +398,13 @@ int cUpdate::initDb()
selectAllImages->build(" from %s r, %s i, %s e where ",
imageRefDb->TableName(), imageDb->TableName(), eventsDb->TableName());
selectAllImages->build("e.%s = r.%s and i.%s = r.%s and (",
- eventsDb->getField("EventId")->getDbName(),
- imageRefDb->getField("EventId")->getDbName(),
- imageDb->getField("ImgName")->getDbName(),
- imageRefDb->getField("ImgName")->getDbName());
+ eventsDb->getField("EVENTID")->getDbName(),
+ imageRefDb->getField("EVENTID")->getDbName(),
+ imageDb->getField("IMGNAME")->getDbName(),
+ imageRefDb->getField("IMGNAME")->getDbName());
selectAllImages->bindCmp("i", &imageUpdSp, ">");
selectAllImages->build(" or ");
- selectAllImages->bindCmp("r", "UpdSp", 0, ">");
+ selectAllImages->bindCmp("r", "UPDSP", 0, ">");
selectAllImages->build(")");
status += selectAllImages->prepare();
@@ -1876,6 +1877,7 @@ cEvent* cUpdate::createEventFromRow(const cDbRow* row)
int cUpdate::storePicturesToFs()
{
int count = 0;
+ int cntLinks = 0;
int updated = 0;
char* path = 0;
time_t start = time(0);
@@ -1893,21 +1895,21 @@ int cUpdate::storePicturesToFs()
tell(0, "Load images from database");
imageRefDb->clear();
- imageRefDb->setValue("UpdSp", lastUpdateAt);
+ imageRefDb->setValue("UPDSP", lastUpdateAt);
imageUpdSp.setValue(lastUpdateAt);
for (int res = selectAllImages->find(); res; res = selectAllImages->fetch())
{
int eventid = masterId.getIntValue();
- const char* imageName = imageRefDb->getStrValue("ImgName");
- int lfn = imageRefDb->getIntValue("Lfn");
+ const char* imageNameFs = imageRefDb->getStrValue("IMGNAMEFS");
+ int lfn = imageRefDb->getIntValue("LFN");
char* newpath;
char* linkdest = 0;
char* destfile = 0;
int forceLink = no;
int size = imageSize.getIntValue();
- asprintf(&destfile, "%s/images/%s", epgimagedir, imageName);
+ asprintf(&destfile, "%s/images/%s", epgimagedir, imageNameFs);
// check target ... image changed?
@@ -1916,9 +1918,9 @@ int cUpdate::storePicturesToFs()
// get image
imageDb->clear();
- imageDb->setValue("ImgName", imageName);
+ imageDb->setValue("IMGNAME", imageRefDb->getStrValue("IMGNAME"));
- if (imageDb->find() && !imageDb->getRow()->getValue("Image")->isNull())
+ if (imageDb->find() && !imageDb->getRow()->getValue("IMAGE")->isNull())
{
count++;
@@ -1935,7 +1937,7 @@ int cUpdate::storePicturesToFs()
if (FILE* fh1 = fopen(destfile, "w"))
{
- fwrite(imageDb->getStrValue("Image"), 1, size, fh1);
+ fwrite(imageDb->getStrValue("IMAGE"), 1, size, fh1);
fclose(fh1);
}
else
@@ -1951,7 +1953,7 @@ int cUpdate::storePicturesToFs()
// create links ...
- asprintf(&linkdest, "./images/%s", imageName);
+ asprintf(&linkdest, "./images/%s", imageNameFs);
#ifdef _IMG_LINK
if (!lfn)
@@ -1967,6 +1969,10 @@ int cUpdate::storePicturesToFs()
// create link with index
asprintf(&newpath, "%s/%d_%d.%s", epgimagedir, eventid, lfn, imageExtension);
+
+ if (!fileExists(newpath))
+ cntLinks++;
+
createLink(newpath, linkdest, forceLink);
free(newpath);
@@ -1980,8 +1986,8 @@ int cUpdate::storePicturesToFs()
selectAllImages->freeResult();
- tell(0, "Got %d images from database in %ld seconds (%d updates, %d new)",
- count, time(0) - start, updated, count-updated);
+ tell(0, "Got %d images from database in %ld seconds (%d updates, %d new) and created %d links",
+ count, time(0) - start, updated, count-updated, cntLinks);
return dbConnected(yes) ? success : fail;
}
@@ -2018,9 +2024,9 @@ int cUpdate::cleanupPictures()
cDbStatement* stmt = new cDbStatement(imageRefDb);
stmt->build("select ");
- stmt->bind("FileRef", cDBS::bndOut);
+ stmt->bind("FILEREF", cDBS::bndOut);
stmt->build(" from %s where ", imageRefDb->TableName());
- stmt->bind("ImgName", cDBS::bndIn | cDBS::bndSet);
+ stmt->bind("IMGNAMEFS", cDBS::bndIn | cDBS::bndSet);
if (stmt->prepare() != success)
{
@@ -2037,7 +2043,6 @@ int cUpdate::cleanupPictures()
if (!(dir = opendir(pdir)))
{
tell(1, "Can't open directory '%s', '%s'", pdir, strerror(errno));
-
free(pdir);
return done;
@@ -2045,6 +2050,8 @@ int cUpdate::cleanupPictures()
free(pdir);
+ int cnt = 0;
+
while (dbConnected() && (dirent = readdir(dir)))
{
// check extension
@@ -2053,18 +2060,21 @@ int cUpdate::cleanupPictures()
continue;
imageRefDb->clear();
- imageRefDb->setValue("ImgName", dirent->d_name);
+ imageRefDb->setValue("IMGNAMEFS", dirent->d_name);
if (!stmt->find())
{
asprintf(&pdir, "%s/images/%s", epgimagedir, dirent->d_name);
+ tell(2, "Remove image '%s'", pdir);
+
if (!removeFile(pdir))
iCount++;
free(pdir);
}
+ cnt++;
stmt->freeResult();
}