Ticket #1654: autoexpire.patch

File autoexpire.patch, 5.2 KB (added by derek@…, 18 years ago)

fix max episode check in auto-expire; work in progress

  • libs/libmythtv/dbcheck.cpp

     
    1010#include "mythdbcon.h"
    1111
    1212/// This is the DB schema version expected by the running MythTV instance.
    13 const QString currentDatabaseVersion = "1135";
     13const QString currentDatabaseVersion = "1136";
    1414
    1515static bool UpdateDBVersionNumber(const QString &newnumber);
    1616static bool performActualUpdate(const QString updates[], QString version,
     
    21802180            return false;
    21812181    }
    21822182
     2183    if (dbver == "1135")
     2184    {
     2185        const QString updates[] = {
     2186"ALTER TABLE recorded ADD COLUMN parentid int(11) NOT NULL DEFAULT 0;",
     2187""
     2188};
     2189
     2190        if (!performActualUpdate(updates, "1136", dbver))
     2191            return false;
     2192    }
     2193
    21832194//"ALTER TABLE capturecard DROP COLUMN dvb_recordts;" in 0.21
    21842195//"ALTER TABLE capturecard DROP COLUMN dvb_hw_decoder;" in 0.21
    21852196//"ALTER TABLE cardinput DROP COLUMN  preference;" in 0.22
  • libs/libmythtv/scheduledrecording.h

     
    114114    QString getRecordSubTitle(void) const;
    115115    QString getRecordDescription(void) const;
    116116    QString getProfileName(void) const;
     117    QString getParentId(void) const;
    117118
    118119    void findMatchingPrograms(list<ProgramInfo*>& proglist);
    119120
  • libs/libmythtv/programinfo.cpp

     
    10191019    }
    10201020
    10211021    query.prepare("UPDATE recorded "
    1022                   "SET recordid = :RECID "
     1022                  "SET recordid = :RECID, "
     1023                  "    parentid = :PARENTID "
    10231024                  "WHERE chanid = :CHANID AND starttime = :START");
    10241025    query.bindValue(":RECID",  getRecordID());
     1026    query.bindValue(":PARENTID", record->getParentId());
    10251027    query.bindValue(":CHANID", chanid);
    10261028    query.bindValue(":START",  recstartts);
    10271029
     
    15061508        "    programid, stars,       previouslyshown, originalairdate,  "
    15071509        "    findid,    transcoder,  playgroup,       recpriority,      "
    15081510        "    basename,  progstart,   progend,         profile,          "
    1509         "    duplicate) "
     1511        "    duplicate, parentid) "
    15101512        "VALUES"
    15111513        "  (:CHANID,   :STARTS,     :ENDS,           :TITLE,            "
    15121514        "   :SUBTITLE, :DESC,       :HOSTNAME,       :CATEGORY,         "
     
    15141516        "   :PROGRAMID,:STARS,      :REPEAT,         :ORIGAIRDATE,      "
    15151517        "   :FINDID,   :TRANSCODER, :PLAYGROUP,      :RECPRIORITY,      "
    15161518        "   :BASENAME, :PROGSTART,  :PROGEND,        :PROFILE,          "
    1517         "   0) "
     1519        "   0,         :PARENTID) "
    15181520        );
    15191521
    15201522    query.bindValue(":CHANID",      pg->chanid);
     
    15411543    query.bindValue(":PROGSTART",   pg->startts);
    15421544    query.bindValue(":PROGEND",     pg->endts);
    15431545    query.bindValue(":PROFILE",     schd->getProfileName());
    1544 
     1546    query.bindValue(":PARENTID",    schd->getParentId());
    15451547    bool ok = query.exec() && (query.numRowsAffected() > 0);
    15461548    if (!ok && !query.isActive())
    15471549        MythContext::DBError("insert_program -- insert", query);
     
    15861588{
    15871589    MSqlQuery query(MSqlQuery::InitCon());
    15881590    query.prepare("UPDATE recorded SET endtime = :ENDTIME, "
    1589                   "    recordid = :RECORDID "
     1591                  "    recordid = :RECORDID, "
     1592                  "    parentid = :PARENTID "
    15901593                  "WHERE chanid = :CHANID AND "
    15911594                  "    starttime = :STARTTIME ");
    15921595    query.bindValue(":ENDTIME", recendts);
    15931596    query.bindValue(":RECORDID", recordid);
     1597    query.bindValue(":PARENTID", record->getParentId());
    15941598    query.bindValue(":CHANID", chanid);
    15951599    query.bindValue(":STARTTIME", recstartts);
    15961600
  • libs/libmythtv/scheduledrecording.cpp

     
    723723    return description->getValue();
    724724}
    725725
     726QString ScheduledRecording::getParentId(void) const {
     727    return parentid->getValue();
     728}
     729
    726730MythDialog* ScheduledRecording::dialogWidget(MythMainWindow *parent,
    727731                                             const char *name)
    728732{
  • programs/mythbackend/autoexpire.cpp

     
    523523    {
    524524        query.prepare("SELECT chanid, starttime, title, progstart, progend, filesize "
    525525                      "FROM recorded "
    526                       "WHERE recordid = :RECID AND preserve = 0 "
     526                      "WHERE (recordid = :RECID OR parentid = :RECID) "
     527                      "AND preserve = 0 "
    527528                      "AND recgroup <> 'LiveTV' "
    528529                      "ORDER BY starttime DESC;");
    529530        query.bindValue(":RECID", maxIter.key());