Ticket #5532: autoexpire-bandaid.patch
File autoexpire-bandaid.patch, 5.0 KB (added by , 16 years ago) |
---|
-
programs/mythbackend/autoexpire.cpp
332 332 pginfolist_t expireList; 333 333 334 334 VERBOSE(VB_FILE, LOC + QString("ExpireLiveTV(%1)").arg(type)); 335 FillDBOrdered(expireList, type); 336 SendDeleteMessages(expireList); 337 ClearExpireList(expireList); 335 if (FillDBOrdered(expireList, type)) 336 { 337 SendDeleteMessages(expireList); 338 ClearExpireList(expireList); 339 } 338 340 } 339 341 340 342 /** \fn AutoExpire::ExpireOldDeleted(void) … … 345 347 pginfolist_t expireList; 346 348 347 349 VERBOSE(VB_FILE, LOC + QString("ExpireOldDeleted()")); 348 FillDBOrdered(expireList, emOldDeletedPrograms); 349 SendDeleteMessages(expireList); 350 ClearExpireList(expireList); 350 if (FillDBOrdered(expireList, emOldDeletedPrograms)) 351 { 352 SendDeleteMessages(expireList); 353 ClearExpireList(expireList); 354 } 351 355 } 352 356 353 357 /** \fn AutoExpire::ExpireRecordings() … … 714 718 * \brief Uses the "AutoExpireMethod" setting in the database to 715 719 * fill the list of files that are deletable. 716 720 */ 717 voidAutoExpire::FillExpireList(pginfolist_t &expireList)721 bool AutoExpire::FillExpireList(pginfolist_t &expireList) 718 722 { 719 723 int expMethod = gContext->GetNumSetting("AutoExpireMethod", 1); 720 724 721 725 ClearExpireList(expireList); 722 726 723 FillDBOrdered(expireList, emNormalDeletedPrograms); 727 if (!FillDBOrdered(expireList, emNormalDeletedPrograms)) 728 return false; 724 729 725 730 switch(expMethod) 726 731 { 727 732 case emOldestFirst: 728 733 case emLowestPriorityFirst: 729 734 case emWeightedTimePriority: 730 FillDBOrdered(expireList, expMethod); 731 break; 735 if (!FillDBOrdered(expireList, expMethod)) 736 return false; 737 break; 732 738 // default falls through so list is empty so no AutoExpire 733 739 } 740 741 return true; 734 742 } 735 743 736 744 /** \fn AutoExpire::PrintExpireList(QString) … … 842 850 * \brief Creates a list of programs to delete using the database to 843 851 * order list. 844 852 */ 845 voidAutoExpire::FillDBOrdered(pginfolist_t &expireList, int expMethod)853 bool AutoExpire::FillDBOrdered(pginfolist_t &expireList, int expMethod) 846 854 { 847 855 QString where; 848 856 QString orderby; … … 891 899 break; 892 900 case emOldDeletedPrograms: 893 901 if ((maxAge = gContext->GetNumSetting("DeletedMaxAge", 0)) == 0) 894 return ;902 return true; 895 903 msg = QString("Adding programs deleted more than %1 days ago") 896 904 .arg(maxAge); 897 905 where = QString("recgroup = 'Deleted' " … … 901 909 break; 902 910 case emNormalDeletedPrograms: 903 911 if (gContext->GetNumSetting("DeletedFifoOrder", 0) == 0) 904 return ;912 return true; 905 913 msg = "Adding deleted programs in FIFO order"; 906 914 where = "recgroup = 'Deleted'"; 907 915 orderby = "lastmodified ASC"; … … 910 918 911 919 VERBOSE(VB_FILE, LOC + "FillDBOrdered: " + msg); 912 920 913 MSqlQuery query(MSqlQuery::InitCon()); 921 MSqlQueryInfo qi = MSqlQuery::InitCon(); 922 if (qi.db == 0) 923 { 924 VERBOSE(VB_IMPORTANT, 925 "AutoExpire::FillDBOrdered: MSqlQuery::InitCon failed!"); 926 return false; 927 } 928 MSqlQuery query(qi); 914 929 QString querystr = QString( 915 930 "SELECT recorded.chanid, starttime, endtime, " 916 931 " title, subtitle, description, " … … 927 942 query.prepare(querystr); 928 943 929 944 if (!query.exec() || !query.isActive() || !query.size()) 930 return ;945 return false; 931 946 932 947 while (query.next()) 933 948 { … … 988 1003 .arg(proginfo->recstartts.toString())); 989 1004 expireList.push_back(proginfo); 990 1005 } 1006 1007 return true; 991 1008 } 992 1009 993 1010 /** \fn SpawnUpdateThread(void*) -
programs/mythbackend/autoexpire.h
64 64 void ExpireRecordings(void); 65 65 void ExpireEpisodesOverMax(void); 66 66 67 voidFillExpireList(pginfolist_t &expireList);68 voidFillDBOrdered(pginfolist_t &expireList, int expMethod);67 bool FillExpireList(pginfolist_t &expireList); 68 bool FillDBOrdered(pginfolist_t &expireList, int expMethod); 69 69 void SendDeleteMessages(pginfolist_t &deleteList); 70 70 void ClearExpireList(pginfolist_t &expireList, bool deleteProg = true); 71 71 void Sleep(int sleepTime); -
libs/libmythdb/mythdbcon.h
72 72 MSqlDatabase *db; 73 73 QSqlDatabase qsqldb; 74 74 bool returnConnection; 75 76 _MSqlQueryInfo(void) { db = 0; } 75 77 } MSqlQueryInfo; 76 78 77 79 /// \brief typedef for a map of string -> string bindings for generic queries.