Ticket #12679: atv_disney_channel.patch

File atv_disney_channel.patch, 10.2 KB (added by lomion@…, 4 years ago)
  • mythtv/libs/libmythtv/eitfixup.cpp

    diff --git a/mythtv/libs/libmythtv/eitfixup.cpp b/mythtv/libs/libmythtv/eitfixup.cpp
    index 13fa264..1c44cda 100644
    a b EITFixUp::EITFixUp() 
    138138      m_PRO7CrewOne("^(.*):\\s+(.*)$"),
    139139      m_PRO7Cast("\n\nDarsteller:\n(.*)$"),
    140140      m_PRO7CastOne("^([^\\(]*)\\((.*)\\)$"),
     141      m_DisneyChannelSubtitle(",([^,]+)\\s{0,1}(\\d{4})$"),
     142      m_ATVSubtitle(",{0,1}\\sFolge\\s(\\d{1,3})$"),
    141143      m_RTLEpisodeNo1("^(Folge\\s\\d{1,4})\\.*\\s*"),
    142144      m_RTLEpisodeNo2("^(\\d{1,2}\\/[IVX]+)\\.*\\s*"),
    143145      m_fiRerun("\\ ?Uusinta[a-zA-Z\\ ]*\\.?"),
    void EITFixUp::Fix(DBEventEIT &event) const 
    300302    if (kFixP7S1 & event.fixup)
    301303        FixPRO7(event);
    302304
     305    if (kFixATV & event.fixup)
     306        FixATV(event);
     307
     308    if (kFixDisneyChannel & event.fixup)
     309        FixDisneyChannel(event);
     310
    303311    if (kFixFI & event.fixup)
    304312        FixFI(event);
    305313
    void EITFixUp::FixPRO7(DBEventEIT &event) const 
    18541862     */
    18551863}
    18561864
     1865/** \fn EITFixUp::FixDisneyChannel(DBEventEIT&) const
     1866*  \brief Use this to standardise the Disney Channel guide in Germany.
     1867*/
     1868void EITFixUp::FixDisneyChannel(DBEventEIT &event) const
     1869{
     1870    QRegExp tmp = m_DisneyChannelSubtitle;
     1871    int pos = tmp.indexIn(event.subtitle);
     1872    if (pos != -1)
     1873    {
     1874        if (event.airdate == 0)
     1875        {
     1876            event.airdate = tmp.cap(3).toUInt();
     1877        }
     1878        event.subtitle.replace(tmp, "");
     1879    }
     1880    tmp = QRegExp("\\s[^\\s]+-(Serie)");
     1881    pos = tmp.indexIn(event.subtitle);
     1882    if (pos != -1)
     1883    {
     1884        event.categoryType = ProgramInfo::kCategorySeries;
     1885        event.category=tmp.cap(0).trimmed();
     1886        event.subtitle.replace(tmp, "");
     1887    }
     1888}
     1889
     1890/** \fn EITFixUp::FixATV(DBEventEIT&) const 
     1891*  \brief Use this to standardise the ATV/ATV2 guide in Germany.
     1892**/
     1893void EITFixUp::FixATV(DBEventEIT &event) const
     1894{
     1895    event.subtitle.replace(m_ATVSubtitle, "");
     1896}
     1897
     1898
    18571899/** \fn EITFixUp::FixFI(DBEventEIT&) const
    18581900 *  \brief Use this to clean DVB-T guide in Finland.
    18591901 */
  • mythtv/libs/libmythtv/eitfixup.h

    diff --git a/mythtv/libs/libmythtv/eitfixup.h b/mythtv/libs/libmythtv/eitfixup.h
    index bcf69d6..cd83f40 100644
    a b class EITFixUp 
    5959        kFixP7S1             = 1 << 26,
    6060        kFixHTML             = 1 << 27,
    6161        kFixUnitymedia       = 1ll << 32,
     62        kFixATV              = 1ll << 33,
     63        kFixDisneyChannel    = 1ll << 34,
    6264
    6365        // Early fixups
    6466        kEFixForceISO8859_1  = 1 << 22,
    class EITFixUp 
    104106    void FixMCA(DBEventEIT &event) const;           // MultiChoice Africa DVB-S
    105107    void FixRTL(DBEventEIT &event) const;           // RTL group DVB
    106108    void FixPRO7(DBEventEIT &event) const;          // Pro7/Sat1 Group
     109    void FixDisneyChannel(DBEventEIT &event) const; // Disney Channel
     110    void FixATV(DBEventEIT &event) const;           // ATV/ATV2
    107111    void FixFI(DBEventEIT &event) const;            // Finland DVB-T
    108112    void FixPremiere(DBEventEIT &event) const;      // german pay-tv Premiere
    109113    void FixNL(DBEventEIT &event) const;            // Netherlands DVB-C
    class EITFixUp 
    204208    const QRegExp m_PRO7CrewOne;
    205209    const QRegExp m_PRO7Cast;
    206210    const QRegExp m_PRO7CastOne;
     211    const QRegExp m_ATVSubtitle;
     212    const QRegExp m_DisneyChannelSubtitle;
    207213    const QRegExp m_RTLEpisodeNo1;
    208214    const QRegExp m_RTLEpisodeNo2;
    209215    const QRegExp m_fiRerun;
  • mythtv/libs/libmythtv/eithelper.cpp

    diff --git a/mythtv/libs/libmythtv/eithelper.cpp b/mythtv/libs/libmythtv/eithelper.cpp
    index b0e493c..cb39228 100644
    a b static void init_fixup(FixupMap &fix) 
    11781178    fix[                  8468 << 16 | 16426] = EITFixUp::kFixP7S1; // ProSieben MAXX - DVB-T Rhein/Main
    11791179    fix[   8707LL << 32 | 8468 << 16]         = EITFixUp::kFixP7S1; // ProSieben Sat.1 Mux - DVB-T Rhein/Main
    11801180
     1181    // ATV / ATV2
     1182    fix[   1117LL << 32 |  1 << 16 | 13012 ] = EITFixUp::kFixATV; // ATV
     1183    fix[   1003LL << 32 |  1 << 16 | 13223 ] = EITFixUp::kFixATV; // ATV2
     1184    fix[   1003LL << 32 |  1 << 16 | 13228 ] = EITFixUp::kFixHDTV | EITFixUp::kFixATV; // ATV HD
     1185
     1186    // Disney Channel Germany
     1187    fix[   1055LL << 32 |  1 << 16 | 5500 ] = EITFixUp::kFixHDTV | EITFixUp::kFixDisneyChannel; // Disney Channel HD
     1188    fix[   1055LL << 32 |  1 << 16 | 5510 ] = EITFixUp::kFixHDTV | EITFixUp::kFixDisneyChannel; // Disney Channel HD Austria
     1189    fix[   5LL << 32 |  133 << 16 | 1793 ] = EITFixUp::kFixDisneyChannel; // Disney Channel HD Austria
     1190    fix[   1109LL << 32 |  1 << 16 | 5401 ] = EITFixUp::kFixHDTV | EITFixUp::kFixDisneyChannel; // Tele 5 HD
     1191    fix[   1109LL << 32 |  1 << 16 | 5421 ] = EITFixUp::kFixHDTV | EITFixUp::kFixDisneyChannel; // Tele 5 HD Austria
     1192    fix[   33LL << 32 |  133 << 16 | 51 ] = EITFixUp::kFixDisneyChannel; // Tele 5
     1193
    11811194    // Premiere EIT processing
    11821195    fix[   1LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    11831196    fix[   2LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    11841197    fix[   3LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    11851198    fix[   4LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1186     fix[   6LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1187     fix[   8LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1188     fix[  10LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1189     fix[  11LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1190     fix[  12LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1191     fix[  13LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    1192     fix[  14LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
     1199    fix[   6LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1200    fix[   8LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1201    fix[   9LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1202    fix[  10LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1203    fix[  11LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1204    fix[  12LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1205    fix[  13LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
     1206    fix[  14LL << 32 |  133 << 16] = EITFixUp::kFixPremiere | EITFixUp::kFixHDTV;
    11931207    fix[  15LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    11941208    fix[  17LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;
    11951209    // Mark Premiere HD, AXN HD and Discovery HD as HDTV
  • mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.cpp

    diff --git a/mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.cpp b/mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.cpp
    index 77f85e1..ee67330 100644
    a b void TestEITFixups::testUnitymedia() 
    675675    delete event;
    676676}
    677677
     678void TestEITFixups::testDeDisneyChannel()
     679{
     680    EITFixUp fixup;
     681
     682    DBEventEIT *event = SimpleDBEventEIT (EITFixUp::kFixDisneyChannel,
     683                                         "Meine Schwester Charlie",
     684                                         "Das Ablenkungsmanöver Familien-Serie, USA 2011",
     685                                         "...");
     686
     687    PRINT_EVENT(*event);
     688    fixup.Fix(*event);
     689    PRINT_EVENT(*event);
     690    QCOMPARE(event->title,    QString("Meine Schwester Charlie"));
     691    QCOMPARE(event->subtitle, QString("Das Ablenkungsmanöver"));
     692     QCOMPARE(event->category, QString("Familien-Serie"));
     693     QCOMPARE(event->categoryType, ProgramInfo::kCategorySeries);
     694
     695    DBEventEIT *event2 = SimpleDBEventEIT (EITFixUp::kFixDisneyChannel,
     696                                         "Phineas und Ferb",
     697                                         "Das Achterbahn - Musical Zeichentrick-Serie, USA 2011",
     698                                         "...");
     699
     700    PRINT_EVENT(*event2);
     701    fixup.Fix(*event2);
     702    PRINT_EVENT(*event2);
     703    QCOMPARE(event2->title,    QString("Phineas und Ferb"));
     704    QCOMPARE(event2->subtitle, QString("Das Achterbahn - Musical"));
     705}
     706
     707void TestEITFixups::testATV()
     708{
     709    EITFixUp fixup;
     710
     711    DBEventEIT *event = SimpleDBEventEIT (EITFixUp::kFixATV,
     712                                         "Gilmore Girls",
     713                                         "Eine Hochzeit und ein Todesfall, Folge 17",
     714                                         "Lorelai und Rory helfen Luke in seinem Café aus, der mit den Vorbereitungen fÃŒr das ...");
     715
     716    PRINT_EVENT(*event);
     717    fixup.Fix(*event);
     718    PRINT_EVENT(*event);
     719    QCOMPARE(event->title,    QString("Gilmore Girls"));
     720    QCOMPARE(event->subtitle, QString("Eine Hochzeit und ein Todesfall"));
     721
     722}
     723
    678724QTEST_APPLESS_MAIN(TestEITFixups)
  • mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.h

    diff --git a/mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.h b/mythtv/libs/libmythtv/test/test_eitfixups/test_eitfixups.h
    index a2fb09b..547d994 100644
    a b class TestEITFixups : public QObject 
    5050    void testHTMLFixup(void);
    5151    void testSkyEpisodes(void);
    5252    void testUnitymedia(void);
     53    void testDeDisneyChannel(void);
     54    void testATV(void);
    5355
    5456  private:
    5557    static DBEventEIT *SimpleDBEventEIT (FixupValue fix, QString title, QString subtitle, QString description);
  • mythtv/programs/mythfrontend/playbackbox.cpp

    diff --git a/mythtv/programs/mythfrontend/playbackbox.cpp b/mythtv/programs/mythfrontend/playbackbox.cpp
    index 0141a39..9412cf2 100644
    a b static int comp_recordDate_rev(const ProgramInfo *a, const ProgramInfo *b) 
    132132
    133133static int comp_season(const ProgramInfo *a, const ProgramInfo *b)
    134134{
     135    if ((a->GetSeason()==0&&a->GetEpisode()==0)&&(b->GetSeason()==0&&b->GetEpisode()==0))
     136        return comp_recordDate(a,b);
    135137    if (a->GetSeason() == b->GetSeason())
    136138        return (a->GetEpisode() <
    137139                b->GetEpisode() ? 1 : -1);
    static int comp_season(const ProgramInfo *a, const ProgramInfo *b) 
    142144
    143145static int comp_season_rev(const ProgramInfo *a, const ProgramInfo *b)
    144146{
     147    if ((a->GetSeason()==0&&a->GetEpisode()==0)&&(b->GetSeason()==0&&b->GetEpisode()==0))
     148        return comp_recordDate_rev(a,b);
    145149    if (a->GetSeason() == b->GetSeason())
    146150        return (a->GetEpisode() >
    147151                b->GetEpisode() ? 1 : -1);