diff --git a/mythtv/libs/libmythtv/eitfixup.cpp b/mythtv/libs/libmythtv/eitfixup.cpp index 5503e54..a40fccd 100644 --- a/mythtv/libs/libmythtv/eitfixup.cpp +++ b/mythtv/libs/libmythtv/eitfixup.cpp @@ -48,6 +48,7 @@ EITFixUp::EITFixUp() m_mcaActorsSeparator("(,\\s+)"), m_mcaYear("(.*) \\((\\d{4})\\)\\s*$"), m_mcaCC("(.*)\\. HI Subtitles$"), + m_RTLRerun("Wiederholung\\s.+(\\w+,)?\\s(\\d{2}):(\\d{2})\\sUhr"), m_RTLSubtitle("([^\\.]+)\\.\\s+(.+)") { } @@ -740,14 +741,25 @@ void EITFixUp::FixRTL(DBEvent &event) co const uint SUBTITLE_PCT = 35; //% of description to allow subtitle up to const uint SUBTITLE_MAX_LEN = 128; // max length of subtitle field in db. int position; - QRegExp tmpExp1; // No need to continue without a description. if (event.description.length() <= 0) { return; } + + // Extract rerun information and find easily subtitle + QRegExp tmpExp1 = m_RTLRerun; + if ((position = tmpExp1.search(event.description)) != -1) + { + //XXX: todo parse original airdate from captured text + event.originalairdate = event.starttime.date(); // today + event.subtitle = event.description.left(position); + event.description = event.description.right(position + tmpExp1.cap(0).length()); + } // Try to find subtitle in description + else + { tmpExp1 = m_RTLSubtitle; if ((position = tmpExp1.search(event.description)) != -1) { @@ -759,4 +771,5 @@ void EITFixUp::FixRTL(DBEvent &event) co event.description = tmpExp1.cap(2); } } + } } diff --git a/mythtv/libs/libmythtv/eitfixup.h b/mythtv/libs/libmythtv/eitfixup.h index a4ac7bf..a8f8046 100644 --- a/mythtv/libs/libmythtv/eitfixup.h +++ b/mythtv/libs/libmythtv/eitfixup.h @@ -94,6 +94,7 @@ class EITFixUp const QRegExp m_mcaActorsSeparator; const QRegExp m_mcaYear; const QRegExp m_mcaCC; + const QRegExp m_RTLRerun; const QRegExp m_RTLSubtitle; };