Ticket #4327: eitfixup17.patch

File eitfixup17.patch, 23.5 KB (added by john {at} pullan {dot} org, 13 years ago)
  • libs/libmythtv/eitfixup.cpp

     
    1717      m_bellPPVDescriptionAllDay("^\\(.*\\sEastern\\)"),
    1818      m_bellPPVDescriptionAllDay2("^\\([0-9].*am-[0-9].*am\\sET\\)"),
    1919      m_bellPPVDescriptionEventId("\\([0-9]{5}\\)"),
    20       m_ukSubtitle("\\[.*S\\]"),
     20
    2121      m_ukThen("\\s*(Then|Followed by) 60 Seconds\\.", false),
    22       m_ukNew("\\s*(Brand New|New)\\s*(Series|Episode)\\s*[:\\.\\-]",false),
    23       m_ukT4("^[tT]4:"),
    24       m_ukEQ("[:\\!\\?]"),
    25       m_ukEPQ("[:\\!\\.\\?]"),
    26       m_ukPStart("^\\.+"),
    27       m_ukPEnd("\\.+$"),
    28       m_ukSeries1("\\s*(\\d{1,2})/(\\d{1,2})"),
    29       m_ukSeries2("\\((Part|Pt)\\s+(\\d{1,2})\\s+of\\s+(\\d{1,2})\\)", false),
    30       m_ukSeries3("\\s*Episode\\s+(\\d{1,2})\\s+of\\s+(\\d{1,2})\\.", false),
     22      m_ukNew("(New\\.|\\s*(Brand New|New)\\s*(Series|Episode)\\s*[:\\.\\-])",false),
     23      m_ukCEPQ("[:\\!\\.\\?]"),
     24      m_ukColonPeriod("[:\\.]"),
     25      m_ukDotSpaceStart("^\\. "),
     26      m_ukDotEnd("\\.$"),
     27      m_ukSpaceColonStart("^[ |:]*"),
     28      m_ukSpaceStart("^ "),
     29      m_ukSeries("\\s*\\(?\\s*(?:Episode|Part|Pt)?\\s*(\\d{1,2})\\s*(?:of|/)\\s*(\\d{1,2})\\s*\\)?\\s*(?:\\.|:)?", false),
    3130      m_ukCC("\\[(AD)(,(S)){,1}(,SL){,1}\\]|\\[(S)(,AD){,1}(,SL){,1}\\]|"
    3231             "\\[(SL)(,AD){,1}(,(S)){,1}\\]"),
    3332      m_ukYear("[\\[\\(]([\\d]{4})[\\)\\]]"),
    3433      m_uk24ep("^\\d{1,2}:00[ap]m to \\d{1,2}:00[ap]m: "),
    35       m_ukStarring("(?:Western\\s)?[Ss]tarring ([\\w\\s\\-']+)[Aa]nd\\s([\\w\\s\\-']+)[\\.|,](?:\\s)*(\\d{4})?(?:\\.\\s)?"),
     34      m_ukStarring2("(?:Western\\s)?[Ss]tarring ([\\w\\s\\-']+)[Aa]nd\\s([\\w\\s\\-']+)[\\.|,](?:\\s)*(\\d{4})?(?:\\.\\s)?"),
    3635      m_ukBBC7rpt("\\[Rptd?[^]]+\\d{1,2}\\.\\d{1,2}[ap]m\\]\\."),
    37       m_ukCBBC("^CBBC\\s*[\\.]"),
    38       m_ukCBeebies("^CBeebies\\s*[\\.]"),
    39       m_ukStarring1("star(ring|s)"),
     36      m_ukDescriptionRemove("^(?:CBBC\\s*\\.|CBeebies\\s*\\.|Class TV\\s*:|BBC Switch\\.)"),
     37      m_ukTitleRemove("^(?:[tT]4:|Schools\\s*:)"),
    4038      m_ukDoubleDotEnd("\\.\\.+$"),
    4139      m_ukDoubleDotStart("^\\.\\.+"),
    42       m_ukDotSpaceStart("^\\. "),
    4340      m_ukTime("\\d{1,2}[\\.:]\\d{1,2}\\s*(am|pm|)"),
    44       m_ukBBC34("BBC [THREE|FOUR] on BBC [ONE|TWO]\\.",false),
    45       m_ukBBCSwitch("BBC Switch\\."),
    46       m_ukYearColon("^\\d\\d\\d\\d:"),
     41      m_ukBBC34("BBC (?:THREE|FOUR) on BBC (?:ONE|TWO)\\.",false),
     42      m_ukYearColon("^[\\d]{4}:"),
     43      m_ukExclusionFromSubtitle("(starring|stars\\s|drama|series|sitcom)",false),
     44      m_ukCompleteDots("^\\.\\.+$"),
     45
    4746      m_comHemCountry("^(\\(.+\\))?\\s?([^ ]+)\\s([^\\.0-9]+)"
    4847                      "(?:\\sfrån\\s([0-9]{4}))(?:\\smed\\s([^\\.]+))?\\.?"),
    4948      m_comHemDirector("[Rr]egi"),
     
    298297
    299298}
    300299
     300/** \fn EITFixUp::SetUKSubtitle(DBEvent&) const
     301 *  \brief Use this in the United Kingdom to standardize DVB-T guide.
     302 */
    301303void EITFixUp::SetUKSubtitle(DBEvent &event) const
    302304{
    303     QStringList strList1;
    304     int position1;
    305     int position2;
     305    QStringList strListColon = QStringList::split(":",event.description,TRUE);
     306    QStringList strListEnd;
    306307
    307     if ((position1 = event.description.find(m_ukEQ)) != -1)
     308    bool fColon = false;
     309    int nPosition1;
     310    QString strEnd;
     311    if (strListColon.count()>1)
    308312    {
    309         position2 = event.description.find(":",position1+1);
    310         if (position2 != -1)
    311         {
    312              strList1 = QStringList::split(" ",
    313                             event.description.mid(position1+1,
    314                             position2-position1+1));
    315              if (strList1.count() < kDotToTitle)
     313         bool fDoubleDot = false;
     314         bool fSingleDot = true;
     315         int nLength = strListColon[0].length();
     316
     317         nPosition1 = event.description.find("..");
     318         if ((nPosition1 < nLength) && (nPosition1 >= 0))
     319             fDoubleDot = true;
     320         nPosition1 = event.description.find(".");
     321         if (nPosition1==-1)
     322             fSingleDot = false;
     323         if (nPosition1 > nLength)
     324             fSingleDot = false;
     325         else
     326         {
     327             QString strTmp = event.description.mid(nPosition1+1,
     328                                     nLength-nPosition1);
     329
     330             if (QStringList::split(" ", strTmp ,TRUE).count()< kMaxDotToColon)
     331                 fSingleDot = false;
     332         }
     333   
     334         if (fDoubleDot)
     335         {
     336             strListEnd = strListColon;
     337             fColon = true;
     338         }
     339         else if (!fSingleDot)
     340         {
     341             QStringList strListTmp;
     342             uint nTitle=0;
     343             int nTitleMax=-1;
     344             int i;
     345             for (i =0; (i<(int)strListColon.count()) && (nTitleMax==-1);i++)
    316346             {
    317                  event.subtitle = event.description.left(position2);
    318                  event.description = event.description.mid(position2 + 1);
     347                 if ((nTitle+=
     348                     QStringList::split(" ",strListColon[i],TRUE).count())
     349                          <kMaxToTitle)
     350                     strListTmp.push_back(strListColon[i]);
     351                 else
     352                     nTitleMax=i;
    319353             }
    320              else
     354             QString strPartial;
     355             for (i=0;i<(nTitleMax-1);i++)
     356                 strPartial+=strListTmp[i]+":";
     357             if (nTitleMax>0)
    321358             {
    322                  event.subtitle = event.description.left(position1);
    323                  event.description = event.description.mid(position1 + 1);
     359                 strPartial+=strListTmp[nTitleMax-1];
     360                 strListEnd.push_back(strPartial);
    324361             }
     362             for (i=nTitleMax+1;i<(int)strListColon.count();i++)
     363                 strListEnd.push_back(strListColon[i]);
     364             fColon = true;
     365         }
     366    }
     367    QStringList strListPeriod;
     368    QStringList strListQuestion;
     369    QStringList strListExcl;
     370    if (!fColon)
     371    {
     372        strListPeriod = QStringList::split(".",event.description,TRUE);
     373        if (strListPeriod.count() >1)
     374        {
     375            nPosition1 = event.description.find(".");
     376            int nPosition2 = event.description.find("..");
     377            if ((nPosition1 < nPosition2) || (nPosition2==-1))
     378                strListEnd = strListPeriod;
    325379        }
     380
     381        strListQuestion = QStringList::split("?",event.description,TRUE);
     382        strListExcl = QStringList::split("!",event.description,TRUE);
     383        if ((strListQuestion.count()>1) &&
     384                 (strListQuestion.count()<=kMaxQuestionExclamation))
     385        {
     386            strListEnd = strListQuestion;
     387            strEnd = "?";
     388        }
     389        else if ((strListExcl.count()>1) &&
     390                 (strListExcl.count()<=kMaxQuestionExclamation))
     391        {
     392            strListEnd = strListExcl;
     393            strEnd = "!";
     394        }
    326395        else
     396            strEnd = QString::null;
     397    }
     398
     399    if (strListEnd.count())
     400    {
     401        QStringList strListSpace = QStringList::split(" ",strListEnd[0]);
     402        if (fColon && (strListSpace.count() > kMaxToTitle))
     403             return;
     404        if (strListSpace.count() > kDotToTitle)
     405             return;
     406        if (strListSpace.grep(m_ukExclusionFromSubtitle).count()==0)
    327407        {
    328             strList1 = QStringList::split(" ",
    329                             event.description.left(position1));
    330             if (strList1.count() < kDotToTitle)
    331             {
    332                 if ((uint)position1 < SUBTITLE_MAX_LEN)
    333                 {
    334                      event.subtitle = event.description.left(position1);
    335                      event.description = event.description.mid(position1+1);
    336                 }
    337             }
     408             event.subtitle = strListEnd[0]+strEnd;
     409             event.subtitle.remove(m_ukSpaceColonStart);
     410             event.description=
     411                          event.description.mid(strListEnd[0].length()+1);
     412             event.description.remove(m_ukSpaceColonStart);
    338413        }
    339414    }
    340415}
    341416
     417
    342418/** \fn EITFixUp::FixUK(DBEvent&) const
    343419 *  \brief Use this in the United Kingdom to standardize DVB-T guide.
    344420 */
     
    348424    int position2;
    349425    QString strFull;
    350426
    351     position1 = event.description.find(m_ukSubtitle);
    352     if (position1 != -1)
    353     {
    354         event.subtitleType |= SUB_NORMAL;
    355         event.description.remove(m_ukSubtitle);
    356     }
    357 
     427    bool isMovie = event.category.startsWith("Movie",false);
    358428    // BBC three case (could add another record here ?)
    359429    event.description = event.description.remove(m_ukThen);
    360430    event.description = event.description.remove(m_ukNew);
    361     event.title  = event.title.remove(m_ukT4);
    362431
    363     // Removal of CBBC and CBeebies
    364     event.description = event.description.remove(m_ukCBBC);
    365     event.description = event.description.remove(m_ukCBeebies);
     432    // Removal of Class TV, CBBC and CBeebies etc..
     433    event.title = event.title.remove(m_ukTitleRemove);
     434    event.description = event.description.remove(m_ukDescriptionRemove);
    366435
    367436    // Removal of BBC FOUR and BBC THREE
    368437    event.description = event.description.remove(m_ukBBC34);
    369438
    370     // Removal of BBC Switch
    371     event.description = event.description.remove(m_ukBBCSwitch);
    372 
    373439    // BBC 7 [Rpt of ...] case.
    374440    event.description = event.description.remove(m_ukBBC7rpt);
    375441
     442    // Remove [AD,S] etc.
     443    event.description = event.description.remove(m_ukCC);
     444
    376445    event.title = event.title.stripWhiteSpace();
    377446    event.description = event.description.stripWhiteSpace();
    378447
     448    // Work out the episode numbers (if any)
     449    bool    series  = false;
     450    QRegExp tmpExp1 = m_ukSeries;
     451    if ((position1 = tmpExp1.search(event.title)) != -1)
     452    {
     453        if ((tmpExp1.cap(1).toUInt() <= tmpExp1.cap(2).toUInt())
     454            && tmpExp1.cap(2).toUInt()<=50)
     455        {
     456            event.partnumber = tmpExp1.cap(1).toUInt();
     457            event.parttotal  = tmpExp1.cap(2).toUInt();
     458            // Remove from the title
     459            event.title = event.title.left(position1) +
     460                event.title.mid(position1 + tmpExp1.cap(0).length());
     461            series = true;
     462        }
     463    }
     464    else if ((position1 = tmpExp1.search(event.description)) != -1)
     465    {
     466        if ((tmpExp1.cap(1).toUInt() <= tmpExp1.cap(2).toUInt())
     467            && tmpExp1.cap(2).toUInt()<=50)
     468        {
     469            event.partnumber = tmpExp1.cap(1).toUInt();
     470            event.parttotal  = tmpExp1.cap(2).toUInt();
     471            // Remove from the description
     472            event.description = event.description.left(position1) +
     473                event.description.mid(position1+tmpExp1.cap(0).length());
     474            series = true;
     475        }
     476    }
     477    if (series)
     478        event.category_type = kCategorySeries;
     479
     480    QRegExp tmpStarring2 = m_ukStarring2;
     481    if (tmpStarring2.search(event.description) != -1)
     482    {
     483        // if we match this we've captured 2 actors and an (optional) airdate
     484        event.AddPerson(DBPerson::kActor, tmpStarring2.cap(1));
     485        event.AddPerson(DBPerson::kActor, tmpStarring2.cap(2));
     486        if (tmpStarring2.cap(3).length() > 0)
     487        {
     488            event.airdate = tmpStarring2.cap(3);
     489            bool ok;
     490            uint y = tmpStarring2.cap(3).toUInt(&ok);
     491            if (ok)
     492                event.originalairdate = QDate(y, 1, 1);
     493        }
     494    }
     495
    379496    QRegExp tmp24ep = m_uk24ep;
    380497    if (!event.title.startsWith("CSI:") && !event.title.startsWith("CD:"))
    381498    {
    382499        if (((position1=event.title.find(m_ukDoubleDotEnd)) != -1) &&
    383500            ((position2=event.description.find(m_ukDoubleDotStart)) != -1))
    384501        {
    385             strFull = event.title.remove(m_ukDoubleDotEnd)+" "+
    386                   event.description.remove(m_ukDoubleDotStart);
    387             if ((position1 = strFull.find(m_ukEPQ)) != -1)
     502            QString strPart=event.title.remove(m_ukDoubleDotEnd)+" ";
     503            strFull = strPart + event.description.remove(m_ukDoubleDotStart);
     504            if (isMovie &&
     505                ((position1 = strFull.find(m_ukCEPQ,strPart.length())) != -1))
    388506            {
    389                  if (strFull[position1] == '!' || strFull[position1] == '?' ||
    390                      strFull[position1] == '.')
     507                 if (strFull[position1] == '!' || strFull[position1] == '?')
    391508                     position1++;
    392509                 event.title = strFull.left(position1);
    393510                 event.description = strFull.mid(position1 + 1);
     511                 event.description.remove(m_ukSpaceStart);
     512            }
     513            else if ((position1 = strFull.find(m_ukCEPQ)) != -1)
     514            {
     515                 if (strFull[position1] == '!' || strFull[position1] == '?')
     516                     position1++;
     517                 event.title = strFull.left(position1);
     518                 event.description = strFull.mid(position1 + 1);
     519                 event.description.remove(m_ukSpaceStart);
    394520                 SetUKSubtitle(event);
    395521            }
    396522            if ((position1 = strFull.find(m_ukYear)) != -1)
     
    413539        }
    414540        else if ((position1 = event.description.find(m_ukTime)) == -1)
    415541        {
    416             if (event.title.find(m_ukYearColon) < 0)
     542            if (!isMovie && (event.title.find(m_ukYearColon) < 0))
    417543            {
    418544                if (((position1 = event.title.find(":")) != -1) &&
    419                     (event.description.find(":") < 0 ))
     545                    (event.description.find(":") < 0 )) 
    420546                {
    421                     if ((uint)position1 < SUBTITLE_MAX_LEN)
     547                    if (event.title.mid(position1+1).find(m_ukCompleteDots)==0)
    422548                    {
     549                        SetUKSubtitle(event);
     550                        QString strTmp = event.title.mid(position1+1);
     551                        event.title.setLength(position1);
     552                        event.subtitle = strTmp+event.subtitle;
     553                    }
     554                    else if ((uint)position1 < SUBTITLE_MAX_LEN)
     555                    {
    423556                        event.subtitle = event.title.mid(position1 + 1);
    424557                        event.title = event.title.left(position1);
    425558                    }
     
    430563        }
    431564    }
    432565
    433     if ((event.description.find(m_ukTime) == -1) && (event.subtitle.isEmpty()))
     566    if (!isMovie && event.subtitle.isEmpty())
    434567    {
    435        QStringList strList1 = QStringList::split(".",event.description,TRUE);
    436        QStringList strList2 = QStringList::split("?",event.description,TRUE);
    437        if (strList1.count()>1 || strList2.count()>1)
    438        {
    439            QString strEnd;
    440            if (strList1[0].length() > strList2[0].length())
    441            {
    442                strList1=strList2;
    443                strEnd="?";
    444            }
    445            strList2 = QStringList::split(" ",strList1[0]);
    446            if (strList2.count() < kDotToTitle)
    447            {
    448                QStringList strList3 = strList2.grep("Drama",false);
    449                QStringList strList4 = strList2.grep("sitcom",false);
    450                QStringList strList5 = strList2.grep(m_ukStarring1);
    451                QStringList strList6 = strList2.grep("Series",false);
    452                if ((strList3.count()==0) && (strList4.count()==0) &&
    453                    (strList5.count()==0) && (strList6.count()==0))
    454                {
    455                     event.subtitle = strList1[0]+strEnd;
    456                     event.description=
    457                                  event.description.mid(strList1[0].length()+1);
    458                }
    459            }
    460        }
    461     }
    462 
    463     QRegExp tmpStarring = m_ukStarring;
    464     if (tmpStarring.search(event.subtitle) != -1)
    465     {
    466         // If the "Starring..." string got promoted to subtitle move it back.
    467         event.description.prepend(". ");
    468         event.description.prepend(tmpStarring.cap(0));
    469         event.subtitle.remove(tmpStarring.cap(0));
    470     }
    471     tmpStarring = m_ukStarring;
    472     if (tmpStarring.search(event.description) != -1)
    473     {
    474         // if we match this we've captured 2 actors and an (optional) airdate
    475         event.AddPerson(DBPerson::kActor, tmpStarring.cap(1));
    476         event.AddPerson(DBPerson::kActor, tmpStarring.cap(2));
    477         if (tmpStarring.cap(3).length() > 0)
     568        if ((position1=event.description.find(m_ukTime)) != -1)
    478569        {
    479             event.airdate = tmpStarring.cap(3);
    480             bool ok;
    481             uint y = tmpStarring.cap(3).toUInt(&ok);
    482             if (ok)
    483                 event.originalairdate = QDate(y, 1, 1);
     570            position2 = event.description.find(m_ukColonPeriod);
     571            if ((position2>=0) && (position2 < (position1-2)))
     572                SetUKSubtitle(event);
    484573        }
    485     }
    486 
    487     // Work out the episode numbers (if any)
    488     bool    series  = false;
    489     QRegExp tmpExp1 = m_ukSeries1;
    490     QRegExp tmpExp2 = m_ukSeries2;
    491     QRegExp tmpExp3 = m_ukSeries3;
    492     if ((position1 = tmpExp1.search(event.title)) != -1)
    493     {
    494         if ((tmpExp1.cap(1).toUInt() <= tmpExp1.cap(2).toUInt())
    495             && tmpExp1.cap(2).toUInt()<=50)
     574        else if ((position1=event.title.find("-")) != -1)
    496575        {
    497             event.partnumber = tmpExp1.cap(1).toUInt();
    498             event.parttotal  = tmpExp1.cap(2).toUInt();
    499             // Remove from the title
    500             event.title = event.title.left(position1) +
    501                 event.title.mid(position1 + tmpExp1.cap(0).length());
    502             series = true;
     576            if ((uint)position1 < SUBTITLE_MAX_LEN)
     577            {
     578                event.subtitle = event.title.mid(position1 + 1);
     579                event.subtitle.remove(m_ukSpaceColonStart);
     580                event.title = event.title.left(position1);
     581            }
    503582        }
     583        else
     584            SetUKSubtitle(event);
    504585    }
    505     else if ((position1 = tmpExp1.search(event.subtitle)) != -1)
    506     {
    507         if ((tmpExp1.cap(1).toUInt() <= tmpExp1.cap(2).toUInt())
    508             && tmpExp1.cap(2).toUInt()<=50)
    509         {
    510             event.partnumber = tmpExp1.cap(1).toUInt();
    511             event.parttotal  = tmpExp1.cap(2).toUInt();
    512             // Remove from the subtitle
    513             event.subtitle = event.subtitle.left(position1) +
    514                 event.subtitle.mid(position1 + tmpExp1.cap(0).length());
    515             series = true;
    516         }
    517     }
    518     else if ((position1 = tmpExp1.search(event.description)) != -1)
    519     {
    520         if ((tmpExp1.cap(1).toUInt() <= tmpExp1.cap(2).toUInt())
    521             && tmpExp1.cap(2).toUInt()<=50)
    522         {
    523             event.partnumber = tmpExp1.cap(1).toUInt();
    524             event.parttotal  = tmpExp1.cap(2).toUInt();
    525             // Remove from the description
    526             event.description = event.description.left(position1) +
    527                 event.description.mid(position1+tmpExp1.cap(0).length());
    528             series = true;
    529         }
    530     }
    531     else if ((position1 = tmpExp2.search(event.description)) != -1)
    532     {
    533         event.partnumber = tmpExp2.cap(2).toUInt();
    534         event.parttotal  = tmpExp2.cap(3).toUInt();
    535         // Remove from the description
    536         event.description = event.description.left(position1) +
    537             event.description.mid(position1+tmpExp2.cap(0).length());
    538         series = true;
    539     }
    540     else if ((position1 = tmpExp3.search(event.description)) != -1)
    541     {
    542         event.partnumber = tmpExp3.cap(1).toUInt();
    543         event.parttotal  = tmpExp3.cap(2).toUInt();
    544         // Remove from the description
    545         event.description = event.description.left(position1) +
    546             event.description.mid(position1+tmpExp3.cap(0).length());
    547         series = true;
    548     }
    549     if (series)
    550         event.category_type = kCategorySeries;
    551 
    552     // Work out the closed captions and Audio descriptions  (if any)
    553     QStringList captures;
    554     QStringList::const_iterator it;
    555     QRegExp tmpUKCC = m_ukCC;
    556     if ((position1 = tmpUKCC.search(event.description)) != -1)
    557     {
    558         // Enumerate throught and see if we have subtitles, don't modify
    559         // the description as we might destroy other useful information
    560         captures = tmpUKCC.capturedTexts();
    561         for (it = captures.begin(); it != captures.end(); ++it)
    562         {
    563             if (*it == "S")
    564                 event.subtitleType |= SUB_NORMAL;
    565         }
    566     }
    567     else if ((position1 = tmpUKCC.search(event.subtitle)) != -1)
    568     {
    569         captures = tmpUKCC.capturedTexts();
    570         for (it = captures.begin(); it != captures.end(); ++it)
    571         {
    572             if (*it == "S")
    573                 event.subtitleType |= SUB_NORMAL;
    574         }
    575 
    576         // We remove [AD,S] from the subtitle.
    577         QString stmp = event.subtitle;
    578         int     itmp = position1 + tmpUKCC.cap(0).length();
    579         event.subtitle = stmp.left(position1) + stmp.mid(itmp);
    580     }
    581 
     586 
    582587    // Work out the year (if any)
    583588    QRegExp tmpUKYear = m_ukYear;
    584589    if ((position1 = tmpUKYear.search(event.description)) != -1)
     
    593598            event.originalairdate = QDate(y, 1, 1);
    594599    }
    595600
    596     // Trim trailing '.'
    597     event.title.remove(m_ukPEnd);
    598     event.subtitle.remove(m_ukPEnd);
     601    // Trim leading/trailing '.'
    599602    event.subtitle.remove(m_ukDotSpaceStart);
     603    if (event.subtitle.findRev("..") != (((int)event.subtitle.length())-2))
     604        event.subtitle.remove(m_ukDotEnd);
     605
     606    // Reverse the subtitle and empty description
     607    if (event.description.isEmpty() && !event.subtitle.isEmpty())
     608    {
     609        event.description=event.subtitle;
     610        event.subtitle=QString::null;
     611    }
    600612}
    601613
    602614/** \fn EITFixUp::FixPBS(DBEvent&) const
  • libs/libmythtv/eitfixup.h

     
    1717  protected:
    1818     // max length of subtitle field in db.
    1919     static const uint SUBTITLE_MAX_LEN = 128;
     20     // max number of words included in a subtitle
     21     static const uint kMaxToTitle = 14;
    2022     // max number of words up to a period, question mark
    21      static const uint kDotToTitle = 8;
     23     static const uint kDotToTitle = 9;
     24     // max number of question/exclamation marks
     25     static const uint kMaxQuestionExclamation = 2;
     26     // max number of difference in words between a period and a colon
     27     static const uint kMaxDotToColon = 5;
    2228
    2329  public:
    2430    enum FixUpType
     
    7985    const QRegExp m_bellPPVDescriptionAllDay;
    8086    const QRegExp m_bellPPVDescriptionAllDay2;
    8187    const QRegExp m_bellPPVDescriptionEventId;
    82     const QRegExp m_ukSubtitle;
     88
    8389    const QRegExp m_ukThen;
    8490    const QRegExp m_ukNew;
    85     const QRegExp m_ukT4;
    86     const QRegExp m_ukEQ;
    87     const QRegExp m_ukEPQ;
    88     const QRegExp m_ukPStart;
    89     const QRegExp m_ukPEnd;
    90     const QRegExp m_ukSeries1;
    91     const QRegExp m_ukSeries2;
    92     const QRegExp m_ukSeries3;
     91    const QRegExp m_ukCEPQ;
     92    const QRegExp m_ukColonPeriod;
     93    const QRegExp m_ukDotSpaceStart;
     94    const QRegExp m_ukDotEnd;
     95    const QRegExp m_ukSpaceColonStart;
     96    const QRegExp m_ukSpaceStart;
     97    const QRegExp m_ukSeries;
    9398    const QRegExp m_ukCC;
    9499    const QRegExp m_ukYear;
    95100    const QRegExp m_uk24ep;
    96     const QRegExp m_ukStarring;
     101    const QRegExp m_ukStarring2;
    97102    const QRegExp m_ukBBC7rpt;
    98     const QRegExp m_ukCBBC;
    99     const QRegExp m_ukCBeebies;
    100     const QRegExp m_ukStarring1;
     103    const QRegExp m_ukDescriptionRemove;
     104    const QRegExp m_ukTitleRemove;
    101105    const QRegExp m_ukDoubleDotEnd;
    102106    const QRegExp m_ukDoubleDotStart;
    103     const QRegExp m_ukDotSpaceStart;
    104107    const QRegExp m_ukTime;
    105108    const QRegExp m_ukBBC34;
    106     const QRegExp m_ukBBCSwitch;
    107109    const QRegExp m_ukYearColon;
     110    const QRegExp m_ukExclusionFromSubtitle;
     111    const QRegExp m_ukCompleteDots;
     112
    108113    const QRegExp m_comHemCountry;
    109114    const QRegExp m_comHemDirector;
    110115    const QRegExp m_comHemActor;