diff --git a/programs/mythbackend/housekeeper.cpp b/programs/mythbackend/housekeeper.cpp
index 952e909..ba3b5f0 100644
a
|
b
|
void HouseKeeper::RunHouseKeeping(void) |
247 | 247 | if (wantToRun("DailyCleanup", 1, 0, 24)) { |
248 | 248 | JobQueue::CleanupOldJobsInQueue(); |
249 | 249 | CleanupAllOldInUsePrograms(); |
| 250 | CleanupOldLivetvChains(); |
250 | 251 | CleanupRecordedTables(); |
251 | 252 | CleanupProgramListings(); |
252 | 253 | updateLastrun("DailyCleanup"); |
… |
… |
void HouseKeeper::CleanupAllOldInUsePrograms(void) |
353 | 354 | query.exec(); |
354 | 355 | } |
355 | 356 | |
| 357 | void HouseKeeper::CleanupOldLivetvChains(void) |
| 358 | { |
| 359 | QDateTime fourHoursAgo = QDateTime::currentDateTime().addSecs(-4 * 60 * 60); |
| 360 | MSqlQuery query(MSqlQuery::InitCon()); |
| 361 | MSqlQuery deleteQuery(MSqlQuery::InitCon()); |
| 362 | |
| 363 | // Keep these tvchains, they may be in use. |
| 364 | query.prepare("SELECT DISTINCT chainid FROM tvchain " |
| 365 | "WHERE endtime > :FOURHOURSAGO ;"); |
| 366 | query.bindValue(":FOURHOURSAGO", fourHoursAgo); |
| 367 | |
| 368 | if (!query.exec() || !query.isActive()) |
| 369 | { |
| 370 | MythContext::DBError("HouseKeeper Cleaning TVChain Table", query); |
| 371 | return; |
| 372 | } |
| 373 | |
| 374 | QString keepChains = ""; |
| 375 | while (query.next()) |
| 376 | keepChains += "'" + query.value(0).toString() + "',"; |
| 377 | |
| 378 | if (keepChains.isEmpty()) |
| 379 | deleteQuery.prepare("TRUNCATE TABLE tvchain;"); |
| 380 | else |
| 381 | { |
| 382 | keepChains = keepChains.left(keepChains.length() - 1); |
| 383 | deleteQuery.prepare("DELETE FROM tvchain " |
| 384 | "WHERE chainid NOT IN ( :KEEPERS );"); |
| 385 | deleteQuery.bindValue(":KEEPERS", keepChains); |
| 386 | } |
| 387 | deleteQuery.exec(); |
| 388 | } |
| 389 | |
356 | 390 | void HouseKeeper::CleanupRecordedTables(void) |
357 | 391 | { |
358 | 392 | MSqlQuery query(MSqlQuery::InitCon()); |
diff --git a/programs/mythbackend/housekeeper.h b/programs/mythbackend/housekeeper.h
index a90889a..3863439 100644
a
|
b
|
class HouseKeeper |
34 | 34 | void runFillDatabase(); |
35 | 35 | void CleanupMyOldRecordings(void); |
36 | 36 | void CleanupAllOldInUsePrograms(void); |
| 37 | void CleanupOldLivetvChains(void); |
37 | 38 | void CleanupRecordedTables(void); |
38 | 39 | void CleanupProgramListings(void); |
39 | 40 | void RunStartupTasks(void); |