Ticket #2417: eitfixup-kabeldeutschland.2.diff
File eitfixup-kabeldeutschland.2.diff, 11.3 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/eitfixup.cpp
86 86 m_dePremiereInfos("([^.]+)?\\s?([0-9]{4})\\.\\s[0-9]+\\sMin\\.(?:\\sVon" 87 87 "\\s([^,]+)(?:,|\\su\\.\\sa\\.)\\smit\\s(.+)\\.)?"), 88 88 m_dePremiereOTitle("\\s*\\(([^\\)]*)\\)$"), 89 m_kdEpisode("[\\(]{1}[0-9]+[\\)]{1}"), 90 m_kdPartTotal("([0-9]+)\\s(?:Episoden|Folgen|Teile)"), 91 m_kdPartNumber("(?:Episode|Folge|Teil)\\s([0-9]+)"), 92 m_kdInfos("^([^;]+)\\*"), 93 m_kdOTitle("^(\\([^\\)]+\\))"), 94 m_kdSubtitle("^([^\\(\\)]+)"), 95 m_kdActors("(?:Mit|G[aä]st[e]?:)\\s(.+\\w+)\\s"), 96 m_kdDirector("R:\\s(.+)\\s"), 97 m_kdHost("(?:Moderation:|Presented by)\\s(.+)\\s"), 98 m_kdCategory("^([\\w-]+\\s?\\w*)(?: nach| mit| frei nach| von|$)"), 99 m_kdCatCountryYear("([\\w-]+\\s?\\w*)(?:(?: nach| mit| frei nach| von)[^,]+)?,\\s([A-Z/]+)(?:\\s([0-9-/]{4,}))?(?:,\\s[0-9]+\\sMinuten,?)?(?:,|\\s\\*|$|\\s)"), 89 100 m_nlStereo("stereo"), 90 101 m_nlTxt("txt"), 91 102 m_nlWide("breedbeeld"), … … 148 159 149 160 if (kFixPremiere & event.fixup) 150 161 FixPremiere(event); 162 163 if (kFixKD & event.fixup) 164 FixKD(event); 151 165 152 166 if (kFixNL & event.fixup) 153 167 FixNL(event); … … 1080 1094 } 1081 1095 } 1082 1096 1097 1098 /** \fn EITFixUp::FixKD(DBEvent&) const 1099 * \brief Use this to standardize DVB-C guide in Germany 1100 * for the provider Kabel Deutschland. 1101 */ 1102 void EITFixUp::FixKD(DBEvent &event) const 1103 { 1104 QString country = ""; 1105 QString possible_subtitle = ""; 1106 QString replacement = ""; 1107 // Episodes 1108 QRegExp tmpPartTotal = m_kdPartTotal; 1109 if (tmpPartTotal.search(event.description)!= -1) 1110 { 1111 QStringList parttotal = tmpPartTotal.capturedTexts(); 1112 event.parttotal = parttotal[1].toUInt(); 1113 } 1114 // Episode Number 1115 QRegExp tmpPartNumber = m_kdPartNumber; 1116 if (tmpPartNumber.search(event.description)!= -1) 1117 { 1118 QStringList partnumber = tmpPartNumber.capturedTexts(); 1119 event.partnumber = partnumber[1].toUInt(); 1120 } 1121 // Find infos about Category, Country and Year (Kabel Deutschland) 1122 QRegExp tmpCatCountryYear = m_kdCatCountryYear; 1123 if ((tmpCatCountryYear.search(event.subtitle)!= -1)||(tmpCatCountryYear.search(event.description)!= -1)) 1124 { 1125 QStringList catcountryyear = tmpCatCountryYear.capturedTexts(); 1126 if (event.category.isEmpty()) 1127 event.category = catcountryyear[1]; 1128 if (catcountryyear[2].length()>0) 1129 country = catcountryyear[2]; 1130 if (catcountryyear[3].length()>0) 1131 event.airdate = catcountryyear[3]; 1132 event.subtitle = event.subtitle.replace(catcountryyear[0],""); 1133 event.description = event.description.replace(catcountryyear[0],""); 1134 } 1135 1136 // Find extra infos (category, credits, subtitle, original title) 1137 QRegExp tmpInfos = m_kdInfos; 1138 if (tmpInfos.search(event.description)!=-1) 1139 { 1140 QStringList list = tmpInfos.capturedTexts(); 1141 QStringList infos; 1142 infos = QStringList::split("*", list[1]); 1143 1144 QRegExp tmpDirector = m_kdDirector; 1145 QRegExp tmpHost = m_kdHost; 1146 QRegExp tmpActor = m_kdActors; 1147 QRegExp tmpOTitle = m_kdOTitle; 1148 QRegExp tmpCategory = m_kdCategory; 1149 QRegExp tmpSubtitle = m_kdSubtitle; 1150 1151 for(QStringList::size_type i=0;i<infos.count();i++) 1152 { 1153 if (tmpDirector.search(infos[i])!=-1) 1154 { 1155 QStringList director = tmpDirector.capturedTexts(); 1156 event.AddPerson(DBPerson::kDirector, director[1]); 1157 event.description = event.description.replace(infos[i]+"*",""); 1158 } 1159 else if (tmpHost.search(infos[i])!=-1) 1160 { 1161 QStringList host = tmpHost.capturedTexts(); 1162 event.AddPerson(DBPerson::kHost, host[1]); 1163 event.description = event.description.replace(infos[i]+"*",""); 1164 } 1165 else if (tmpActor.search(infos[i])!=-1) 1166 { 1167 QStringList actorlist = tmpActor.capturedTexts(); 1168 QStringList actors = QStringList::split(", ", actorlist[1]); 1169 for(QStringList::size_type j=0;j<actors.count();j++) 1170 event.AddPerson(DBPerson::kActor, actors[j]); 1171 event.description = event.description.replace(infos[i]+"*",""); 1172 } 1173 else if (tmpOTitle.search(infos[i])!=-1) 1174 { 1175 QStringList origtitle = tmpOTitle.capturedTexts(); 1176 event.title += " " + origtitle[1]; 1177 event.description = event.description.replace(infos[i]+"*",""); 1178 } 1179 else if (event.category.isEmpty() && (tmpCategory.search(infos[i])!=-1)) 1180 { 1181 QStringList category = tmpCategory.capturedTexts(); 1182 event.category = category[1]; 1183 event.description = event.description.replace(infos[i]+"*",""); 1184 } 1185 else if (tmpSubtitle.search(infos[i])!=-1) 1186 { 1187 possible_subtitle = tmpSubtitle.capturedTexts()[1]; 1188 replacement = infos[i]; 1189 } 1190 } 1191 1192 } 1193 if (event.category.isEmpty()&&!event.subtitle.isEmpty()) 1194 { 1195 QRegExp tmpCategory = m_kdCategory; 1196 if (tmpCategory.search(event.subtitle)!=-1) 1197 { 1198 event.category = event.subtitle; 1199 event.subtitle = ""; 1200 } 1201 } 1202 if (event.subtitle.isEmpty()&&!possible_subtitle.isEmpty()) 1203 { 1204 event.subtitle = possible_subtitle; 1205 event.description = event.description.replace(replacement+"*",""); 1206 } 1207 1208 // write found country at the description end 1209 if (!country.isEmpty()) 1210 event.description += " " + country; 1211 1212 // Get Episode Number from event title 1213 int position = event.title.find(m_kdEpisode); 1214 if (position != -1) 1215 { 1216 event.partnumber = event.title.mid(position + 1, event.title.length() - position - 2).toUInt(); 1217 event.title = event.title.left(position); 1218 } 1219 } 1220 1083 1221 /** \fn EITFixUp::FixFI(DBEvent&) const 1084 1222 * \brief Use this to clean DVB-T guide in Finland. 1085 1223 */ -
libs/libmythtv/eithelper.cpp
758 758 fix[ 8707LL << 32 | 8468 << 16 | 16413] = EITFixUp::kEFixForceISO8859_15; 759 759 760 760 // DVB-C Kabel Deutschland encoding fixes Germany 761 fix[ 112LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 762 fix[ 10000LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 763 fix[ 10001LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 764 fix[ 10002LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 765 fix[ 10003LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 766 fix[ 10006LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 767 fix[ 10009LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15; 761 fix[ 112LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 762 fix[ 10000LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 763 fix[ 10001LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 764 fix[ 10002LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 765 fix[ 10003LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 766 fix[ 10004LL << 32 | 61441U << 16] = EITFixUp::kFixKD; 767 fix[ 10005LL << 32 | 61441U << 16] = EITFixUp::kFixKD; 768 fix[ 10006LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 769 fix[ 10007LL << 32 | 61441U << 16] = EITFixUp::kFixKD; 770 fix[ 10008LL << 32 | 61441U << 16] = EITFixUp::kFixKD; 771 fix[ 10009LL << 32 | 61441U << 16] = EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 768 772 // On transport 10004 only DMAX needs no fixing: 769 773 fix[ 10004LL<<32 | 61441U << 16 | 50403] = // BBC World Service 770 774 fix[10004LL<<32 | 61441U << 16 | 53101] = // BBC Prime (engl) … … 783 787 fix[10004LL<<32 | 61441U << 16 | 53513] = // Playhouse Disney (engl) 784 788 fix[10004LL<<32 | 61441U << 16 | 53618] = // K1010 785 789 fix[10004LL<<32 | 61441U << 16 | 53619] = // GemsTV 786 EITFixUp::kEFixForceISO8859_15 ;790 EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 787 791 // On transport 10005 QVC and Giga Digital needs no fixing: 788 792 fix[ 10005LL<<32 | 61441U << 16 | 50104] = // E! Entertainment 789 793 fix[10005LL<<32 | 61441U << 16 | 50107] = // 13th Street (KD) … … 802 806 fix[10005LL<<32 | 61441U << 16 | 53516] = // Voyages Television 803 807 fix[10005LL<<32 | 61441U << 16 | 53611] = // Der Schmuckkanal 804 808 fix[10005LL<<32 | 61441U << 16 | 53104] = // Jukebox 805 EITFixUp::kEFixForceISO8859_15 ;809 EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 806 810 // On transport 10007 only following channels need fixing: 807 811 fix[ 10007LL<<32| 61441U << 16 | 53607] = // Eurosport 808 812 fix[10007LL<<32| 61441U << 16 | 53608] = // Das Vierte 809 813 fix[10007LL<<32| 61441U << 16 | 53609] = // Viva 810 814 fix[10007LL<<32| 61441U << 16 | 53628] = // COMEDY CENTRAL 811 EITFixUp::kEFixForceISO8859_15 ;815 EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 812 816 // On transport 10008 only following channels need fixing: 813 817 fix[ 10008LL<<32 | 61441U << 16 | 53002] = // Tele 5 814 818 fix[10008LL<<32 | 61441U << 16 | 53630] = // HSE24 815 EITFixUp::kEFixForceISO8859_15 ;819 EITFixUp::kEFixForceISO8859_15 | EITFixUp::kFixKD; 816 820 817 821 // DVB-S Astra 19.2E DMAX Germany 818 822 fix[ 1113LL << 32 | 1 << 16 | 12602] = EITFixUp::kEFixForceISO8859_15; -
libs/libmythtv/eitfixup.h
43 43 // Early fixups 44 44 kEFixForceISO8859_1 = 0x2000, 45 45 kEFixForceISO8859_15 = 0x4000, 46 47 // Kabel Deutschland fixups 48 kFixKD = 0x8000, 46 49 }; 47 50 48 51 EITFixUp(); … … 69 72 void FixRTL(DBEvent &event) const; // RTL group DVB 70 73 void FixFI(DBEvent &event) const; // Finland DVB-T 71 74 void FixPremiere(DBEvent &event) const; // german pay-tv Premiere 75 void FixKD(DBEvent &event) const; // german DVB-C 72 76 void FixNL(DBEvent &event) const; // Netherlands DVB-C 73 77 74 78 const QRegExp m_bellYear; … … 143 147 const QRegExp m_Stereo; 144 148 const QRegExp m_dePremiereInfos; 145 149 const QRegExp m_dePremiereOTitle; 150 const QRegExp m_kdEpisode; 151 const QRegExp m_kdPartTotal; 152 const QRegExp m_kdPartNumber; 153 const QRegExp m_kdInfos; 154 const QRegExp m_kdStereo; 155 const QRegExp m_kdOTitle; 156 const QRegExp m_kdSubtitle; 157 const QRegExp m_kdActors; 158 const QRegExp m_kdDirector; 159 const QRegExp m_kdHost; 160 const QRegExp m_kdCategory; 161 const QRegExp m_kdCatCountryYear; 146 162 const QRegExp m_nlStereo; 147 163 const QRegExp m_nlTxt; 148 164 const QRegExp m_nlWide;