From 2e1d587eae59e7d53d52efc6b44d8755a3c5407c Mon Sep 17 00:00:00 2001 From: jc Date: Wed, 20 Jul 2016 13:39:37 +0200 Subject: [PATCH 1/6] remove README.md --- README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 From aa2b633a3a05b61f195c7e9848d01288adc37953 Mon Sep 17 00:00:00 2001 From: jc Date: Wed, 20 Jul 2016 13:41:11 +0200 Subject: [PATCH 2/6] WebGrab+Plus 56.27pre --- WebGrab+Plus/WebGrab+Plus.exe | Bin 0 -> 602112 bytes WebGrab+Plus/xmltv.dll | Bin 0 -> 33280 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 WebGrab+Plus/WebGrab+Plus.exe create mode 100644 WebGrab+Plus/xmltv.dll diff --git a/WebGrab+Plus/WebGrab+Plus.exe b/WebGrab+Plus/WebGrab+Plus.exe new file mode 100644 index 0000000000000000000000000000000000000000..f14c554e09396eb9aad8bb5c45f5d1a4482448e0 GIT binary patch literal 602112 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 literal 0 HcmV?d00001 diff --git a/WebGrab+Plus/xmltv.dll b/WebGrab+Plus/xmltv.dll new file mode 100644 index 0000000000000000000000000000000000000000..cba4c8b518dd576278257cf39b32f80ba89ab8c9 GIT binary patch literal 33280 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 literal 0 HcmV?d00001 From fe9676242269374cb7d3f4cec9d043432ef06f43 Mon Sep 17 00:00:00 2001 From: jc Date: Wed, 20 Jul 2016 13:42:22 +0200 Subject: [PATCH 3/6] WG2MP --- WebGrab+Plus/WG2MP.exe | Bin 0 -> 6656 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 WebGrab+Plus/WG2MP.exe diff --git a/WebGrab+Plus/WG2MP.exe b/WebGrab+Plus/WG2MP.exe new file mode 100644 index 0000000000000000000000000000000000000000..bdf622cf471b61f83d11da53e2fe353e8d74aa1b GIT binary patch literal 6656 zcmeHLZ)_aJ6@R<8KHr_~BX>@0fGtu z`oi|~g6Zl7$DVhLyq+;E%l7nHp*uxOH!Xc=VoJ~3S&?jLi0mwxo*X6`RRT2f%7(FW zZ*P*S)F~mN4WOXn@=iN|j<+8#109v>`wdL`&o!;!1)WQP`tOxS*bW<$b){k=eG_)4 z80m+}8b&TDCyDAo+5)*Pm#{vxsaIT=Vj;9|tWrpNV#!1MA6Ec?Cw(jVjg~Ar(aEIa zIvKR2Z~Z`mc;k4hNcI=4fa)Nc_1l`b+J0T1uf^_EROk(*jKY?ZJ8cc*3d(-+NM@S zI@lPFg-Tc?9(Ecb7OQF9Ds|(LHSJK@R;7A}sTN{ho+rj!ns5OBq)QZWAxY$~e#`;)&v%L#gI96|8gBsPfsIJ41l~$h4 zC`GQMO$ZczV-%jD1Y)JA^awpYtsvAyjhM?nqQ(GYthH$7AYcSHN)jEC9@K-?#s2!5J zhgYOuT0130ZQ52Z&21ocTV%BxG`BhfZijU}H1Tn#Ta!A| zAD~_tku3?oH3AvrG`W7hbmcTP%Tq$3V_++E5>TZ)ZKi2zq3sgxmatR8UI_;zOiB1@ z32%|m0MyBp_$djOCHy?#E_gDHnRp1WnI5Ib)DFNW)lXm+&Z@n1M$*sF>uL-AfZkRQ z($7I@pT^M4l#QZxPs21}&A^*WoP~1*7&yKrLoRMB9SvL9Gygm=i!6!XIJXw-)I@KQ#|H9%NaC&q;9 z8uOLKG=j4QChn4sQE4(#)|}0D#xcfnJ!-mGw1QV2lPg0Xv~#7^=u&FfLcds1So$Nv zt7>u2gGI+-r(n1efK_ejT!rqgk&?U=cHYFCL}!d#QBdlz?c@y)>v7S{3Ww5mDKOYx zCw!4Hdr^$@%{et>x&_Hs-S`E^BC`!kYIMXsS4i?7{X^mW$*f z6{oN-Y0_|DhtYBSO_?taJ9hp?yXeTf2M)Di6Pdq2 zMe=Yu+2lybtuk#6XI72`=oa`a<$@beTQMM+{Xjbw88|})tmvqVsM+SM z>>(>{&H;DuTHtIa>RRu?96TvjdSRb4(su{c0<@^kg3oObPeE6v&4ew;@GWFO&a_;f|Zdb0Z$sKo%#e-A^5OD6k)I8!3UbJY%N+{>s}miJkrT zzuz-?W-|FAg`TNbx+HTNpXTv|==CTq7sJB2X1 zXRpupwDs=m=xyun>FR2m?Z|eu&56!TwxhSByE~h~{avBjPF&ydU^0}_of!!3=qOwH z9+_5~jygtR+_oxNHND{2ce>ICs{AjZLg6;NJ@{7X!I$fisiCQJ4M#7W{K`!eU(eT0 z{q6VH2KbILwEs9xGbC|+$}46~8%}rh9LE^>g5e&QBP>CC_V(jTJ)b;|b3_=f@Tti{ zb{1ynXQl6Q#?LdZGq%2zzu#9mCkAb2cuB~+jJ)Rvk<8}!y9NL7>>|BiVwVT1{2M|i zTH(JAdQh*G^KagmqRY}3E<?92^EwhY;e365s2RR!ue)*pE9*ipR$%7PU&H2k%`i+#~OyfV@$d6c&)QvA2r6NCs zEaoEfu^rBOtNk3M5q#f`5#kQLP?gS%%&l&fY$tBy9hH~+;BQ18l_zC6U*`}vKWh`M z+D?MMgqQydibH1<_`H-Jl(}?SdNxlButd1gbAGL+>G+z^@$5tYopO8!WZx4dJ&q3d zU5<45+7ZDe)%Ij(!9wWzOt?Z?dxil_4QfEM(0|Mv4EIeC=_y0@p z-DiJ#;NVg|r!V^V`@RG+OhOl>i$z}ow~Dr&gzkEVl{Ip>67(gOg_}5dLqp_%QM%ph zFkrcTiK1iecQXsPNV{!$GvnB Date: Wed, 20 Jul 2016 13:42:52 +0200 Subject: [PATCH 4/6] xmltv_time_correct --- WebGrab+Plus/xmltv_time_correct.exe | Bin 0 -> 9728 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 WebGrab+Plus/xmltv_time_correct.exe diff --git a/WebGrab+Plus/xmltv_time_correct.exe b/WebGrab+Plus/xmltv_time_correct.exe new file mode 100644 index 0000000000000000000000000000000000000000..2c0272435ac74ab74d49407beb769fd3b3e8c16e GIT binary patch literal 9728 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 O-~+JYmnuJ?2>cI3>#E}b literal 0 HcmV?d00001 From 30c4f48f5b92d699d189133fcc8de4f4db952177 Mon Sep 17 00:00:00 2001 From: jc Date: Wed, 20 Jul 2016 13:43:35 +0200 Subject: [PATCH 5/6] siteini.pack 20160719 --- .../Albania/ipko.com.channels.xml | 62 + config/siteini.pack/Albania/ipko.com.ini | 46 + .../siteini.pack/Albania/rtsh.al.channels.xml | 13 + config/siteini.pack/Albania/rtsh.al.ini | 28 + .../Albania/tring.tv.channels.xml | 61 + config/siteini.pack/Albania/tring.tv.ini | 45 + .../buscadorcablevision.com.ar.channels.xml | 73 + .../Argentina/buscadorcablevision.com.ar.ini | 57 + .../Argentina/gigared.com.ar.channels.xml | 177 ++ .../siteini.pack/Argentina/gigared.com.ar.ini | 120 ++ .../Argentina/reportv.com.ar.channels.xml | 95 + .../siteini.pack/Argentina/reportv.com.ar.ini | 116 ++ .../Australia/foxtel.com.au.channels.xml | 198 ++ .../siteini.pack/Australia/foxtel.com.au.ini | 96 + .../Australia/foxtel.com.au_info.txt | 434 ++++ .../Australia/foxtel.com.au_regions.xml | 50 + .../Australia/freeview.com.au.channels.xml | 33 + .../Australia/freeview.com.au.ini | 84 + .../Australia/freeview.com.au_info.txt | 82 + .../Australia/ictv.net.au.channels.xml | 6 + config/siteini.pack/Australia/ictv.net.au.ini | 74 + .../Australia/oztivo.net.channels.xml | 396 ++++ config/siteini.pack/Australia/oztivo.net.ini | 70 + .../Australia/oztivo.net.mp.channels.xml | 353 ++++ .../siteini.pack/Australia/oztivo.net.mp.ini | 96 + .../Australia/rhef.com.au.channels.xml | 6 + config/siteini.pack/Australia/rhef.com.au.ini | 67 + .../Australia/sattvguide.com.au.channels.xml | 74 + .../Australia/sattvguide.com.au.ini | 44 + .../Australia/setanta.com.au.channels.xml | 7 + .../siteini.pack/Australia/setanta.com.au.ini | 114 ++ .../siliconhill.com.au.sydney.channels.xml | 26 + .../Australia/siliconhill.com.au.sydney.ini | 73 + .../siliconhill.com.au.sydney.mp.channels.xml | 26 + .../siliconhill.com.au.sydney.mp.ini | 114 ++ ...siliconhill.com.au.wollongong.channels.xml | 173 ++ .../siliconhill.com.au.wollongong.ini | 73 + ...iconhill.com.au.wollongong.mp.channels.xml | 173 ++ .../siliconhill.com.au.wollongong.mp.ini | 113 ++ .../Australia/sportsfan.com.au.channels.xml | 6 + .../Australia/sportsfan.com.au.ini | 32 + .../Australia/yourtv.com.au.channels.xml | 57 + .../siteini.pack/Australia/yourtv.com.au.ini | 117 ++ .../Australia/yourtv.com.au_readme.txt | 28 + .../Australia/yourtv.com.au_regions.xml | 53 + .../Austria/horizon.tv.at.channels.xml | 1069 ++++++++++ config/siteini.pack/Austria/horizon.tv.at.ini | 74 + .../Austria/m.tele.at.channels.xml | 111 ++ config/siteini.pack/Austria/m.tele.at.ini | 76 + .../Austria/tv-media.at.channels.xml | 129 ++ config/siteini.pack/Austria/tv-media.at.ini | 102 + .../siteini.pack/Austria/tvtv.at.channels.xml | 122 ++ config/siteini.pack/Austria/tvtv.at.ini | 141 ++ .../siteini.pack/Austria/upc.at.channels.xml | 199 ++ config/siteini.pack/Austria/upc.at.ini | 44 + .../siteini.pack/Belgium/humo.be.channels.xml | 45 + config/siteini.pack/Belgium/humo.be.ini | 98 + .../Belgium/mijn-tv-gids.be.channels.xml | 62 + .../siteini.pack/Belgium/mijn-tv-gids.be.ini | 205 ++ .../Belgium/mon-programme-tv.be.channels.xml | 50 + .../Belgium/mon-programme-tv.be.ini | 191 ++ .../Belgium/moustique.be.channels.xml | 73 + config/siteini.pack/Belgium/moustique.be.ini | 56 + .../Belgium/primo.eu.channels.xml | 82 + config/siteini.pack/Belgium/primo.eu.ini | 69 + .../Belgium/yelotv.be.channels.xml | 287 +++ config/siteini.pack/Belgium/yelotv.be.ini | 91 + .../siteini.pack/Belgium/yelotv.be_info.txt | 11 + .../siteini.pack/Belgium/zita.be.channels.xml | 135 ++ config/siteini.pack/Belgium/zita.be.ini | 35 + .../siteini.pack/Bosnia/hayat.ba.channels.xml | 10 + config/siteini.pack/Bosnia/hayat.ba.ini | 43 + .../Bosnia/hteronet.ba.channels.xml | 144 ++ config/siteini.pack/Bosnia/hteronet.ba.ini | 45 + .../Bosnia/plus.rtrs.tv.channels.xml | 6 + config/siteini.pack/Bosnia/plus.rtrs.tv.ini | 31 + .../Bosnia/telemach.ba.channels.xml | 114 ++ config/siteini.pack/Bosnia/telemach.ba.ini | 36 + .../siteini.pack/Bosnia/teve.ba.channels.xml | 245 +++ config/siteini.pack/Bosnia/teve.ba.ini | 37 + .../Brazil/clarotv.com.br.channels.xml | 159 ++ config/siteini.pack/Brazil/clarotv.com.br.ini | 111 ++ .../Brazil/hagah.com.br.channels.xml | 203 ++ config/siteini.pack/Brazil/hagah.com.br.ini | 64 + .../hagah.com.br_info.howtochangeregion.txt | 62 + .../Brazil/meuguia.tv.channels.xml | 173 ++ config/siteini.pack/Brazil/meuguia.tv.ini | 87 + .../Brazil/sky.com.br.channels.xml | 7 + config/siteini.pack/Brazil/sky.com.br.ini | 77 + .../Brazil/tvmagazine.com.br.channels.xml | 1645 +++++++++++++++ .../siteini.pack/Brazil/tvmagazine.com.br.ini | 87 + .../Bulgaria/bulsat.com.channels.xml | 87 + config/siteini.pack/Bulgaria/bulsat.com.ini | 86 + .../Bulgaria/media-press.tv.channels.xml | 50 + .../siteini.pack/Bulgaria/media-press.tv.ini | 53 + .../Bulgaria/potv.bg.channels.xml | 132 ++ config/siteini.pack/Bulgaria/potv.bg.ini | 117 ++ .../Bulgaria/tv.boxbg.net.channels.xml | 106 + config/siteini.pack/Bulgaria/tv.boxbg.net.ini | 64 + .../Bulgaria/tv.dir.bg.channels.xml | 119 ++ config/siteini.pack/Bulgaria/tv.dir.bg.ini | 59 + .../Bulgaria/tv.etcc.bg.channels.xml | 217 ++ config/siteini.pack/Bulgaria/tv.etcc.bg.ini | 33 + .../Bulgaria/tv.etcc.bg_cookies.txt | 1 + .../Bulgaria/tvplus.bg.channels.xml | 11 + config/siteini.pack/Bulgaria/tvplus.bg.ini | 33 + .../Bulgaria/vivacom.bg.channels.xml | 150 ++ config/siteini.pack/Bulgaria/vivacom.bg.ini | 57 + .../Canada/canada.com.L9H1N3.channels.xml | 95 + .../siteini.pack/Canada/canada.com.L9H1N3.ini | 103 + .../Canada/canada.com.no-provider.ini | 106 + ...da.com.no-provider_info.howtocustomize.txt | 51 + .../siteini.pack/Canada/sho.com.channels.xml | 16 + config/siteini.pack/Canada/sho.com.ini | 52 + .../Canada/superchannel.ca.channels.xml | 9 + .../siteini.pack/Canada/superchannel.ca.ini | 48 + .../Canada/tvhebdo.com.channels.xml | 385 ++++ config/siteini.pack/Canada/tvhebdo.com.ini | 93 + .../China/fr.cntv.cn.channels.xml | 6 + config/siteini.pack/China/fr.cntv.cn.ini | 86 + .../China/tv.cntv.cn.channels.xml | 147 ++ config/siteini.pack/China/tv.cntv.cn.ini | 40 + .../Colombia/claro.com.co.channels.xml | 302 +++ config/siteini.pack/Colombia/claro.com.co.ini | 91 + .../siteini.pack/Croatia/bnet.hr.channels.xml | 187 ++ config/siteini.pack/Croatia/bnet.hr.ini | 76 + .../Croatia/m.tvprofil.net.channels.xml | 497 +++++ .../siteini.pack/Croatia/m.tvprofil.net.ini | 78 + .../Croatia/mojtv.hr.channels.xml | 290 +++ config/siteini.pack/Croatia/mojtv.hr.ini | 58 + .../siteini.pack/Croatia/port.hr.channels.xml | 123 ++ config/siteini.pack/Croatia/port.hr.ini | 125 ++ .../Croatia/tvprofil.net.channels.xml | 48 + config/siteini.pack/Croatia/tvprofil.net.ini | 84 + .../Czech Republic/horizon.tv.cz.channels.xml | 151 ++ .../Czech Republic/horizon.tv.cz.ini | 74 + .../Czech Republic/port.cz.channels.xml | 118 ++ .../siteini.pack/Czech Republic/port.cz.ini | 83 + .../Czech Republic/port.cz.m.channels.xml | 119 ++ .../siteini.pack/Czech Republic/port.cz.m.ini | 72 + .../Czech Republic/tv.sms.cz.m.channels.xml | 678 +++++++ .../Czech Republic/tv.sms.cz.m.ini | 97 + .../Denmark/dk.timefor.tv.channels.xml | 1756 ++++++++++++++++ config/siteini.pack/Denmark/dk.timefor.tv.ini | 120 ++ .../siteini.pack/Denmark/ontv.dk.channels.xml | 113 ++ config/siteini.pack/Denmark/ontv.dk.ini | 72 + .../Denmark/tvguide.dk.channels.xml | 385 ++++ config/siteini.pack/Denmark/tvguide.dk.ini | 124 ++ .../Denmark/tvtid.tv2.dk.channels.xml | 202 ++ .../tvtid.tv2.dk.index-only.channels.xml | 129 ++ .../Denmark/tvtid.tv2.dk.index-only.ini | 31 + config/siteini.pack/Denmark/tvtid.tv2.dk.ini | 76 + .../Denmark/viasat.dk.channels.xml | 66 + config/siteini.pack/Denmark/viasat.dk.ini | 67 + .../Egypt/elcinema.ar.com.channels.xml | 84 + config/siteini.pack/Egypt/elcinema.ar.com.ini | 121 ++ .../siteini.pack/Estonia/kava.ee.channels.xml | 160 ++ config/siteini.pack/Estonia/kava.ee.ini | 63 + .../Estonia/kavad.ee.channels.xml | 38 + config/siteini.pack/Estonia/kavad.ee.ini | 46 + .../Finland/cmore.fi.channels.xml | 22 + config/siteini.pack/Finland/cmore.fi.ini | 105 + .../Finland/eurosport.fi.channels.xml | 7 + config/siteini.pack/Finland/eurosport.fi.ini | 81 + .../Finland/grid_telsu.fi.channels.xml | 78 + config/siteini.pack/Finland/grid_telsu.fi.ini | 55 + .../Finland/iltapulu.fi.channels.xml | 64 + config/siteini.pack/Finland/iltapulu.fi.ini | 48 + .../Finland/list_telsu.fi.channels.xml | 78 + config/siteini.pack/Finland/list_telsu.fi.ini | 37 + .../siteini.pack/Finland/mtv3.fi.channels.xml | 29 + config/siteini.pack/Finland/mtv3.fi.ini | 66 + .../Finland/nelonen.fi.channels.xml | 19 + config/siteini.pack/Finland/nelonen.fi.ini | 39 + .../Finland/telkku.com.channels.xml | 118 ++ config/siteini.pack/Finland/telkku.com.ini | 54 + .../Finland/telkussa.fi.channels.xml | 112 ++ config/siteini.pack/Finland/telkussa.fi.ini | 42 + .../Finland/telvis.fi.channels.xml | 140 ++ config/siteini.pack/Finland/telvis.fi.ini | 76 + .../France/bfmtv.com.channels.xml | 8 + config/siteini.pack/France/bfmtv.com.ini | 39 + .../France/canalsat.fr.channels.xml | 162 ++ config/siteini.pack/France/canalsat.fr.ini | 65 + .../France/colmax.tv.channels.xml | 6 + config/siteini.pack/France/colmax.tv.ini | 36 + .../France/enorme.tv.channels.xml | 6 + config/siteini.pack/France/enorme.tv.ini | 37 + .../France/fr.tv.yahoo.com.channels.xml | 89 + .../siteini.pack/France/fr.tv.yahoo.com.ini | 35 + .../France/gongnetworks.com.channels.xml | 7 + .../siteini.pack/France/gongnetworks.com.ini | 32 + .../France/horizon.tv.fr.channels.xml | 228 +++ config/siteini.pack/France/horizon.tv.fr.ini | 74 + .../France/latele.ch.channels.xml | 6 + config/siteini.pack/France/latele.ch.ini | 39 + .../programme-tv.premiere.fr.channels.xml | 1433 +++++++++++++ .../France/programme-tv.premiere.fr.ini | 81 + .../France/skysiertv.com.channels.xml | 225 +++ config/siteini.pack/France/skysiertv.com.ini | 39 + .../France/telerama.fr.channels.xml | 319 +++ .../telerama.fr.index-only.channels.xml | 319 +++ .../France/telerama.fr.index-only.ini | 60 + config/siteini.pack/France/telerama.fr.ini | 99 + .../France/telerama.fr.willy.channels.xml | 315 +++ .../siteini.pack/France/telerama.fr.willy.ini | 59 + .../France/telestar.fr-full.channels.xml | 69 + .../siteini.pack/France/telestar.fr-full.ini | 51 + .../France/telestar.fr.channels.xml | 68 + config/siteini.pack/France/telestar.fr.ini | 37 + .../siteini.pack/France/telez.fr.channels.xml | 145 ++ config/siteini.pack/France/telez.fr.ini | 50 + .../France/tv.orange.fr.channels.xml | 116 ++ config/siteini.pack/France/tv.orange.fr.ini | 78 + .../siteini.pack/France/weo.fr.channels.xml | 6 + config/siteini.pack/France/weo.fr.ini | 32 + .../Georgia/myvideo.ge.channels.xml | 64 + config/siteini.pack/Georgia/myvideo.ge.ini | 34 + config/siteini.pack/Germany/dw.de.ini | 41 + .../Germany/horizon.tv.de.channels.xml | 1405 +++++++++++++ config/siteini.pack/Germany/horizon.tv.de.ini | 74 + .../Germany/klack.de.channels.xml | 791 ++++++++ config/siteini.pack/Germany/klack.de.ini | 63 + .../Germany/prisma.de.channels.xml | 136 ++ config/siteini.pack/Germany/prisma.de.ini | 56 + .../siteini.pack/Germany/sky.de.channels.xml | 146 ++ config/siteini.pack/Germany/sky.de.ini | 138 ++ .../Germany/tvguide.dk.channels.xml | 385 ++++ config/siteini.pack/Germany/tvguide.dk.ini | 121 ++ .../Germany/tvinfo.de.channels.xml | 41 + config/siteini.pack/Germany/tvinfo.de.ini | 86 + .../Germany/tvmovie.de.channels.xml | 210 ++ config/siteini.pack/Germany/tvmovie.de.ini | 74 + .../Germany/tvspielfilm.de.channels.xml | 176 ++ .../siteini.pack/Germany/tvspielfilm.de.ini | 85 + .../Germany/tvtoday.de.Puls8.channels.xml | 6 + .../siteini.pack/Germany/tvtoday.de.Puls8.ini | 209 ++ .../Germany/tvtoday.de.channels.xml | 205 ++ config/siteini.pack/Germany/tvtoday.de.ini | 116 ++ .../siteini.pack/Germany/tvtv.de.channels.xml | 136 ++ config/siteini.pack/Germany/tvtv.de.ini | 186 ++ config/siteini.pack/Germany/tvtv.de_info.txt | 31 + .../siteini.pack/Ghana/gotvafrica.com.gh.ini | 71 + .../Greece/blueskytv.gr.channels.xml | 6 + config/siteini.pack/Greece/blueskytv.gr.ini | 31 + .../Greece/cosmote.gr.channels.xml | 99 + config/siteini.pack/Greece/cosmote.gr.ini | 53 + .../Greece/cybc.com.cy.channels.xml | 8 + config/siteini.pack/Greece/cybc.com.cy.ini | 83 + .../Greece/cyta.com.cy.channels.xml | 97 + config/siteini.pack/Greece/cyta.com.cy.ini | 39 + .../siteini.pack/Greece/ishow.gr.channels.xml | 50 + config/siteini.pack/Greece/ishow.gr.ini | 199 ++ .../siteini.pack/Greece/nova.gr.channels.xml | 57 + config/siteini.pack/Greece/nova.gr.ini | 248 +++ .../Greece/novaguide.gr.channels.xml | 69 + config/siteini.pack/Greece/novaguide.gr.ini | 66 + .../Greece/novaguide_en.gr.channels.xml | 69 + .../siteini.pack/Greece/novaguide_en.gr.ini | 66 + .../siteini.pack/Greece/palo.gr.channels.xml | 33 + config/siteini.pack/Greece/palo.gr.ini | 31 + .../Greece/tv.pathfinder.gr.channels.xml | 89 + .../siteini.pack/Greece/tv.pathfinder.gr.ini | 141 ++ .../Hong Kong/epg.i-cable.com.channels.xml | 121 ++ .../epg.i-cable.com.chinese.channels.xml | 247 +++ .../Hong Kong/epg.i-cable.com.chinese.ini | 61 + .../Hong Kong/epg.i-cable.com.ini | 39 + .../Hong Kong/nowtv.now.com.channels.xml | 210 ++ .../siteini.pack/Hong Kong/nowtv.now.com.ini | 71 + .../Hong Kong/tvb.com.pearl.channels.xml | 6 + .../siteini.pack/Hong Kong/tvb.com.pearl.ini | 60 + .../tvbnetworkvision.com.channels.xml | 70 + .../Hong Kong/tvbnetworkvision.com.ini | 53 + .../Hungary/horizon.tv.hu.channels.xml | 577 ++++++ config/siteini.pack/Hungary/horizon.tv.hu.ini | 75 + .../Hungary/musor.tv.channels.xml | 143 ++ config/siteini.pack/Hungary/musor.tv.ini | 82 + .../siteini.pack/Hungary/port.hu.channels.xml | 152 ++ config/siteini.pack/Hungary/port.hu.ini | 83 + .../Hungary/port.hu.m.channels.xml | 154 ++ config/siteini.pack/Hungary/port.hu.m.ini | 78 + .../Hungary/tavrogzito.upc.hu.channels.xml | 112 ++ .../Hungary/tavrogzito.upc.hu.ini | 37 + .../Hungary/tv.animare.hu.channels.xml | 105 + config/siteini.pack/Hungary/tv.animare.hu.ini | 67 + .../siteini.pack/Iceland/n4.is.channels.xml | 6 + config/siteini.pack/Iceland/n4.is.ini | 51 + .../siteini.pack/Iceland/ruv.is.channels.xml | 8 + config/siteini.pack/Iceland/ruv.is.ini | 43 + .../Iceland/sjonvarp.is.channels.xml | 78 + config/siteini.pack/Iceland/sjonvarp.is.ini | 48 + .../Iceland/skjar1.is.channels.xml | 8 + config/siteini.pack/Iceland/skjar1.is.ini | 35 + .../Iceland/skjarinn.is.channels.xml | 94 + config/siteini.pack/Iceland/skjarinn.is.ini | 51 + .../Iceland/stod2.is.channels.xml | 8 + config/siteini.pack/Iceland/stod2.is.ini | 35 + .../India/aasthatv.com.channels.xml | 11 + config/siteini.pack/India/aasthatv.com.ini | 117 ++ config/siteini.pack/India/in.com.channels.xml | 292 +++ config/siteini.pack/India/in.com.ini | 54 + .../India/startv.com.channels.xml | 55 + config/siteini.pack/India/startv.com.ini | 91 + .../India/tatasky.com.channels.xml | 484 +++++ config/siteini.pack/India/tatasky.com.ini | 82 + .../India/tv.burrp.com.channels.xml | 332 ++++ config/siteini.pack/India/tv.burrp.com.ini | 102 + .../India/tvscheduleindia.com.channels.xml | 445 +++++ .../India/tvscheduleindia.com.ini | 64 + .../India/whatsonindia.com.channels.xml | 586 ++++++ .../siteini.pack/India/whatsonindia.com.ini | 47 + .../Indonesia/indovision.tv.channels.xml | 147 ++ .../siteini.pack/Indonesia/indovision.tv.ini | 97 + .../Indonesia/jkt.firstmedia.com.channels.xml | 209 ++ .../Indonesia/jkt.firstmedia.com.ini | 49 + .../Indonesia/telkomvision.com.channels.xml | 92 + .../Indonesia/telkomvision.com.ini | 59 + .../Indonesia/transvision.co.id.channels.xml | 116 ++ .../Indonesia/transvision.co.id.ini | 77 + .../aljazeerasport.tv.channels.xml | 21 + .../International/aljazeerasport.tv.ini | 33 + .../International/beinsports.net.ini | 63 + .../International/beinsports.net_arabic.xml | 23 + .../International/beinsports.net_english.xml | 23 + .../International/beinsports.net_france.xml | 15 + .../International/filmon.com.channels.xml | 778 ++++++++ .../siteini.pack/International/filmon.com.ini | 97 + .../International/gatotv.com.channels.xml | 329 +++ .../siteini.pack/International/gatotv.com.ini | 111 ++ .../International/mbc.net.channels.xml | 11 + config/siteini.pack/International/mbc.net.ini | 35 + config/siteini.pack/International/mi.tv.ini | 103 + .../International/mi.tv_channelsALL.xml | 889 +++++++++ .../International/schedulesdirect.org.ini | 152 ++ .../schedulesdirect.org_info.txt | 31 + .../International/shoofeetv.com.channels.xml | 275 +++ .../International/shoofeetv.com.ini | 123 ++ .../International/sport24-tv.com.channels.xml | 7 + .../International/sport24-tv.com.ini | 41 + .../International/streamlive.to.channels.xml | 75 + .../International/streamlive.to.ini | 47 + .../International/tvpassport.com.channels.xml | 544 +++++ .../International/tvpassport.com.ini | 84 + .../tvpassport.com_providersL9H1N3.xml | 13 + config/siteini.pack/International/yo.tv.ini | 205 ++ .../International/yo.tv_countries.xml | 59 + .../siteini.pack/International/yo.tv_info.txt | 29 + .../Ireland/entertainment.ie.channels.xml | 73 + .../siteini.pack/Ireland/entertainment.ie.ini | 85 + .../Ireland/horizon.tv.ie.channels.xml | 829 ++++++++ config/siteini.pack/Ireland/horizon.tv.ie.ini | 74 + .../Ireland/tv-guide.upc.ie.channels.xml | 178 ++ .../siteini.pack/Ireland/tv-guide.upc.ie.ini | 41 + .../Israel/i24news.tv.channels.xml | 6 + config/siteini.pack/Israel/i24news.tv.ini | 38 + config/siteini.pack/Israel/isramedia.net.ini | 28 + .../Israel/tv.walla.co.il.channels.xml | 272 +++ config/siteini.pack/Israel/tv.walla.co.il.ini | 33 + .../siteini.pack/Italy/alice.tv.channels.xml | 6 + config/siteini.pack/Italy/alice.tv.ini | 48 + .../Italy/guidatv.sky.it.channels.xml | 316 +++ config/siteini.pack/Italy/guidatv.sky.it.ini | 114 ++ .../Italy/it.tv.yahoo.com.channels.xml | 51 + config/siteini.pack/Italy/it.tv.yahoo.com.ini | 37 + .../Italy/italiasmart.tv.channels.xml | 10 + config/siteini.pack/Italy/italiasmart.tv.ini | 41 + .../Italy/ka-boomtv.it.channels.xml | 6 + config/siteini.pack/Italy/ka-boomtv.it.ini | 25 + .../Italy/laguidatv.it.channels.xml | 255 +++ config/siteini.pack/Italy/laguidatv.it.ini | 74 + .../Italy/leonardo.tv.channels.xml | 6 + config/siteini.pack/Italy/leonardo.tv.ini | 50 + .../Italy/mediaset.it.channels.xml | 35 + config/siteini.pack/Italy/mediaset.it.ini | 110 + .../Italy/mediasetpremium.it.channels.xml | 30 + .../siteini.pack/Italy/mediasetpremium.it.ini | 65 + .../Italy/movietele.it.channels.xml | 119 ++ config/siteini.pack/Italy/movietele.it.ini | 47 + .../Italy/my.movies.it.channels.xml | 102 + config/siteini.pack/Italy/my.movies.it.ini | 48 + .../Italy/myblobbox.com.channels.xml | 69 + config/siteini.pack/Italy/myblobbox.com.ini | 102 + .../Italy/nuvolari.tv.channels.xml | 6 + config/siteini.pack/Italy/nuvolari.tv.ini | 41 + .../Italy/programmi-tv.eu.channels.xml | 53 + config/siteini.pack/Italy/programmi-tv.eu.ini | 33 + config/siteini.pack/Italy/rai.it.channels.xml | 22 + config/siteini.pack/Italy/rai.it.ini | 98 + .../siteini.pack/Italy/rtvslo.it.channels.xml | 20 + config/siteini.pack/Italy/rtvslo.it.ini | 68 + .../Italy/staseraintv.com.channels.xml | 63 + config/siteini.pack/Italy/staseraintv.com.ini | 56 + .../siteini.pack/Italy/tv.zam.it.channels.xml | 57 + config/siteini.pack/Italy/tv.zam.it.ini | 112 ++ .../Italy/video.gazzetta.it.channels.xml | 6 + .../siteini.pack/Italy/video.gazzetta.it.ini | 36 + .../siteini.pack/Japan/eonet.jp.channels.xml | 107 + config/siteini.pack/Japan/eonet.jp.ini | 69 + .../Japan/skyperfect.co.jp.channels.xml | 74 + .../siteini.pack/Japan/skyperfect.co.jp.ini | 67 + .../Kazakhstan/galamtv.kz.channels.xml | 26 + config/siteini.pack/Kazakhstan/galamtv.kz.ini | 30 + .../Kazakhstan/onlinetb.net.channels.xml | 91 + .../siteini.pack/Kazakhstan/onlinetb.net.ini | 29 + .../Kazakhstan/telecom.kz.channels.xml | 82 + config/siteini.pack/Kazakhstan/telecom.kz.ini | 48 + .../Kazakhstan/tv.caravan.kz.channels.xml | 70 + .../siteini.pack/Kazakhstan/tv.caravan.kz.ini | 32 + .../Kazakhstan/tv.nur.kz.channels.xml | 71 + config/siteini.pack/Kazakhstan/tv.nur.kz.ini | 42 + .../Kazakhstan/tv.zakon.kz.channels.xml | 195 ++ .../siteini.pack/Kazakhstan/tv.zakon.kz.ini | 31 + .../siteini.pack/Kenya/gotvafrica.com.ke.ini | 71 + .../siteini.pack/Kenya/zuku.co.channels.xml | 27 + config/siteini.pack/Kenya/zuku.co.ini | 77 + .../Latvia/lattelecom.lv.channels.xml | 197 ++ config/siteini.pack/Latvia/lattelecom.lv.ini | 42 + .../Lesotho/gotvafrica.com.ls.ini | 71 + .../Lithuania/cgates.lt.channels.xml | 124 ++ config/siteini.pack/Lithuania/cgates.lt.ini | 48 + .../Lithuania/skynet.lt.channels.xml | 97 + config/siteini.pack/Lithuania/skynet.lt.ini | 31 + .../Lithuania/tv24.lt.channels.xml | 148 ++ config/siteini.pack/Lithuania/tv24.lt.ini | 91 + .../Lithuania/tvprograma.lt.channels.xml | 249 +++ .../siteini.pack/Lithuania/tvprograma.lt.ini | 43 + .../Luxembourg/kombatsport.lu.channels.xml | 6 + .../Luxembourg/kombatsport.lu.ini | 63 + .../MDB postprocessor/allocine.fr.bing.ini | 61 + .../MDB postprocessor/allocine.fr.google.ini | 64 + .../MDB postprocessor/allocine.fr.ini | 61 + .../MDB postprocessor/imdb.com.ask.ini | 98 + .../MDB postprocessor/imdb.com.bing.ini | 91 + .../imdb.com.bing_series.ini | 110 + .../MDB postprocessor/imdb.com.imdb.ini | 103 + .../imdb.com.imdb_series.ini | 118 ++ .../imdb.com.imdb_series.onscreen.ini | 95 + .../MDB postprocessor/tvdb.com.bing.ini | 136 ++ .../tvdb.com.bing_change_language.txt | 45 + .../Macedonia/one.mk.channels.xml | 81 + config/siteini.pack/Macedonia/one.mk.ini | 38 + .../Macedonia/t-home.mk.channels.xml | 117 ++ config/siteini.pack/Macedonia/t-home.mk.ini | 42 + .../Macedonia/telekom.mk.channels.xml | 116 ++ config/siteini.pack/Macedonia/telekom.mk.ini | 33 + .../siteini.pack/Malawi/gotvafrica.com.mw.ini | 71 + .../Malaysia/astro.com.my.channels.xml | 211 ++ config/siteini.pack/Malaysia/astro.com.my.ini | 52 + .../Malaysia/rtm.gov.my.channels.xml | 20 + config/siteini.pack/Malaysia/rtm.gov.my.ini | 75 + .../Malaysia/tm.com.my.channels.xml | 83 + config/siteini.pack/Malaysia/tm.com.my.ini | 119 ++ .../Malaysia/tm.com.my.xmltv_ns.channels.xml | 69 + .../Malaysia/tm.com.my.xmltv_ns.ini | 117 ++ .../Mexico/entutele.com.channels.xml | 195 ++ config/siteini.pack/Mexico/entutele.com.ini | 97 + .../espndeportes.com.mexico.channels.xml | 9 + .../Mexico/espndeportes.com.mexico.ini | 35 + config/siteini.pack/Misc/dummy.ini | 37 + config/siteini.pack/Misc/empty.ini | 14 + config/siteini.pack/Misc/fixed.ini | 51 + config/siteini.pack/Misc/fixed_info.txt | 41 + config/siteini.pack/Misc/merge-xmltv.ini | 77 + .../Misc/merge-xmltv_info.howtosetup.txt | 55 + .../siteini.pack/Misc/site_ini_template.ini | 55 + .../Misc/site_ini_xmltv2xmltv.ini | 50 + .../Moldova/makler.md.channels.xml | 203 ++ config/siteini.pack/Moldova/makler.md.ini | 54 + .../Moldova/point.md.channels.xml | 194 ++ config/siteini.pack/Moldova/point.md.ini | 41 + .../Montenegro/extratv.me.channels.xml | 39 + config/siteini.pack/Montenegro/extratv.me.ini | 59 + .../Mozambique/gotvafrica.com.mz.ini | 71 + .../Namibia/gotvafrica.com.na.ini | 71 + .../Netherlands/disney.nl.channels.xml | 6 + config/siteini.pack/Netherlands/disney.nl.ini | 30 + .../Netherlands/film1.nl.channels.xml | 10 + config/siteini.pack/Netherlands/film1.nl.ini | 88 + .../Netherlands/hbo.nl.channels.xml | 8 + config/siteini.pack/Netherlands/hbo.nl.ini | 70 + .../Netherlands/horizon.tv.nl.channels.xml | 433 ++++ .../Netherlands/horizon.tv.nl.ini | 74 + .../Netherlands/npo.nl.channels.xml | 29 + config/siteini.pack/Netherlands/npo.nl.ini | 100 + .../Netherlands/oorboekje.nl.channels.xml | 52 + .../siteini.pack/Netherlands/oorboekje.nl.ini | 93 + .../Netherlands/rtl.nl.channels.xml | 13 + config/siteini.pack/Netherlands/rtl.nl.ini | 68 + .../Netherlands/salto.nl.channels.xml | 7 + config/siteini.pack/Netherlands/salto.nl.ini | 30 + .../Netherlands/sport1.nl.channels.xml | 12 + config/siteini.pack/Netherlands/sport1.nl.ini | 34 + .../Netherlands/tele.rtl.lu.channels.xml | 7 + .../siteini.pack/Netherlands/tele.rtl.lu.ini | 34 + .../Netherlands/tvgids.nl.channels.xml | 127 ++ .../tvgids.nl.index-only.channels.xml | 109 + .../Netherlands/tvgids.nl.index-only.ini | 63 + config/siteini.pack/Netherlands/tvgids.nl.ini | 140 ++ .../Netherlands/tvgids.tv.channels.xml | 174 ++ config/siteini.pack/Netherlands/tvgids.tv.ini | 86 + ...varagids.publiekeomroep.nl.rd.channels.xml | 43 + .../varagids.publiekeomroep.nl.rd.ini | 77 + ...varagids.publiekeomroep.nl.tv.channels.xml | 86 + .../varagids.publiekeomroep.nl.tv.ini | 97 + .../Netherlands/ziggo.nl.channels.xml | 25 + config/siteini.pack/Netherlands/ziggo.nl.ini | 94 + .../Netherlands/ziggo.nl_all_channels.xml | 167 ++ .../australianetwork.com.channels.xml | 6 + .../Networks/australianetwork.com.ini | 49 + ...ralianetwork.com_howto_set_the_regions.txt | 3 + ...ustralianetwork.com_regions_time_zones.xml | 51 + .../Networks/bbc.co.uk.channels.xml | 320 +++ config/siteini.pack/Networks/bbc.co.uk.ini | 32 + .../Networks/blackflag.tv.channels.xml | 6 + config/siteini.pack/Networks/blackflag.tv.ini | 56 + .../canalplus-afrique.com.CAT.channels.xml | 128 ++ .../Networks/canalplus-afrique.com.CAT.ini | 54 + .../canalplus-afrique.com.CVT.channels.xml | 128 ++ .../Networks/canalplus-afrique.com.CVT.ini | 54 + .../canalplus-afrique.com.EAT.channels.xml | 128 ++ .../Networks/canalplus-afrique.com.EAT.ini | 54 + .../canalplus-afrique.com.GMT.channels.xml | 128 ++ .../Networks/canalplus-afrique.com.GMT.ini | 54 + .../canalplus-afrique.com.WAT.channels.xml | 128 ++ .../Networks/canalplus-afrique.com.WAT.ini | 54 + .../canalplus-caledonie.com.channels.xml | 65 + .../Networks/canalplus-caledonie.com.ini | 106 + ...lplus-caraibes.com.guadeloupe.channels.xml | 81 + .../canalplus-caraibes.com.guadeloupe.ini | 71 + ...lplus-caraibes.com.martinique.channels.xml | 81 + .../canalplus-caraibes.com.martinique.ini | 72 + ...canalplus-caraibes.guadaloupe.channels.xml | 113 ++ .../canalplus-caraibes.guadaloupe.ini | 49 + .../canalplus-caraibes.guyane.channels.xml | 113 ++ .../Networks/canalplus-caraibes.guyane.ini | 49 + .../canalplus-caraibes.haiti.channels.xml | 80 + .../Networks/canalplus-caraibes.haiti.ini | 49 + ...canalplus-caraibes.martinique.channels.xml | 113 ++ .../canalplus-caraibes.martinique.ini | 49 + .../canalplus-caraibes.no-country.ini | 90 + ...lus-caraibes.saint-barthelemy.channels.xml | 113 ++ .../canalplus-caraibes.saint-barthelemy.ini | 49 + ...nalplus-caraibes.saint-martin.channels.xml | 113 ++ .../canalplus-caraibes.saint-martin.ini | 49 + .../Networks/canalplus-maurice.com.ini | 106 + .../canalplus-reunion.com.channels.xml | 93 + .../Networks/canalplus-reunion.com.ini | 106 + .../Networks/cinemax.tv.channels.xml | 39 + config/siteini.pack/Networks/cinemax.tv.ini | 79 + .../da-vinci-learning.com.channels.xml | 21 + .../Networks/da-vinci-learning.com.ini | 50 + .../Networks/directv.com.channels.xml | 1765 +++++++++++++++++ config/siteini.pack/Networks/directv.com.ini | 108 + .../Networks/directv.com_instructions.txt | 25 + .../Networks/discovery.com.channels.xml | 15 + .../siteini.pack/Networks/discovery.com.ini | 32 + .../siteini.pack/Networks/dw.de.channels.xml | 11 + config/siteini.pack/Networks/dw.de.ini | 41 + .../Networks/espndeportes.com.nocountry.ini | 35 + .../espndeportes.com.nocountry_info.txt | 69 + .../lebouquetafricain.com.channels.xml | 24 + .../Networks/lebouquetafricain.com.ini | 23 + .../Networks/nasa.gov.channels.xml | 8 + config/siteini.pack/Networks/nasa.gov.ini | 90 + .../Networks/osn.com.channels.xml | 34 + config/siteini.pack/Networks/osn.com.ini | 94 + .../Networks/osnplay.osn.com.channels.xml | 24 + .../siteini.pack/Networks/osnplay.osn.com.ini | 37 + .../Networks/pluto.tv.channels.xml | 110 + config/siteini.pack/Networks/pluto.tv.ini | 59 + .../radioaustralia.net.au.channels.xml | 14 + .../Networks/radioaustralia.net.au.ini | 38 + .../Networks/setanta.com.africa.channels.xml | 6 + .../Networks/setanta.com.africa.ini | 114 ++ .../Networks/setanta.com.asia.channels.xml | 7 + .../Networks/setanta.com.asia.ini | 45 + .../Networks/setanta.com.au.channels.xml | 7 + .../siteini.pack/Networks/setanta.com.au.ini | 112 ++ .../tv.foxsportsasia.com.channels.xml | 55 + .../Networks/tv.foxsportsasia.com.ini | 47 + config/siteini.pack/Networks/tvguide.com.ini | 234 +++ .../tvguide.com_channels_byTimezone.xml | 537 +++++ .../Networks/tvguide.com_info.txt | 54 + .../tvguide.com_providers_byCountry.xml | 1757 ++++++++++++++++ .../Networks/yourdiscovery.com.channels.xml | 115 ++ .../Networks/yourdiscovery.com.ini | Bin 0 -> 5050 bytes .../Networks/zap2it.com.channels.xml | 1202 +++++++++++ config/siteini.pack/Networks/zap2it.com.ini | 115 ++ .../New Zealand/freeviewnz.tv.channels.xml | 43 + .../New Zealand/freeviewnz.tv.ini | 66 + .../nz.entertainment.yahoo.com.channels.xml | 137 ++ .../nz.entertainment.yahoo.com.ini | 158 ++ ...nz.entertainment.yahoo.com_info.readme.txt | 3 + .../Nigeria/gotvafrica.com.ng.ini | 71 + .../Norway/altibox.no.channels.xml | 135 ++ config/siteini.pack/Norway/altibox.no.ini | 55 + config/siteini.pack/Norway/se.no.channels.xml | 122 ++ config/siteini.pack/Norway/se.no.ini | 65 + config/siteini.pack/Norway/se.no_info.txt | 9 + .../siteini.pack/Norway/sol.no.channels.xml | 122 ++ config/siteini.pack/Norway/sol.no.ini | 82 + .../siteini.pack/Norway/tv2.no.channels.xml | 95 + config/siteini.pack/Norway/tv2.no.ini | 55 + config/siteini.pack/Norway/vg.no.channels.xml | 155 ++ config/siteini.pack/Norway/vg.no.ini | 94 + .../Pakistan/ptv.com.pk.channels.xml | 10 + config/siteini.pack/Pakistan/ptv.com.pk.ini | 43 + .../Pakistan/ptv_global.com.pk.channels.xml | 6 + .../Pakistan/ptv_global.com.pk.ini | 32 + .../Panama/cableonda.com.channels.xml | 493 +++++ config/siteini.pack/Panama/cableonda.com.ini | 95 + .../Peru/movistar.com.pe.channels.xml | 1353 +++++++++++++ config/siteini.pack/Peru/movistar.com.pe.ini | 111 ++ .../Philippines/abs-cbn.com.channels.xml | 6 + .../siteini.pack/Philippines/abs-cbn.com.ini | 49 + .../Philippines/clickthecity.com.channels.xml | 45 + .../Philippines/clickthecity.com.ini | 59 + .../Philippines/eaglenews.ph.channels.xml | 6 + .../siteini.pack/Philippines/eaglenews.ph.ini | 40 + .../Philippines/gmanetwork.com.channels.xml | 7 + .../Philippines/gmanetwork.com.ini | 32 + .../gmanetwork_int.com.channels.xml | 8 + .../Philippines/gmanetwork_int.com.ini | 30 + .../Philippines/skycable.com.channels.xml | 154 ++ .../siteini.pack/Philippines/skycable.com.ini | 45 + .../Philippines/untv.com.channels.xml | 6 + config/siteini.pack/Philippines/untv.com.ini | 43 + .../Poland/cyfrowypolsat.pl.channels.xml | 505 +++++ .../siteini.pack/Poland/cyfrowypolsat.pl.ini | 66 + .../Poland/cyfrowypolsat.pl_cookie.txt | 9 + .../Poland/horizon.tv.pl.channels.xml | 753 +++++++ config/siteini.pack/Poland/horizon.tv.pl.ini | 74 + .../Poland/ncplus.pl.channels.xml | 166 ++ config/siteini.pack/Poland/ncplus.pl.ini | 106 + .../Poland/onlinetv.inea.pl.channels.xml | 243 +++ .../siteini.pack/Poland/onlinetv.inea.pl.ini | 74 + .../Poland/programtv.interia.pl.channels.xml | 409 ++++ .../Poland/programtv.interia.pl.ini | 88 + .../Poland/programtv.onet.pl.channels.xml | 521 +++++ .../siteini.pack/Poland/programtv.onet.pl.ini | 65 + .../Poland/teleman.pl.channels.xml | 130 ++ config/siteini.pack/Poland/teleman.pl.ini | 58 + .../siteini.pack/Poland/tv.wp.pl.channels.xml | 325 +++ config/siteini.pack/Poland/tv.wp.pl.ini | 81 + .../Portugal/cabovisao.pt.channels.xml | 119 ++ config/siteini.pack/Portugal/cabovisao.pt.ini | 82 + .../Portugal/mag.sapo.pt.channels.xml | 217 ++ config/siteini.pack/Portugal/mag.sapo.pt.ini | 49 + .../siteini.pack/Portugal/meo.pt.channels.xml | 199 ++ config/siteini.pack/Portugal/meo.pt.ini | 59 + .../siteini.pack/Portugal/nos.pt.channels.xml | 186 ++ config/siteini.pack/Portugal/nos.pt.ini | 111 ++ .../portalnacional.com.pt.channels.xml | 194 ++ .../Portugal/portalnacional.com.pt.ini | 51 + .../siteini.pack/Portugal/rpt.pt.channels.xml | 13 + config/siteini.pack/Portugal/rpt.pt.ini | 34 + .../Portugal/sic.sapto.pt.channels.xml | 12 + config/siteini.pack/Portugal/sic.sapto.pt.ini | 34 + .../Portugal/sporttv.pt.channels.xml | 15 + config/siteini.pack/Portugal/sporttv.pt.ini | 37 + .../Portugal/tv.sapo.pt.channels.xml | 139 ++ config/siteini.pack/Portugal/tv.sapo.pt.ini | 29 + .../siteini.pack/Portugal/tvi.pt.channels.xml | 11 + config/siteini.pack/Portugal/tvi.pt.ini | 54 + .../Republic of Kosovo/tvim.tv.channels.xml | 24 + .../Republic of Kosovo/tvim.tv.ini | 31 + .../Romania/horizon.tv.ro.channels.xml | 753 +++++++ config/siteini.pack/Romania/horizon.tv.ro.ini | 74 + .../siteini.pack/Romania/port.ro.channels.xml | 268 +++ config/siteini.pack/Romania/port.ro.ini | 107 + .../Romania/program24.ro.channels.xml | 114 ++ config/siteini.pack/Romania/program24.ro.ini | 44 + .../Romania/rcs-rds.ro.channels.xml | 55 + config/siteini.pack/Romania/rcs-rds.ro.ini | 57 + .../Romania/roportal.ro.channels.xml | 55 + config/siteini.pack/Romania/roportal.ro.ini | 46 + .../siteini.pack/Russia/s-tv.ru.channels.xml | 33 + config/siteini.pack/Russia/s-tv.ru.ini | 64 + .../Russia/teleguide.info.channels.xml | 346 ++++ config/siteini.pack/Russia/teleguide.info.ini | 104 + .../Russia/tv.mail.ru.channels.xml | 230 +++ config/siteini.pack/Russia/tv.mail.ru.ini | 57 + .../Russia/tv.yandex.ru.channels.xml | 315 +++ config/siteini.pack/Russia/tv.yandex.ru.ini | 49 + .../Russia/vsetv.com.channels.xml | 738 +++++++ config/siteini.pack/Russia/vsetv.com.ini | 76 + .../siteini.pack/Rwanda/gotvafrica.com.rw.ini | 71 + .../Saudi Arabia/invision.com.sa.channels.xml | 177 ++ .../Saudi Arabia/invision.com.sa.ini | 66 + .../Serbia/axnspin.rs.channels.xml | 6 + config/siteini.pack/Serbia/axnspin.rs.ini | 84 + .../siteini.pack/Serbia/mts.rs.channels.xml | 188 ++ config/siteini.pack/Serbia/mts.rs.ini | 72 + .../siteini.pack/Serbia/port.rs.channels.xml | 190 ++ config/siteini.pack/Serbia/port.rs.ini | 94 + .../siteini.pack/Serbia/rts.rs.channels.xml | 9 + config/siteini.pack/Serbia/rts.rs.ini | 52 + .../siteini.pack/Serbia/sbb.rs.channels.xml | 160 ++ config/siteini.pack/Serbia/sbb.rs.ini | 40 + .../Singapore/singteltv.com.sg.channels.xml | 172 ++ .../Singapore/singteltv.com.sg.ini | 29 + .../siteini.pack/Singapore/starhubgo.com.ini | 90 + .../Singapore/starhubgo.com_all-channels.xml | 174 ++ .../Singapore/toggle.sg.channels.xml | 23 + config/siteini.pack/Singapore/toggle.sg.ini | 35 + .../Singapore/tvb.com.pearl.channels.xml | 6 + .../siteini.pack/Singapore/tvb.com.pearl.ini | 60 + .../Singapore/xin.msn.com.channels.xml | 12 + config/siteini.pack/Singapore/xin.msn.com.ini | 69 + .../SiteIni.Pack_2016.07.19_124146.txt | 3 + .../Slovakia/horizon.tv.sk.channels.xml | 677 +++++++ .../siteini.pack/Slovakia/horizon.tv.sk.ini | 74 + .../Slovakia/port.sk.channels.xml | 121 ++ config/siteini.pack/Slovakia/port.sk.ini | 83 + .../Slovenia/d3go.si.channels.xml | 132 ++ config/siteini.pack/Slovenia/d3go.si.ini | 42 + .../Slovenia/mojportal.si.channels.xml | 33 + config/siteini.pack/Slovenia/mojportal.si.ini | 78 + .../Slovenia/planettv.si.channels.xml | 7 + config/siteini.pack/Slovenia/planettv.si.ini | 73 + .../Slovenia/pop-tv.si.channels.xml | 13 + config/siteini.pack/Slovenia/pop-tv.si.ini | 81 + .../Slovenia/rtvslo.si.channels.xml | 20 + config/siteini.pack/Slovenia/rtvslo.si.ini | 70 + .../Slovenia/siol.net.channels.xml | 355 ++++ config/siteini.pack/Slovenia/siol.net.ini | 74 + .../Slovenia/sporedi.tv.channels.xml | 306 +++ config/siteini.pack/Slovenia/sporedi.tv.ini | 66 + .../Slovenia/sport-tv.si.channels.xml | 8 + config/siteini.pack/Slovenia/sport-tv.si.ini | 45 + .../Slovenia/sportklubtv.si.channels.xml | 13 + .../siteini.pack/Slovenia/sportklubtv.si.ini | 39 + .../South Africa/dstv.com.channels.xml | 157 ++ config/siteini.pack/South Africa/dstv.com.ini | 141 ++ .../South Africa/dstv.com.simple.channels.xml | 130 ++ .../South Africa/dstv.com.simple.ini | 58 + .../South Africa/dstv.com.simple_info.txt | 15 + .../South Africa/dstv.com_info.txt | 16 + .../South Africa/gononda.com.channels.xml | 82 + .../siteini.pack/South Africa/gononda.com.ini | 51 + config/siteini.pack/Spain/axn.es.channels.xml | 6 + .../Spain/axn.es.index-only.channels.xml | 6 + .../siteini.pack/Spain/axn.es.index-only.ini | 26 + config/siteini.pack/Spain/axn.es.ini | 43 + .../Spain/calle13.es.channels.xml | 6 + config/siteini.pack/Spain/calle13.es.ini | 44 + .../Spain/canalgasteiz.com.channels.xml | 6 + .../siteini.pack/Spain/canalgasteiz.com.ini | 23 + .../Spain/canalhistoria.es.channels.xml | 6 + .../siteini.pack/Spain/canalhistoria.es.ini | 45 + .../Spain/canalplus-export.es.channels.xml | 100 + .../Spain/canalplus-export.es.ini | 45 + .../Spain/canalplus.es.channels.xml | 28 + config/siteini.pack/Spain/canalplus.es.ini | 62 + .../siteini.pack/Spain/eitb.com.channels.xml | 11 + config/siteini.pack/Spain/eitb.com.ini | 33 + .../Spain/elmundo.es.channels.xml | 135 ++ config/siteini.pack/Spain/elmundo.es.ini | 119 ++ .../Spain/elmundo.es.mp.channels.xml | 135 ++ config/siteini.pack/Spain/elmundo.es.mp.ini | 138 ++ .../Spain/elmundo.es.mp_rex.config.xml | 122 ++ .../Spain/elpais.com.channels.xml | 181 ++ config/siteini.pack/Spain/elpais.com.ini | 96 + config/siteini.pack/Spain/fox.es.channels.xml | 7 + config/siteini.pack/Spain/fox.es.ini | 65 + .../Spain/guia-tv.es.channels.xml | 43 + config/siteini.pack/Spain/guia-tv.es.ini | 48 + .../Spain/hamaika.tv.channels.xml | 6 + config/siteini.pack/Spain/hamaika.tv.ini | 35 + .../Spain/laguiatv.abc.es.channels.xml | 180 ++ config/siteini.pack/Spain/laguiatv.abc.es.ini | 61 + .../Spain/laguiatv.com.channels.xml | 175 ++ config/siteini.pack/Spain/laguiatv.com.ini | 71 + .../Spain/laguiatv.com.mp.channels.xml | 157 ++ config/siteini.pack/Spain/laguiatv.com.mp.ini | 150 ++ .../Spain/paramountchannel.es.channels.xml | 6 + .../Spain/paramountchannel.es.ini | 49 + .../siteini.pack/Spain/plus.es.channels.xml | 118 ++ config/siteini.pack/Spain/plus.es.ini | 127 ++ .../Spain/programacion-radio.com.channels.xml | 55 + .../Spain/programacion-radio.com.ini | 29 + .../siteini.pack/Spain/rtve.es.channels.xml | 55 + config/siteini.pack/Spain/rtve.es.ini | 66 + .../siteini.pack/Spain/rtvv.es.channels.xml | 7 + config/siteini.pack/Spain/rtvv.es.ini | 48 + .../Spain/sincroguia.tv.channels.xml | 177 ++ config/siteini.pack/Spain/sincroguia.tv.ini | 78 + .../Spain/sincroguia.tv.mp.channels.xml | 201 ++ .../siteini.pack/Spain/sincroguia.tv.mp.ini | 199 ++ .../Spain/sincroguia.tv.mp_rex.config.xml | 122 ++ .../siteini.pack/Spain/syfy.es.channels.xml | 6 + config/siteini.pack/Spain/syfy.es.ini | 44 + config/siteini.pack/Spain/teleprograma.tv.ini | 22 + .../Spain/tunein.com.channels.xml | 23 + config/siteini.pack/Spain/tunein.com.ini | 69 + .../Sri Lanka/csn.lk.channels.xml | 6 + config/siteini.pack/Sri Lanka/csn.lk.ini | 40 + .../Sweden/dagenstv.com.channels.xml | 204 ++ config/siteini.pack/Sweden/dagenstv.com.ini | 123 ++ .../Sweden/dagenstv.com.xmltv_ns.channels.xml | 204 ++ .../Sweden/dagenstv.com.xmltv_ns.ini | 127 ++ .../siteini.pack/Sweden/ontv.se.channels.xml | 122 ++ config/siteini.pack/Sweden/ontv.se.ini | 113 ++ .../Sweden/se.timefor.tv.channels.xml | 1756 ++++++++++++++++ config/siteini.pack/Sweden/se.timefor.tv.ini | 115 ++ .../siteini.pack/Sweden/svt.se.channels.xml | 18 + config/siteini.pack/Sweden/svt.se.ini | 80 + config/siteini.pack/Sweden/tv.nu.channels.xml | 182 ++ config/siteini.pack/Sweden/tv.nu.ini | 96 + .../Switzerland/horizon.tv.ch.channels.xml | 941 +++++++++ .../Switzerland/horizon.tv.ch.ini | 74 + .../Switzerland/tele.ch.channels.xml | 193 ++ config/siteini.pack/Switzerland/tele.ch.ini | 72 + .../Switzerland/teleboy.ch.channels.xml | 150 ++ .../siteini.pack/Switzerland/teleboy.ch.ini | 88 + .../Switzerland/tvtv.ch.channels.xml | 122 ++ config/siteini.pack/Switzerland/tvtv.ch.ini | 138 ++ .../Taiwan/dishhdasia.com.channels.xml | 47 + config/siteini.pack/Taiwan/dishhdasia.com.ini | 27 + .../Thailand/cthbpl.com.channels.xml | 12 + config/siteini.pack/Thailand/cthbpl.com.ini | 79 + .../Thailand/totiptv.com.channels.xml | 193 ++ config/siteini.pack/Thailand/totiptv.com.ini | 62 + .../Thailand/truevisiontv.com.channels.xml | 139 ++ .../Thailand/truevisiontv.com.ini | 98 + .../Turkey/digiturk.com.tr.channels.xml | 156 ++ .../siteini.pack/Turkey/digiturk.com.tr.ini | 88 + .../Turkey/dsmart.com.tr.channels.xml | 288 +++ config/siteini.pack/Turkey/dsmart.com.tr.ini | 49 + .../Turkey/hurriyet.com.tr.channels.xml | 40 + .../siteini.pack/Turkey/hurriyet.com.tr.ini | 48 + .../Turkey/trt.net.tr.channels.xml | 17 + config/siteini.pack/Turkey/trt.net.tr.ini | 61 + config/siteini.pack/UK/bfbs.com.ini | 28 + .../UK/m.tvguide.co.uk-full.channels.xml | 547 +++++ .../siteini.pack/UK/m.tvguide.co.uk-full.ini | 71 + .../UK/m.tvguide.co.uk-index.channels.xml | 547 +++++ .../siteini.pack/UK/m.tvguide.co.uk-index.ini | 56 + config/siteini.pack/UK/mtv.co.uk.channels.xml | 13 + config/siteini.pack/UK/mtv.co.uk.ini | 40 + .../UK/mydigiguide.com.channels.xml | 72 + config/siteini.pack/UK/mydigiguide.com.ini | 235 +++ .../UK/radiotimes.com.channels.xml | 322 +++ config/siteini.pack/UK/radiotimes.com.ini | 105 + .../siteini.pack/UK/spfl.co.uk.channels.xml | 6 + config/siteini.pack/UK/spfl.co.uk.ini | 49 + .../UK/theguardian.com.channels.xml | 161 ++ config/siteini.pack/UK/theguardian.com.ini | 81 + .../UK/theguardian.com.xmltv_ns.channels.xml | 154 ++ .../UK/theguardian.com.xmltv_ns.ini | 125 ++ .../siteini.pack/UK/tv.sky.com.channels.xml | 512 +++++ config/siteini.pack/UK/tv.sky.com.ini | 95 + .../UK/tvguide.co.uk.channels.xml | 550 +++++ config/siteini.pack/UK/tvguide.co.uk.ini | 263 +++ config/siteini.pack/UK/tvguide.co.uk_info.txt | 53 + .../UK/tvguideuk.telegraph.co.uk.channels.xml | 496 +++++ .../UK/tvguideuk.telegraph.co.uk.ini | 67 + .../siteini.pack/UK/uk-sky.com.channels.xml | 512 +++++ config/siteini.pack/UK/uk-sky.com.ini | 116 ++ .../UK/uk-tvgenius.com.channels.xml | 168 ++ config/siteini.pack/UK/uk-tvgenius.com.ini | 80 + .../UK/virginmedia.com.channels.xml | 310 +++ config/siteini.pack/UK/virginmedia.com.ini | 115 ++ .../UK/virginmedia.com_regions.xml | 22 + .../siteini.pack/UK/zingzing.tv.channels.xml | 248 +++ config/siteini.pack/UK/zingzing.tv.ini | 81 + .../USA/pokercentral.com.channels.xml | 6 + config/siteini.pack/USA/pokercentral.com.ini | 42 + config/siteini.pack/USA/tv.com.channels.xml | 946 +++++++++ config/siteini.pack/USA/tv.com.ini | 82 + .../siteini.pack/USA/tv.com_instructions.txt | 24 + .../siteini.pack/USA/ustvnow.com.channels.xml | 30 + config/siteini.pack/USA/ustvnow.com.ini | 52 + .../siteini.pack/USA/voanews.com.channels.xml | 13 + config/siteini.pack/USA/voanews.com.ini | 45 + .../siteini.pack/Uganda/gotvafrica.com.ug.ini | 71 + .../Ukraine/discoverychannel.ua.channels.xml | 14 + .../Ukraine/discoverychannel.ua.ini | 32 + .../siteini.pack/Ukraine/tv.i.ua.channels.xml | 341 ++++ config/siteini.pack/Ukraine/tv.i.ua.ini | 40 + .../siteini.pack/Ukraine/tv.ua.channels.xml | 266 +++ config/siteini.pack/Ukraine/tv.ua.ini | 53 + .../United Arab Emirates/dcn.ae.channels.xml | 15 + .../United Arab Emirates/dcn.ae.ini | 65 + .../United Arab Emirates/dmi.ae.channels.xml | 13 + .../United Arab Emirates/dmi.ae.ini | 62 + .../Uruguay/tv.vera.com.uy.channels.xml | 59 + .../siteini.pack/Uruguay/tv.vera.com.uy.ini | 30 + .../Uzbekistan/mtrk.uz.channels.xml | 22 + config/siteini.pack/Uzbekistan/mtrk.uz.ini | 32 + .../Vietnam/ftpplay.net.channels.xml | 96 + config/siteini.pack/Vietnam/ftpplay.net.ini | 39 + .../Vietnam/htvonline.vn.channels.xml | 71 + config/siteini.pack/Vietnam/htvonline.vn.ini | 49 + .../Vietnam/kplus.vn.channels.xml | 45 + config/siteini.pack/Vietnam/kplus.vn.ini | 56 + .../Vietnam/mytv.com.vn.channels.xml | 137 ++ config/siteini.pack/Vietnam/mytv.com.vn.ini | 49 + .../Vietnam/tintuc.vn.channels.xml | 70 + config/siteini.pack/Vietnam/tintuc.vn.ini | 30 + .../Vietnam/truyenhinhanvien.vn.channels.xml | 44 + .../Vietnam/truyenhinhanvien.vn.ini | 40 + .../Vietnam/tv.vietbao.vn.channels.xml | 279 +++ config/siteini.pack/Vietnam/tv.vietbao.vn.ini | 60 + .../siteini.pack/Vietnam/tv24.vn.channels.xml | 27 + config/siteini.pack/Vietnam/tv24.vn.ini | 32 + .../Vietnam/vtc16.vn.channels.xml | 18 + config/siteini.pack/Vietnam/vtc16.vn.ini | 31 + .../siteini.pack/Vietnam/vtv.vn.channels.xml | 22 + config/siteini.pack/Vietnam/vtv.vn.ini | 46 + .../Vietnam/vtvcab.vn.channels.xml | 44 + config/siteini.pack/Vietnam/vtvcab.vn.ini | 43 + .../siteini.pack/Zambia/gotvafrica.com.za.ini | 71 + .../Zambia/toptv.co.za.channels.xml | 92 + config/siteini.pack/Zambia/toptv.co.za.ini | 40 + .../Zimbabwe/gotvafrica.com.zm.ini | 71 + 916 files changed, 105830 insertions(+) create mode 100644 config/siteini.pack/Albania/ipko.com.channels.xml create mode 100644 config/siteini.pack/Albania/ipko.com.ini create mode 100644 config/siteini.pack/Albania/rtsh.al.channels.xml create mode 100644 config/siteini.pack/Albania/rtsh.al.ini create mode 100644 config/siteini.pack/Albania/tring.tv.channels.xml create mode 100644 config/siteini.pack/Albania/tring.tv.ini create mode 100644 config/siteini.pack/Argentina/buscadorcablevision.com.ar.channels.xml create mode 100644 config/siteini.pack/Argentina/buscadorcablevision.com.ar.ini create mode 100644 config/siteini.pack/Argentina/gigared.com.ar.channels.xml create mode 100644 config/siteini.pack/Argentina/gigared.com.ar.ini create mode 100644 config/siteini.pack/Argentina/reportv.com.ar.channels.xml create mode 100644 config/siteini.pack/Argentina/reportv.com.ar.ini create mode 100644 config/siteini.pack/Australia/foxtel.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/foxtel.com.au.ini create mode 100644 config/siteini.pack/Australia/foxtel.com.au_info.txt create mode 100644 config/siteini.pack/Australia/foxtel.com.au_regions.xml create mode 100644 config/siteini.pack/Australia/freeview.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/freeview.com.au.ini create mode 100644 config/siteini.pack/Australia/freeview.com.au_info.txt create mode 100644 config/siteini.pack/Australia/ictv.net.au.channels.xml create mode 100644 config/siteini.pack/Australia/ictv.net.au.ini create mode 100644 config/siteini.pack/Australia/oztivo.net.channels.xml create mode 100644 config/siteini.pack/Australia/oztivo.net.ini create mode 100644 config/siteini.pack/Australia/oztivo.net.mp.channels.xml create mode 100644 config/siteini.pack/Australia/oztivo.net.mp.ini create mode 100644 config/siteini.pack/Australia/rhef.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/rhef.com.au.ini create mode 100644 config/siteini.pack/Australia/sattvguide.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/sattvguide.com.au.ini create mode 100644 config/siteini.pack/Australia/setanta.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/setanta.com.au.ini create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.sydney.channels.xml create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.sydney.ini create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.sydney.mp.channels.xml create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.sydney.mp.ini create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.wollongong.channels.xml create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.wollongong.ini create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.wollongong.mp.channels.xml create mode 100644 config/siteini.pack/Australia/siliconhill.com.au.wollongong.mp.ini create mode 100644 config/siteini.pack/Australia/sportsfan.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/sportsfan.com.au.ini create mode 100644 config/siteini.pack/Australia/yourtv.com.au.channels.xml create mode 100644 config/siteini.pack/Australia/yourtv.com.au.ini create mode 100644 config/siteini.pack/Australia/yourtv.com.au_readme.txt create mode 100644 config/siteini.pack/Australia/yourtv.com.au_regions.xml create mode 100644 config/siteini.pack/Austria/horizon.tv.at.channels.xml create mode 100644 config/siteini.pack/Austria/horizon.tv.at.ini create mode 100644 config/siteini.pack/Austria/m.tele.at.channels.xml create mode 100644 config/siteini.pack/Austria/m.tele.at.ini create mode 100644 config/siteini.pack/Austria/tv-media.at.channels.xml create mode 100644 config/siteini.pack/Austria/tv-media.at.ini create mode 100644 config/siteini.pack/Austria/tvtv.at.channels.xml create mode 100644 config/siteini.pack/Austria/tvtv.at.ini create mode 100644 config/siteini.pack/Austria/upc.at.channels.xml create mode 100644 config/siteini.pack/Austria/upc.at.ini create mode 100644 config/siteini.pack/Belgium/humo.be.channels.xml create mode 100644 config/siteini.pack/Belgium/humo.be.ini create mode 100644 config/siteini.pack/Belgium/mijn-tv-gids.be.channels.xml create mode 100644 config/siteini.pack/Belgium/mijn-tv-gids.be.ini create mode 100644 config/siteini.pack/Belgium/mon-programme-tv.be.channels.xml create mode 100644 config/siteini.pack/Belgium/mon-programme-tv.be.ini create mode 100644 config/siteini.pack/Belgium/moustique.be.channels.xml create mode 100644 config/siteini.pack/Belgium/moustique.be.ini create mode 100644 config/siteini.pack/Belgium/primo.eu.channels.xml create mode 100644 config/siteini.pack/Belgium/primo.eu.ini create mode 100644 config/siteini.pack/Belgium/yelotv.be.channels.xml create mode 100644 config/siteini.pack/Belgium/yelotv.be.ini create mode 100644 config/siteini.pack/Belgium/yelotv.be_info.txt create mode 100644 config/siteini.pack/Belgium/zita.be.channels.xml create mode 100644 config/siteini.pack/Belgium/zita.be.ini create mode 100644 config/siteini.pack/Bosnia/hayat.ba.channels.xml create mode 100644 config/siteini.pack/Bosnia/hayat.ba.ini create mode 100644 config/siteini.pack/Bosnia/hteronet.ba.channels.xml create mode 100644 config/siteini.pack/Bosnia/hteronet.ba.ini create mode 100644 config/siteini.pack/Bosnia/plus.rtrs.tv.channels.xml create mode 100644 config/siteini.pack/Bosnia/plus.rtrs.tv.ini create mode 100644 config/siteini.pack/Bosnia/telemach.ba.channels.xml create mode 100644 config/siteini.pack/Bosnia/telemach.ba.ini create mode 100644 config/siteini.pack/Bosnia/teve.ba.channels.xml create mode 100644 config/siteini.pack/Bosnia/teve.ba.ini create mode 100644 config/siteini.pack/Brazil/clarotv.com.br.channels.xml create mode 100644 config/siteini.pack/Brazil/clarotv.com.br.ini create mode 100644 config/siteini.pack/Brazil/hagah.com.br.channels.xml create mode 100644 config/siteini.pack/Brazil/hagah.com.br.ini create mode 100644 config/siteini.pack/Brazil/hagah.com.br_info.howtochangeregion.txt create mode 100644 config/siteini.pack/Brazil/meuguia.tv.channels.xml create mode 100644 config/siteini.pack/Brazil/meuguia.tv.ini create mode 100644 config/siteini.pack/Brazil/sky.com.br.channels.xml create mode 100644 config/siteini.pack/Brazil/sky.com.br.ini create mode 100644 config/siteini.pack/Brazil/tvmagazine.com.br.channels.xml create mode 100644 config/siteini.pack/Brazil/tvmagazine.com.br.ini create mode 100644 config/siteini.pack/Bulgaria/bulsat.com.channels.xml create mode 100644 config/siteini.pack/Bulgaria/bulsat.com.ini create mode 100644 config/siteini.pack/Bulgaria/media-press.tv.channels.xml create mode 100644 config/siteini.pack/Bulgaria/media-press.tv.ini create mode 100644 config/siteini.pack/Bulgaria/potv.bg.channels.xml create mode 100644 config/siteini.pack/Bulgaria/potv.bg.ini create mode 100644 config/siteini.pack/Bulgaria/tv.boxbg.net.channels.xml create mode 100644 config/siteini.pack/Bulgaria/tv.boxbg.net.ini create mode 100644 config/siteini.pack/Bulgaria/tv.dir.bg.channels.xml create mode 100644 config/siteini.pack/Bulgaria/tv.dir.bg.ini create mode 100644 config/siteini.pack/Bulgaria/tv.etcc.bg.channels.xml create mode 100644 config/siteini.pack/Bulgaria/tv.etcc.bg.ini create mode 100644 config/siteini.pack/Bulgaria/tv.etcc.bg_cookies.txt create mode 100644 config/siteini.pack/Bulgaria/tvplus.bg.channels.xml create mode 100644 config/siteini.pack/Bulgaria/tvplus.bg.ini create mode 100644 config/siteini.pack/Bulgaria/vivacom.bg.channels.xml create mode 100644 config/siteini.pack/Bulgaria/vivacom.bg.ini create mode 100644 config/siteini.pack/Canada/canada.com.L9H1N3.channels.xml create mode 100644 config/siteini.pack/Canada/canada.com.L9H1N3.ini create mode 100644 config/siteini.pack/Canada/canada.com.no-provider.ini create mode 100644 config/siteini.pack/Canada/canada.com.no-provider_info.howtocustomize.txt create mode 100644 config/siteini.pack/Canada/sho.com.channels.xml create mode 100644 config/siteini.pack/Canada/sho.com.ini create mode 100644 config/siteini.pack/Canada/superchannel.ca.channels.xml create mode 100644 config/siteini.pack/Canada/superchannel.ca.ini create mode 100644 config/siteini.pack/Canada/tvhebdo.com.channels.xml create mode 100644 config/siteini.pack/Canada/tvhebdo.com.ini create mode 100644 config/siteini.pack/China/fr.cntv.cn.channels.xml create mode 100644 config/siteini.pack/China/fr.cntv.cn.ini create mode 100644 config/siteini.pack/China/tv.cntv.cn.channels.xml create mode 100644 config/siteini.pack/China/tv.cntv.cn.ini create mode 100644 config/siteini.pack/Colombia/claro.com.co.channels.xml create mode 100644 config/siteini.pack/Colombia/claro.com.co.ini create mode 100644 config/siteini.pack/Croatia/bnet.hr.channels.xml create mode 100644 config/siteini.pack/Croatia/bnet.hr.ini create mode 100644 config/siteini.pack/Croatia/m.tvprofil.net.channels.xml create mode 100644 config/siteini.pack/Croatia/m.tvprofil.net.ini create mode 100644 config/siteini.pack/Croatia/mojtv.hr.channels.xml create mode 100644 config/siteini.pack/Croatia/mojtv.hr.ini create mode 100644 config/siteini.pack/Croatia/port.hr.channels.xml create mode 100644 config/siteini.pack/Croatia/port.hr.ini create mode 100644 config/siteini.pack/Croatia/tvprofil.net.channels.xml create mode 100644 config/siteini.pack/Croatia/tvprofil.net.ini create mode 100644 config/siteini.pack/Czech Republic/horizon.tv.cz.channels.xml create mode 100644 config/siteini.pack/Czech Republic/horizon.tv.cz.ini create mode 100644 config/siteini.pack/Czech Republic/port.cz.channels.xml create mode 100644 config/siteini.pack/Czech Republic/port.cz.ini create mode 100644 config/siteini.pack/Czech Republic/port.cz.m.channels.xml create mode 100644 config/siteini.pack/Czech Republic/port.cz.m.ini create mode 100644 config/siteini.pack/Czech Republic/tv.sms.cz.m.channels.xml create mode 100644 config/siteini.pack/Czech Republic/tv.sms.cz.m.ini create mode 100644 config/siteini.pack/Denmark/dk.timefor.tv.channels.xml create mode 100644 config/siteini.pack/Denmark/dk.timefor.tv.ini create mode 100644 config/siteini.pack/Denmark/ontv.dk.channels.xml create mode 100644 config/siteini.pack/Denmark/ontv.dk.ini create mode 100644 config/siteini.pack/Denmark/tvguide.dk.channels.xml create mode 100644 config/siteini.pack/Denmark/tvguide.dk.ini create mode 100644 config/siteini.pack/Denmark/tvtid.tv2.dk.channels.xml create mode 100644 config/siteini.pack/Denmark/tvtid.tv2.dk.index-only.channels.xml create mode 100644 config/siteini.pack/Denmark/tvtid.tv2.dk.index-only.ini create mode 100644 config/siteini.pack/Denmark/tvtid.tv2.dk.ini create mode 100644 config/siteini.pack/Denmark/viasat.dk.channels.xml create mode 100644 config/siteini.pack/Denmark/viasat.dk.ini create mode 100644 config/siteini.pack/Egypt/elcinema.ar.com.channels.xml create mode 100644 config/siteini.pack/Egypt/elcinema.ar.com.ini create mode 100644 config/siteini.pack/Estonia/kava.ee.channels.xml create mode 100644 config/siteini.pack/Estonia/kava.ee.ini create mode 100644 config/siteini.pack/Estonia/kavad.ee.channels.xml create mode 100644 config/siteini.pack/Estonia/kavad.ee.ini create mode 100644 config/siteini.pack/Finland/cmore.fi.channels.xml create mode 100644 config/siteini.pack/Finland/cmore.fi.ini create mode 100644 config/siteini.pack/Finland/eurosport.fi.channels.xml create mode 100644 config/siteini.pack/Finland/eurosport.fi.ini create mode 100644 config/siteini.pack/Finland/grid_telsu.fi.channels.xml create mode 100644 config/siteini.pack/Finland/grid_telsu.fi.ini create mode 100644 config/siteini.pack/Finland/iltapulu.fi.channels.xml create mode 100644 config/siteini.pack/Finland/iltapulu.fi.ini create mode 100644 config/siteini.pack/Finland/list_telsu.fi.channels.xml create mode 100644 config/siteini.pack/Finland/list_telsu.fi.ini create mode 100644 config/siteini.pack/Finland/mtv3.fi.channels.xml create mode 100644 config/siteini.pack/Finland/mtv3.fi.ini create mode 100644 config/siteini.pack/Finland/nelonen.fi.channels.xml create mode 100644 config/siteini.pack/Finland/nelonen.fi.ini create mode 100644 config/siteini.pack/Finland/telkku.com.channels.xml create mode 100644 config/siteini.pack/Finland/telkku.com.ini create mode 100644 config/siteini.pack/Finland/telkussa.fi.channels.xml create mode 100644 config/siteini.pack/Finland/telkussa.fi.ini create mode 100644 config/siteini.pack/Finland/telvis.fi.channels.xml create mode 100644 config/siteini.pack/Finland/telvis.fi.ini create mode 100644 config/siteini.pack/France/bfmtv.com.channels.xml create mode 100644 config/siteini.pack/France/bfmtv.com.ini create mode 100644 config/siteini.pack/France/canalsat.fr.channels.xml create mode 100644 config/siteini.pack/France/canalsat.fr.ini create mode 100644 config/siteini.pack/France/colmax.tv.channels.xml create mode 100644 config/siteini.pack/France/colmax.tv.ini create mode 100644 config/siteini.pack/France/enorme.tv.channels.xml create mode 100644 config/siteini.pack/France/enorme.tv.ini create mode 100644 config/siteini.pack/France/fr.tv.yahoo.com.channels.xml create mode 100644 config/siteini.pack/France/fr.tv.yahoo.com.ini create mode 100644 config/siteini.pack/France/gongnetworks.com.channels.xml create mode 100644 config/siteini.pack/France/gongnetworks.com.ini create mode 100644 config/siteini.pack/France/horizon.tv.fr.channels.xml create mode 100644 config/siteini.pack/France/horizon.tv.fr.ini create mode 100644 config/siteini.pack/France/latele.ch.channels.xml create mode 100644 config/siteini.pack/France/latele.ch.ini create mode 100644 config/siteini.pack/France/programme-tv.premiere.fr.channels.xml create mode 100644 config/siteini.pack/France/programme-tv.premiere.fr.ini create mode 100644 config/siteini.pack/France/skysiertv.com.channels.xml create mode 100644 config/siteini.pack/France/skysiertv.com.ini create mode 100644 config/siteini.pack/France/telerama.fr.channels.xml create mode 100644 config/siteini.pack/France/telerama.fr.index-only.channels.xml create mode 100644 config/siteini.pack/France/telerama.fr.index-only.ini create mode 100644 config/siteini.pack/France/telerama.fr.ini create mode 100644 config/siteini.pack/France/telerama.fr.willy.channels.xml create mode 100644 config/siteini.pack/France/telerama.fr.willy.ini create mode 100644 config/siteini.pack/France/telestar.fr-full.channels.xml create mode 100644 config/siteini.pack/France/telestar.fr-full.ini create mode 100644 config/siteini.pack/France/telestar.fr.channels.xml create mode 100644 config/siteini.pack/France/telestar.fr.ini create mode 100644 config/siteini.pack/France/telez.fr.channels.xml create mode 100644 config/siteini.pack/France/telez.fr.ini create mode 100644 config/siteini.pack/France/tv.orange.fr.channels.xml create mode 100644 config/siteini.pack/France/tv.orange.fr.ini create mode 100644 config/siteini.pack/France/weo.fr.channels.xml create mode 100644 config/siteini.pack/France/weo.fr.ini create mode 100644 config/siteini.pack/Georgia/myvideo.ge.channels.xml create mode 100644 config/siteini.pack/Georgia/myvideo.ge.ini create mode 100644 config/siteini.pack/Germany/dw.de.ini create mode 100644 config/siteini.pack/Germany/horizon.tv.de.channels.xml create mode 100644 config/siteini.pack/Germany/horizon.tv.de.ini create mode 100644 config/siteini.pack/Germany/klack.de.channels.xml create mode 100644 config/siteini.pack/Germany/klack.de.ini create mode 100644 config/siteini.pack/Germany/prisma.de.channels.xml create mode 100644 config/siteini.pack/Germany/prisma.de.ini create mode 100644 config/siteini.pack/Germany/sky.de.channels.xml create mode 100644 config/siteini.pack/Germany/sky.de.ini create mode 100644 config/siteini.pack/Germany/tvguide.dk.channels.xml create mode 100644 config/siteini.pack/Germany/tvguide.dk.ini create mode 100644 config/siteini.pack/Germany/tvinfo.de.channels.xml create mode 100644 config/siteini.pack/Germany/tvinfo.de.ini create mode 100644 config/siteini.pack/Germany/tvmovie.de.channels.xml create mode 100644 config/siteini.pack/Germany/tvmovie.de.ini create mode 100644 config/siteini.pack/Germany/tvspielfilm.de.channels.xml create mode 100644 config/siteini.pack/Germany/tvspielfilm.de.ini create mode 100644 config/siteini.pack/Germany/tvtoday.de.Puls8.channels.xml create mode 100644 config/siteini.pack/Germany/tvtoday.de.Puls8.ini create mode 100644 config/siteini.pack/Germany/tvtoday.de.channels.xml create mode 100644 config/siteini.pack/Germany/tvtoday.de.ini create mode 100644 config/siteini.pack/Germany/tvtv.de.channels.xml create mode 100644 config/siteini.pack/Germany/tvtv.de.ini create mode 100644 config/siteini.pack/Germany/tvtv.de_info.txt create mode 100644 config/siteini.pack/Ghana/gotvafrica.com.gh.ini create mode 100644 config/siteini.pack/Greece/blueskytv.gr.channels.xml create mode 100644 config/siteini.pack/Greece/blueskytv.gr.ini create mode 100644 config/siteini.pack/Greece/cosmote.gr.channels.xml create mode 100644 config/siteini.pack/Greece/cosmote.gr.ini create mode 100644 config/siteini.pack/Greece/cybc.com.cy.channels.xml create mode 100644 config/siteini.pack/Greece/cybc.com.cy.ini create mode 100644 config/siteini.pack/Greece/cyta.com.cy.channels.xml create mode 100644 config/siteini.pack/Greece/cyta.com.cy.ini create mode 100644 config/siteini.pack/Greece/ishow.gr.channels.xml create mode 100644 config/siteini.pack/Greece/ishow.gr.ini create mode 100644 config/siteini.pack/Greece/nova.gr.channels.xml create mode 100644 config/siteini.pack/Greece/nova.gr.ini create mode 100644 config/siteini.pack/Greece/novaguide.gr.channels.xml create mode 100644 config/siteini.pack/Greece/novaguide.gr.ini create mode 100644 config/siteini.pack/Greece/novaguide_en.gr.channels.xml create mode 100644 config/siteini.pack/Greece/novaguide_en.gr.ini create mode 100644 config/siteini.pack/Greece/palo.gr.channels.xml create mode 100644 config/siteini.pack/Greece/palo.gr.ini create mode 100644 config/siteini.pack/Greece/tv.pathfinder.gr.channels.xml create mode 100644 config/siteini.pack/Greece/tv.pathfinder.gr.ini create mode 100644 config/siteini.pack/Hong Kong/epg.i-cable.com.channels.xml create mode 100644 config/siteini.pack/Hong Kong/epg.i-cable.com.chinese.channels.xml create mode 100644 config/siteini.pack/Hong Kong/epg.i-cable.com.chinese.ini create mode 100644 config/siteini.pack/Hong Kong/epg.i-cable.com.ini create mode 100644 config/siteini.pack/Hong Kong/nowtv.now.com.channels.xml create mode 100644 config/siteini.pack/Hong Kong/nowtv.now.com.ini create mode 100644 config/siteini.pack/Hong Kong/tvb.com.pearl.channels.xml create mode 100644 config/siteini.pack/Hong Kong/tvb.com.pearl.ini create mode 100644 config/siteini.pack/Hong Kong/tvbnetworkvision.com.channels.xml create mode 100644 config/siteini.pack/Hong Kong/tvbnetworkvision.com.ini create mode 100644 config/siteini.pack/Hungary/horizon.tv.hu.channels.xml create mode 100644 config/siteini.pack/Hungary/horizon.tv.hu.ini create mode 100644 config/siteini.pack/Hungary/musor.tv.channels.xml create mode 100644 config/siteini.pack/Hungary/musor.tv.ini create mode 100644 config/siteini.pack/Hungary/port.hu.channels.xml create mode 100644 config/siteini.pack/Hungary/port.hu.ini create mode 100644 config/siteini.pack/Hungary/port.hu.m.channels.xml create mode 100644 config/siteini.pack/Hungary/port.hu.m.ini create mode 100644 config/siteini.pack/Hungary/tavrogzito.upc.hu.channels.xml create mode 100644 config/siteini.pack/Hungary/tavrogzito.upc.hu.ini create mode 100644 config/siteini.pack/Hungary/tv.animare.hu.channels.xml create mode 100644 config/siteini.pack/Hungary/tv.animare.hu.ini create mode 100644 config/siteini.pack/Iceland/n4.is.channels.xml create mode 100644 config/siteini.pack/Iceland/n4.is.ini create mode 100644 config/siteini.pack/Iceland/ruv.is.channels.xml create mode 100644 config/siteini.pack/Iceland/ruv.is.ini create mode 100644 config/siteini.pack/Iceland/sjonvarp.is.channels.xml create mode 100644 config/siteini.pack/Iceland/sjonvarp.is.ini create mode 100644 config/siteini.pack/Iceland/skjar1.is.channels.xml create mode 100644 config/siteini.pack/Iceland/skjar1.is.ini create mode 100644 config/siteini.pack/Iceland/skjarinn.is.channels.xml create mode 100644 config/siteini.pack/Iceland/skjarinn.is.ini create mode 100644 config/siteini.pack/Iceland/stod2.is.channels.xml create mode 100644 config/siteini.pack/Iceland/stod2.is.ini create mode 100644 config/siteini.pack/India/aasthatv.com.channels.xml create mode 100644 config/siteini.pack/India/aasthatv.com.ini create mode 100644 config/siteini.pack/India/in.com.channels.xml create mode 100644 config/siteini.pack/India/in.com.ini create mode 100644 config/siteini.pack/India/startv.com.channels.xml create mode 100644 config/siteini.pack/India/startv.com.ini create mode 100644 config/siteini.pack/India/tatasky.com.channels.xml create mode 100644 config/siteini.pack/India/tatasky.com.ini create mode 100644 config/siteini.pack/India/tv.burrp.com.channels.xml create mode 100644 config/siteini.pack/India/tv.burrp.com.ini create mode 100644 config/siteini.pack/India/tvscheduleindia.com.channels.xml create mode 100644 config/siteini.pack/India/tvscheduleindia.com.ini create mode 100644 config/siteini.pack/India/whatsonindia.com.channels.xml create mode 100644 config/siteini.pack/India/whatsonindia.com.ini create mode 100644 config/siteini.pack/Indonesia/indovision.tv.channels.xml create mode 100644 config/siteini.pack/Indonesia/indovision.tv.ini create mode 100644 config/siteini.pack/Indonesia/jkt.firstmedia.com.channels.xml create mode 100644 config/siteini.pack/Indonesia/jkt.firstmedia.com.ini create mode 100644 config/siteini.pack/Indonesia/telkomvision.com.channels.xml create mode 100644 config/siteini.pack/Indonesia/telkomvision.com.ini create mode 100644 config/siteini.pack/Indonesia/transvision.co.id.channels.xml create mode 100644 config/siteini.pack/Indonesia/transvision.co.id.ini create mode 100644 config/siteini.pack/International/aljazeerasport.tv.channels.xml create mode 100644 config/siteini.pack/International/aljazeerasport.tv.ini create mode 100644 config/siteini.pack/International/beinsports.net.ini create mode 100644 config/siteini.pack/International/beinsports.net_arabic.xml create mode 100644 config/siteini.pack/International/beinsports.net_english.xml create mode 100644 config/siteini.pack/International/beinsports.net_france.xml create mode 100644 config/siteini.pack/International/filmon.com.channels.xml create mode 100644 config/siteini.pack/International/filmon.com.ini create mode 100644 config/siteini.pack/International/gatotv.com.channels.xml create mode 100644 config/siteini.pack/International/gatotv.com.ini create mode 100644 config/siteini.pack/International/mbc.net.channels.xml create mode 100644 config/siteini.pack/International/mbc.net.ini create mode 100644 config/siteini.pack/International/mi.tv.ini create mode 100644 config/siteini.pack/International/mi.tv_channelsALL.xml create mode 100644 config/siteini.pack/International/schedulesdirect.org.ini create mode 100644 config/siteini.pack/International/schedulesdirect.org_info.txt create mode 100644 config/siteini.pack/International/shoofeetv.com.channels.xml create mode 100644 config/siteini.pack/International/shoofeetv.com.ini create mode 100644 config/siteini.pack/International/sport24-tv.com.channels.xml create mode 100644 config/siteini.pack/International/sport24-tv.com.ini create mode 100644 config/siteini.pack/International/streamlive.to.channels.xml create mode 100644 config/siteini.pack/International/streamlive.to.ini create mode 100644 config/siteini.pack/International/tvpassport.com.channels.xml create mode 100644 config/siteini.pack/International/tvpassport.com.ini create mode 100644 config/siteini.pack/International/tvpassport.com_providersL9H1N3.xml create mode 100644 config/siteini.pack/International/yo.tv.ini create mode 100644 config/siteini.pack/International/yo.tv_countries.xml create mode 100644 config/siteini.pack/International/yo.tv_info.txt create mode 100644 config/siteini.pack/Ireland/entertainment.ie.channels.xml create mode 100644 config/siteini.pack/Ireland/entertainment.ie.ini create mode 100644 config/siteini.pack/Ireland/horizon.tv.ie.channels.xml create mode 100644 config/siteini.pack/Ireland/horizon.tv.ie.ini create mode 100644 config/siteini.pack/Ireland/tv-guide.upc.ie.channels.xml create mode 100644 config/siteini.pack/Ireland/tv-guide.upc.ie.ini create mode 100644 config/siteini.pack/Israel/i24news.tv.channels.xml create mode 100644 config/siteini.pack/Israel/i24news.tv.ini create mode 100644 config/siteini.pack/Israel/isramedia.net.ini create mode 100644 config/siteini.pack/Israel/tv.walla.co.il.channels.xml create mode 100644 config/siteini.pack/Israel/tv.walla.co.il.ini create mode 100644 config/siteini.pack/Italy/alice.tv.channels.xml create mode 100644 config/siteini.pack/Italy/alice.tv.ini create mode 100644 config/siteini.pack/Italy/guidatv.sky.it.channels.xml create mode 100644 config/siteini.pack/Italy/guidatv.sky.it.ini create mode 100644 config/siteini.pack/Italy/it.tv.yahoo.com.channels.xml create mode 100644 config/siteini.pack/Italy/it.tv.yahoo.com.ini create mode 100644 config/siteini.pack/Italy/italiasmart.tv.channels.xml create mode 100644 config/siteini.pack/Italy/italiasmart.tv.ini create mode 100644 config/siteini.pack/Italy/ka-boomtv.it.channels.xml create mode 100644 config/siteini.pack/Italy/ka-boomtv.it.ini create mode 100644 config/siteini.pack/Italy/laguidatv.it.channels.xml create mode 100644 config/siteini.pack/Italy/laguidatv.it.ini create mode 100644 config/siteini.pack/Italy/leonardo.tv.channels.xml create mode 100644 config/siteini.pack/Italy/leonardo.tv.ini create mode 100644 config/siteini.pack/Italy/mediaset.it.channels.xml create mode 100644 config/siteini.pack/Italy/mediaset.it.ini create mode 100644 config/siteini.pack/Italy/mediasetpremium.it.channels.xml create mode 100644 config/siteini.pack/Italy/mediasetpremium.it.ini create mode 100644 config/siteini.pack/Italy/movietele.it.channels.xml create mode 100644 config/siteini.pack/Italy/movietele.it.ini create mode 100644 config/siteini.pack/Italy/my.movies.it.channels.xml create mode 100644 config/siteini.pack/Italy/my.movies.it.ini create mode 100644 config/siteini.pack/Italy/myblobbox.com.channels.xml create mode 100644 config/siteini.pack/Italy/myblobbox.com.ini create mode 100644 config/siteini.pack/Italy/nuvolari.tv.channels.xml create mode 100644 config/siteini.pack/Italy/nuvolari.tv.ini create mode 100644 config/siteini.pack/Italy/programmi-tv.eu.channels.xml create mode 100644 config/siteini.pack/Italy/programmi-tv.eu.ini create mode 100644 config/siteini.pack/Italy/rai.it.channels.xml create mode 100644 config/siteini.pack/Italy/rai.it.ini create mode 100644 config/siteini.pack/Italy/rtvslo.it.channels.xml create mode 100644 config/siteini.pack/Italy/rtvslo.it.ini create mode 100644 config/siteini.pack/Italy/staseraintv.com.channels.xml create mode 100644 config/siteini.pack/Italy/staseraintv.com.ini create mode 100644 config/siteini.pack/Italy/tv.zam.it.channels.xml create mode 100644 config/siteini.pack/Italy/tv.zam.it.ini create mode 100644 config/siteini.pack/Italy/video.gazzetta.it.channels.xml create mode 100644 config/siteini.pack/Italy/video.gazzetta.it.ini create mode 100644 config/siteini.pack/Japan/eonet.jp.channels.xml create mode 100644 config/siteini.pack/Japan/eonet.jp.ini create mode 100644 config/siteini.pack/Japan/skyperfect.co.jp.channels.xml create mode 100644 config/siteini.pack/Japan/skyperfect.co.jp.ini create mode 100644 config/siteini.pack/Kazakhstan/galamtv.kz.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/galamtv.kz.ini create mode 100644 config/siteini.pack/Kazakhstan/onlinetb.net.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/onlinetb.net.ini create mode 100644 config/siteini.pack/Kazakhstan/telecom.kz.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/telecom.kz.ini create mode 100644 config/siteini.pack/Kazakhstan/tv.caravan.kz.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/tv.caravan.kz.ini create mode 100644 config/siteini.pack/Kazakhstan/tv.nur.kz.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/tv.nur.kz.ini create mode 100644 config/siteini.pack/Kazakhstan/tv.zakon.kz.channels.xml create mode 100644 config/siteini.pack/Kazakhstan/tv.zakon.kz.ini create mode 100644 config/siteini.pack/Kenya/gotvafrica.com.ke.ini create mode 100644 config/siteini.pack/Kenya/zuku.co.channels.xml create mode 100644 config/siteini.pack/Kenya/zuku.co.ini create mode 100644 config/siteini.pack/Latvia/lattelecom.lv.channels.xml create mode 100644 config/siteini.pack/Latvia/lattelecom.lv.ini create mode 100644 config/siteini.pack/Lesotho/gotvafrica.com.ls.ini create mode 100644 config/siteini.pack/Lithuania/cgates.lt.channels.xml create mode 100644 config/siteini.pack/Lithuania/cgates.lt.ini create mode 100644 config/siteini.pack/Lithuania/skynet.lt.channels.xml create mode 100644 config/siteini.pack/Lithuania/skynet.lt.ini create mode 100644 config/siteini.pack/Lithuania/tv24.lt.channels.xml create mode 100644 config/siteini.pack/Lithuania/tv24.lt.ini create mode 100644 config/siteini.pack/Lithuania/tvprograma.lt.channels.xml create mode 100644 config/siteini.pack/Lithuania/tvprograma.lt.ini create mode 100644 config/siteini.pack/Luxembourg/kombatsport.lu.channels.xml create mode 100644 config/siteini.pack/Luxembourg/kombatsport.lu.ini create mode 100644 config/siteini.pack/MDB postprocessor/allocine.fr.bing.ini create mode 100644 config/siteini.pack/MDB postprocessor/allocine.fr.google.ini create mode 100644 config/siteini.pack/MDB postprocessor/allocine.fr.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.ask.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.bing.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.bing_series.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.imdb.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.imdb_series.ini create mode 100644 config/siteini.pack/MDB postprocessor/imdb.com.imdb_series.onscreen.ini create mode 100644 config/siteini.pack/MDB postprocessor/tvdb.com.bing.ini create mode 100644 config/siteini.pack/MDB postprocessor/tvdb.com.bing_change_language.txt create mode 100644 config/siteini.pack/Macedonia/one.mk.channels.xml create mode 100644 config/siteini.pack/Macedonia/one.mk.ini create mode 100644 config/siteini.pack/Macedonia/t-home.mk.channels.xml create mode 100644 config/siteini.pack/Macedonia/t-home.mk.ini create mode 100644 config/siteini.pack/Macedonia/telekom.mk.channels.xml create mode 100644 config/siteini.pack/Macedonia/telekom.mk.ini create mode 100644 config/siteini.pack/Malawi/gotvafrica.com.mw.ini create mode 100644 config/siteini.pack/Malaysia/astro.com.my.channels.xml create mode 100644 config/siteini.pack/Malaysia/astro.com.my.ini create mode 100644 config/siteini.pack/Malaysia/rtm.gov.my.channels.xml create mode 100644 config/siteini.pack/Malaysia/rtm.gov.my.ini create mode 100644 config/siteini.pack/Malaysia/tm.com.my.channels.xml create mode 100644 config/siteini.pack/Malaysia/tm.com.my.ini create mode 100644 config/siteini.pack/Malaysia/tm.com.my.xmltv_ns.channels.xml create mode 100644 config/siteini.pack/Malaysia/tm.com.my.xmltv_ns.ini create mode 100644 config/siteini.pack/Mexico/entutele.com.channels.xml create mode 100644 config/siteini.pack/Mexico/entutele.com.ini create mode 100644 config/siteini.pack/Mexico/espndeportes.com.mexico.channels.xml create mode 100644 config/siteini.pack/Mexico/espndeportes.com.mexico.ini create mode 100644 config/siteini.pack/Misc/dummy.ini create mode 100644 config/siteini.pack/Misc/empty.ini create mode 100644 config/siteini.pack/Misc/fixed.ini create mode 100644 config/siteini.pack/Misc/fixed_info.txt create mode 100644 config/siteini.pack/Misc/merge-xmltv.ini create mode 100644 config/siteini.pack/Misc/merge-xmltv_info.howtosetup.txt create mode 100644 config/siteini.pack/Misc/site_ini_template.ini create mode 100644 config/siteini.pack/Misc/site_ini_xmltv2xmltv.ini create mode 100644 config/siteini.pack/Moldova/makler.md.channels.xml create mode 100644 config/siteini.pack/Moldova/makler.md.ini create mode 100644 config/siteini.pack/Moldova/point.md.channels.xml create mode 100644 config/siteini.pack/Moldova/point.md.ini create mode 100644 config/siteini.pack/Montenegro/extratv.me.channels.xml create mode 100644 config/siteini.pack/Montenegro/extratv.me.ini create mode 100644 config/siteini.pack/Mozambique/gotvafrica.com.mz.ini create mode 100644 config/siteini.pack/Namibia/gotvafrica.com.na.ini create mode 100644 config/siteini.pack/Netherlands/disney.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/disney.nl.ini create mode 100644 config/siteini.pack/Netherlands/film1.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/film1.nl.ini create mode 100644 config/siteini.pack/Netherlands/hbo.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/hbo.nl.ini create mode 100644 config/siteini.pack/Netherlands/horizon.tv.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/horizon.tv.nl.ini create mode 100644 config/siteini.pack/Netherlands/npo.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/npo.nl.ini create mode 100644 config/siteini.pack/Netherlands/oorboekje.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/oorboekje.nl.ini create mode 100644 config/siteini.pack/Netherlands/rtl.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/rtl.nl.ini create mode 100644 config/siteini.pack/Netherlands/salto.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/salto.nl.ini create mode 100644 config/siteini.pack/Netherlands/sport1.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/sport1.nl.ini create mode 100644 config/siteini.pack/Netherlands/tele.rtl.lu.channels.xml create mode 100644 config/siteini.pack/Netherlands/tele.rtl.lu.ini create mode 100644 config/siteini.pack/Netherlands/tvgids.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/tvgids.nl.index-only.channels.xml create mode 100644 config/siteini.pack/Netherlands/tvgids.nl.index-only.ini create mode 100644 config/siteini.pack/Netherlands/tvgids.nl.ini create mode 100644 config/siteini.pack/Netherlands/tvgids.tv.channels.xml create mode 100644 config/siteini.pack/Netherlands/tvgids.tv.ini create mode 100644 config/siteini.pack/Netherlands/varagids.publiekeomroep.nl.rd.channels.xml create mode 100644 config/siteini.pack/Netherlands/varagids.publiekeomroep.nl.rd.ini create mode 100644 config/siteini.pack/Netherlands/varagids.publiekeomroep.nl.tv.channels.xml create mode 100644 config/siteini.pack/Netherlands/varagids.publiekeomroep.nl.tv.ini create mode 100644 config/siteini.pack/Netherlands/ziggo.nl.channels.xml create mode 100644 config/siteini.pack/Netherlands/ziggo.nl.ini create mode 100644 config/siteini.pack/Netherlands/ziggo.nl_all_channels.xml create mode 100644 config/siteini.pack/Networks/australianetwork.com.channels.xml create mode 100644 config/siteini.pack/Networks/australianetwork.com.ini create mode 100644 config/siteini.pack/Networks/australianetwork.com_howto_set_the_regions.txt create mode 100644 config/siteini.pack/Networks/australianetwork.com_regions_time_zones.xml create mode 100644 config/siteini.pack/Networks/bbc.co.uk.channels.xml create mode 100644 config/siteini.pack/Networks/bbc.co.uk.ini create mode 100644 config/siteini.pack/Networks/blackflag.tv.channels.xml create mode 100644 config/siteini.pack/Networks/blackflag.tv.ini create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.CAT.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.CAT.ini create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.CVT.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.CVT.ini create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.EAT.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.EAT.ini create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.GMT.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.GMT.ini create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.WAT.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-afrique.com.WAT.ini create mode 100644 config/siteini.pack/Networks/canalplus-caledonie.com.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caledonie.com.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.com.guadeloupe.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.com.guadeloupe.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.com.martinique.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.com.martinique.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.guadaloupe.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.guadaloupe.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.guyane.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.guyane.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.haiti.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.haiti.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.martinique.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.martinique.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.no-country.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.saint-barthelemy.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.saint-barthelemy.ini create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.saint-martin.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-caraibes.saint-martin.ini create mode 100644 config/siteini.pack/Networks/canalplus-maurice.com.ini create mode 100644 config/siteini.pack/Networks/canalplus-reunion.com.channels.xml create mode 100644 config/siteini.pack/Networks/canalplus-reunion.com.ini create mode 100644 config/siteini.pack/Networks/cinemax.tv.channels.xml create mode 100644 config/siteini.pack/Networks/cinemax.tv.ini create mode 100644 config/siteini.pack/Networks/da-vinci-learning.com.channels.xml create mode 100644 config/siteini.pack/Networks/da-vinci-learning.com.ini create mode 100644 config/siteini.pack/Networks/directv.com.channels.xml create mode 100644 config/siteini.pack/Networks/directv.com.ini create mode 100644 config/siteini.pack/Networks/directv.com_instructions.txt create mode 100644 config/siteini.pack/Networks/discovery.com.channels.xml create mode 100644 config/siteini.pack/Networks/discovery.com.ini create mode 100644 config/siteini.pack/Networks/dw.de.channels.xml create mode 100644 config/siteini.pack/Networks/dw.de.ini create mode 100644 config/siteini.pack/Networks/espndeportes.com.nocountry.ini create mode 100644 config/siteini.pack/Networks/espndeportes.com.nocountry_info.txt create mode 100644 config/siteini.pack/Networks/lebouquetafricain.com.channels.xml create mode 100644 config/siteini.pack/Networks/lebouquetafricain.com.ini create mode 100644 config/siteini.pack/Networks/nasa.gov.channels.xml create mode 100644 config/siteini.pack/Networks/nasa.gov.ini create mode 100644 config/siteini.pack/Networks/osn.com.channels.xml create mode 100644 config/siteini.pack/Networks/osn.com.ini create mode 100644 config/siteini.pack/Networks/osnplay.osn.com.channels.xml create mode 100644 config/siteini.pack/Networks/osnplay.osn.com.ini create mode 100644 config/siteini.pack/Networks/pluto.tv.channels.xml create mode 100644 config/siteini.pack/Networks/pluto.tv.ini create mode 100644 config/siteini.pack/Networks/radioaustralia.net.au.channels.xml create mode 100644 config/siteini.pack/Networks/radioaustralia.net.au.ini create mode 100644 config/siteini.pack/Networks/setanta.com.africa.channels.xml create mode 100644 config/siteini.pack/Networks/setanta.com.africa.ini create mode 100644 config/siteini.pack/Networks/setanta.com.asia.channels.xml create mode 100644 config/siteini.pack/Networks/setanta.com.asia.ini create mode 100644 config/siteini.pack/Networks/setanta.com.au.channels.xml create mode 100644 config/siteini.pack/Networks/setanta.com.au.ini create mode 100644 config/siteini.pack/Networks/tv.foxsportsasia.com.channels.xml create mode 100644 config/siteini.pack/Networks/tv.foxsportsasia.com.ini create mode 100644 config/siteini.pack/Networks/tvguide.com.ini create mode 100644 config/siteini.pack/Networks/tvguide.com_channels_byTimezone.xml create mode 100644 config/siteini.pack/Networks/tvguide.com_info.txt create mode 100644 config/siteini.pack/Networks/tvguide.com_providers_byCountry.xml create mode 100644 config/siteini.pack/Networks/yourdiscovery.com.channels.xml create mode 100644 config/siteini.pack/Networks/yourdiscovery.com.ini create mode 100644 config/siteini.pack/Networks/zap2it.com.channels.xml create mode 100644 config/siteini.pack/Networks/zap2it.com.ini create mode 100644 config/siteini.pack/New Zealand/freeviewnz.tv.channels.xml create mode 100644 config/siteini.pack/New Zealand/freeviewnz.tv.ini create mode 100644 config/siteini.pack/New Zealand/nz.entertainment.yahoo.com.channels.xml create mode 100644 config/siteini.pack/New Zealand/nz.entertainment.yahoo.com.ini create mode 100644 config/siteini.pack/New Zealand/nz.entertainment.yahoo.com_info.readme.txt create mode 100644 config/siteini.pack/Nigeria/gotvafrica.com.ng.ini create mode 100644 config/siteini.pack/Norway/altibox.no.channels.xml create mode 100644 config/siteini.pack/Norway/altibox.no.ini create mode 100644 config/siteini.pack/Norway/se.no.channels.xml create mode 100644 config/siteini.pack/Norway/se.no.ini create mode 100644 config/siteini.pack/Norway/se.no_info.txt create mode 100644 config/siteini.pack/Norway/sol.no.channels.xml create mode 100644 config/siteini.pack/Norway/sol.no.ini create mode 100644 config/siteini.pack/Norway/tv2.no.channels.xml create mode 100644 config/siteini.pack/Norway/tv2.no.ini create mode 100644 config/siteini.pack/Norway/vg.no.channels.xml create mode 100644 config/siteini.pack/Norway/vg.no.ini create mode 100644 config/siteini.pack/Pakistan/ptv.com.pk.channels.xml create mode 100644 config/siteini.pack/Pakistan/ptv.com.pk.ini create mode 100644 config/siteini.pack/Pakistan/ptv_global.com.pk.channels.xml create mode 100644 config/siteini.pack/Pakistan/ptv_global.com.pk.ini create mode 100644 config/siteini.pack/Panama/cableonda.com.channels.xml create mode 100644 config/siteini.pack/Panama/cableonda.com.ini create mode 100644 config/siteini.pack/Peru/movistar.com.pe.channels.xml create mode 100644 config/siteini.pack/Peru/movistar.com.pe.ini create mode 100644 config/siteini.pack/Philippines/abs-cbn.com.channels.xml create mode 100644 config/siteini.pack/Philippines/abs-cbn.com.ini create mode 100644 config/siteini.pack/Philippines/clickthecity.com.channels.xml create mode 100644 config/siteini.pack/Philippines/clickthecity.com.ini create mode 100644 config/siteini.pack/Philippines/eaglenews.ph.channels.xml create mode 100644 config/siteini.pack/Philippines/eaglenews.ph.ini create mode 100644 config/siteini.pack/Philippines/gmanetwork.com.channels.xml create mode 100644 config/siteini.pack/Philippines/gmanetwork.com.ini create mode 100644 config/siteini.pack/Philippines/gmanetwork_int.com.channels.xml create mode 100644 config/siteini.pack/Philippines/gmanetwork_int.com.ini create mode 100644 config/siteini.pack/Philippines/skycable.com.channels.xml create mode 100644 config/siteini.pack/Philippines/skycable.com.ini create mode 100644 config/siteini.pack/Philippines/untv.com.channels.xml create mode 100644 config/siteini.pack/Philippines/untv.com.ini create mode 100644 config/siteini.pack/Poland/cyfrowypolsat.pl.channels.xml create mode 100644 config/siteini.pack/Poland/cyfrowypolsat.pl.ini create mode 100644 config/siteini.pack/Poland/cyfrowypolsat.pl_cookie.txt create mode 100644 config/siteini.pack/Poland/horizon.tv.pl.channels.xml create mode 100644 config/siteini.pack/Poland/horizon.tv.pl.ini create mode 100644 config/siteini.pack/Poland/ncplus.pl.channels.xml create mode 100644 config/siteini.pack/Poland/ncplus.pl.ini create mode 100644 config/siteini.pack/Poland/onlinetv.inea.pl.channels.xml create mode 100644 config/siteini.pack/Poland/onlinetv.inea.pl.ini create mode 100644 config/siteini.pack/Poland/programtv.interia.pl.channels.xml create mode 100644 config/siteini.pack/Poland/programtv.interia.pl.ini create mode 100644 config/siteini.pack/Poland/programtv.onet.pl.channels.xml create mode 100644 config/siteini.pack/Poland/programtv.onet.pl.ini create mode 100644 config/siteini.pack/Poland/teleman.pl.channels.xml create mode 100644 config/siteini.pack/Poland/teleman.pl.ini create mode 100644 config/siteini.pack/Poland/tv.wp.pl.channels.xml create mode 100644 config/siteini.pack/Poland/tv.wp.pl.ini create mode 100644 config/siteini.pack/Portugal/cabovisao.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/cabovisao.pt.ini create mode 100644 config/siteini.pack/Portugal/mag.sapo.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/mag.sapo.pt.ini create mode 100644 config/siteini.pack/Portugal/meo.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/meo.pt.ini create mode 100644 config/siteini.pack/Portugal/nos.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/nos.pt.ini create mode 100644 config/siteini.pack/Portugal/portalnacional.com.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/portalnacional.com.pt.ini create mode 100644 config/siteini.pack/Portugal/rpt.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/rpt.pt.ini create mode 100644 config/siteini.pack/Portugal/sic.sapto.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/sic.sapto.pt.ini create mode 100644 config/siteini.pack/Portugal/sporttv.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/sporttv.pt.ini create mode 100644 config/siteini.pack/Portugal/tv.sapo.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/tv.sapo.pt.ini create mode 100644 config/siteini.pack/Portugal/tvi.pt.channels.xml create mode 100644 config/siteini.pack/Portugal/tvi.pt.ini create mode 100644 config/siteini.pack/Republic of Kosovo/tvim.tv.channels.xml create mode 100644 config/siteini.pack/Republic of Kosovo/tvim.tv.ini create mode 100644 config/siteini.pack/Romania/horizon.tv.ro.channels.xml create mode 100644 config/siteini.pack/Romania/horizon.tv.ro.ini create mode 100644 config/siteini.pack/Romania/port.ro.channels.xml create mode 100644 config/siteini.pack/Romania/port.ro.ini create mode 100644 config/siteini.pack/Romania/program24.ro.channels.xml create mode 100644 config/siteini.pack/Romania/program24.ro.ini create mode 100644 config/siteini.pack/Romania/rcs-rds.ro.channels.xml create mode 100644 config/siteini.pack/Romania/rcs-rds.ro.ini create mode 100644 config/siteini.pack/Romania/roportal.ro.channels.xml create mode 100644 config/siteini.pack/Romania/roportal.ro.ini create mode 100644 config/siteini.pack/Russia/s-tv.ru.channels.xml create mode 100644 config/siteini.pack/Russia/s-tv.ru.ini create mode 100644 config/siteini.pack/Russia/teleguide.info.channels.xml create mode 100644 config/siteini.pack/Russia/teleguide.info.ini create mode 100644 config/siteini.pack/Russia/tv.mail.ru.channels.xml create mode 100644 config/siteini.pack/Russia/tv.mail.ru.ini create mode 100644 config/siteini.pack/Russia/tv.yandex.ru.channels.xml create mode 100644 config/siteini.pack/Russia/tv.yandex.ru.ini create mode 100644 config/siteini.pack/Russia/vsetv.com.channels.xml create mode 100644 config/siteini.pack/Russia/vsetv.com.ini create mode 100644 config/siteini.pack/Rwanda/gotvafrica.com.rw.ini create mode 100644 config/siteini.pack/Saudi Arabia/invision.com.sa.channels.xml create mode 100644 config/siteini.pack/Saudi Arabia/invision.com.sa.ini create mode 100644 config/siteini.pack/Serbia/axnspin.rs.channels.xml create mode 100644 config/siteini.pack/Serbia/axnspin.rs.ini create mode 100644 config/siteini.pack/Serbia/mts.rs.channels.xml create mode 100644 config/siteini.pack/Serbia/mts.rs.ini create mode 100644 config/siteini.pack/Serbia/port.rs.channels.xml create mode 100644 config/siteini.pack/Serbia/port.rs.ini create mode 100644 config/siteini.pack/Serbia/rts.rs.channels.xml create mode 100644 config/siteini.pack/Serbia/rts.rs.ini create mode 100644 config/siteini.pack/Serbia/sbb.rs.channels.xml create mode 100644 config/siteini.pack/Serbia/sbb.rs.ini create mode 100644 config/siteini.pack/Singapore/singteltv.com.sg.channels.xml create mode 100644 config/siteini.pack/Singapore/singteltv.com.sg.ini create mode 100644 config/siteini.pack/Singapore/starhubgo.com.ini create mode 100644 config/siteini.pack/Singapore/starhubgo.com_all-channels.xml create mode 100644 config/siteini.pack/Singapore/toggle.sg.channels.xml create mode 100644 config/siteini.pack/Singapore/toggle.sg.ini create mode 100644 config/siteini.pack/Singapore/tvb.com.pearl.channels.xml create mode 100644 config/siteini.pack/Singapore/tvb.com.pearl.ini create mode 100644 config/siteini.pack/Singapore/xin.msn.com.channels.xml create mode 100644 config/siteini.pack/Singapore/xin.msn.com.ini create mode 100644 config/siteini.pack/SiteIni.Pack_2016.07.19_124146.txt create mode 100644 config/siteini.pack/Slovakia/horizon.tv.sk.channels.xml create mode 100644 config/siteini.pack/Slovakia/horizon.tv.sk.ini create mode 100644 config/siteini.pack/Slovakia/port.sk.channels.xml create mode 100644 config/siteini.pack/Slovakia/port.sk.ini create mode 100644 config/siteini.pack/Slovenia/d3go.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/d3go.si.ini create mode 100644 config/siteini.pack/Slovenia/mojportal.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/mojportal.si.ini create mode 100644 config/siteini.pack/Slovenia/planettv.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/planettv.si.ini create mode 100644 config/siteini.pack/Slovenia/pop-tv.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/pop-tv.si.ini create mode 100644 config/siteini.pack/Slovenia/rtvslo.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/rtvslo.si.ini create mode 100644 config/siteini.pack/Slovenia/siol.net.channels.xml create mode 100644 config/siteini.pack/Slovenia/siol.net.ini create mode 100644 config/siteini.pack/Slovenia/sporedi.tv.channels.xml create mode 100644 config/siteini.pack/Slovenia/sporedi.tv.ini create mode 100644 config/siteini.pack/Slovenia/sport-tv.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/sport-tv.si.ini create mode 100644 config/siteini.pack/Slovenia/sportklubtv.si.channels.xml create mode 100644 config/siteini.pack/Slovenia/sportklubtv.si.ini create mode 100644 config/siteini.pack/South Africa/dstv.com.channels.xml create mode 100644 config/siteini.pack/South Africa/dstv.com.ini create mode 100644 config/siteini.pack/South Africa/dstv.com.simple.channels.xml create mode 100644 config/siteini.pack/South Africa/dstv.com.simple.ini create mode 100644 config/siteini.pack/South Africa/dstv.com.simple_info.txt create mode 100644 config/siteini.pack/South Africa/dstv.com_info.txt create mode 100644 config/siteini.pack/South Africa/gononda.com.channels.xml create mode 100644 config/siteini.pack/South Africa/gononda.com.ini create mode 100644 config/siteini.pack/Spain/axn.es.channels.xml create mode 100644 config/siteini.pack/Spain/axn.es.index-only.channels.xml create mode 100644 config/siteini.pack/Spain/axn.es.index-only.ini create mode 100644 config/siteini.pack/Spain/axn.es.ini create mode 100644 config/siteini.pack/Spain/calle13.es.channels.xml create mode 100644 config/siteini.pack/Spain/calle13.es.ini create mode 100644 config/siteini.pack/Spain/canalgasteiz.com.channels.xml create mode 100644 config/siteini.pack/Spain/canalgasteiz.com.ini create mode 100644 config/siteini.pack/Spain/canalhistoria.es.channels.xml create mode 100644 config/siteini.pack/Spain/canalhistoria.es.ini create mode 100644 config/siteini.pack/Spain/canalplus-export.es.channels.xml create mode 100644 config/siteini.pack/Spain/canalplus-export.es.ini create mode 100644 config/siteini.pack/Spain/canalplus.es.channels.xml create mode 100644 config/siteini.pack/Spain/canalplus.es.ini create mode 100644 config/siteini.pack/Spain/eitb.com.channels.xml create mode 100644 config/siteini.pack/Spain/eitb.com.ini create mode 100644 config/siteini.pack/Spain/elmundo.es.channels.xml create mode 100644 config/siteini.pack/Spain/elmundo.es.ini create mode 100644 config/siteini.pack/Spain/elmundo.es.mp.channels.xml create mode 100644 config/siteini.pack/Spain/elmundo.es.mp.ini create mode 100644 config/siteini.pack/Spain/elmundo.es.mp_rex.config.xml create mode 100644 config/siteini.pack/Spain/elpais.com.channels.xml create mode 100644 config/siteini.pack/Spain/elpais.com.ini create mode 100644 config/siteini.pack/Spain/fox.es.channels.xml create mode 100644 config/siteini.pack/Spain/fox.es.ini create mode 100644 config/siteini.pack/Spain/guia-tv.es.channels.xml create mode 100644 config/siteini.pack/Spain/guia-tv.es.ini create mode 100644 config/siteini.pack/Spain/hamaika.tv.channels.xml create mode 100644 config/siteini.pack/Spain/hamaika.tv.ini create mode 100644 config/siteini.pack/Spain/laguiatv.abc.es.channels.xml create mode 100644 config/siteini.pack/Spain/laguiatv.abc.es.ini create mode 100644 config/siteini.pack/Spain/laguiatv.com.channels.xml create mode 100644 config/siteini.pack/Spain/laguiatv.com.ini create mode 100644 config/siteini.pack/Spain/laguiatv.com.mp.channels.xml create mode 100644 config/siteini.pack/Spain/laguiatv.com.mp.ini create mode 100644 config/siteini.pack/Spain/paramountchannel.es.channels.xml create mode 100644 config/siteini.pack/Spain/paramountchannel.es.ini create mode 100644 config/siteini.pack/Spain/plus.es.channels.xml create mode 100644 config/siteini.pack/Spain/plus.es.ini create mode 100644 config/siteini.pack/Spain/programacion-radio.com.channels.xml create mode 100644 config/siteini.pack/Spain/programacion-radio.com.ini create mode 100644 config/siteini.pack/Spain/rtve.es.channels.xml create mode 100644 config/siteini.pack/Spain/rtve.es.ini create mode 100644 config/siteini.pack/Spain/rtvv.es.channels.xml create mode 100644 config/siteini.pack/Spain/rtvv.es.ini create mode 100644 config/siteini.pack/Spain/sincroguia.tv.channels.xml create mode 100644 config/siteini.pack/Spain/sincroguia.tv.ini create mode 100644 config/siteini.pack/Spain/sincroguia.tv.mp.channels.xml create mode 100644 config/siteini.pack/Spain/sincroguia.tv.mp.ini create mode 100644 config/siteini.pack/Spain/sincroguia.tv.mp_rex.config.xml create mode 100644 config/siteini.pack/Spain/syfy.es.channels.xml create mode 100644 config/siteini.pack/Spain/syfy.es.ini create mode 100644 config/siteini.pack/Spain/teleprograma.tv.ini create mode 100644 config/siteini.pack/Spain/tunein.com.channels.xml create mode 100644 config/siteini.pack/Spain/tunein.com.ini create mode 100644 config/siteini.pack/Sri Lanka/csn.lk.channels.xml create mode 100644 config/siteini.pack/Sri Lanka/csn.lk.ini create mode 100644 config/siteini.pack/Sweden/dagenstv.com.channels.xml create mode 100644 config/siteini.pack/Sweden/dagenstv.com.ini create mode 100644 config/siteini.pack/Sweden/dagenstv.com.xmltv_ns.channels.xml create mode 100644 config/siteini.pack/Sweden/dagenstv.com.xmltv_ns.ini create mode 100644 config/siteini.pack/Sweden/ontv.se.channels.xml create mode 100644 config/siteini.pack/Sweden/ontv.se.ini create mode 100644 config/siteini.pack/Sweden/se.timefor.tv.channels.xml create mode 100644 config/siteini.pack/Sweden/se.timefor.tv.ini create mode 100644 config/siteini.pack/Sweden/svt.se.channels.xml create mode 100644 config/siteini.pack/Sweden/svt.se.ini create mode 100644 config/siteini.pack/Sweden/tv.nu.channels.xml create mode 100644 config/siteini.pack/Sweden/tv.nu.ini create mode 100644 config/siteini.pack/Switzerland/horizon.tv.ch.channels.xml create mode 100644 config/siteini.pack/Switzerland/horizon.tv.ch.ini create mode 100644 config/siteini.pack/Switzerland/tele.ch.channels.xml create mode 100644 config/siteini.pack/Switzerland/tele.ch.ini create mode 100644 config/siteini.pack/Switzerland/teleboy.ch.channels.xml create mode 100644 config/siteini.pack/Switzerland/teleboy.ch.ini create mode 100644 config/siteini.pack/Switzerland/tvtv.ch.channels.xml create mode 100644 config/siteini.pack/Switzerland/tvtv.ch.ini create mode 100644 config/siteini.pack/Taiwan/dishhdasia.com.channels.xml create mode 100644 config/siteini.pack/Taiwan/dishhdasia.com.ini create mode 100644 config/siteini.pack/Thailand/cthbpl.com.channels.xml create mode 100644 config/siteini.pack/Thailand/cthbpl.com.ini create mode 100644 config/siteini.pack/Thailand/totiptv.com.channels.xml create mode 100644 config/siteini.pack/Thailand/totiptv.com.ini create mode 100644 config/siteini.pack/Thailand/truevisiontv.com.channels.xml create mode 100644 config/siteini.pack/Thailand/truevisiontv.com.ini create mode 100644 config/siteini.pack/Turkey/digiturk.com.tr.channels.xml create mode 100644 config/siteini.pack/Turkey/digiturk.com.tr.ini create mode 100644 config/siteini.pack/Turkey/dsmart.com.tr.channels.xml create mode 100644 config/siteini.pack/Turkey/dsmart.com.tr.ini create mode 100644 config/siteini.pack/Turkey/hurriyet.com.tr.channels.xml create mode 100644 config/siteini.pack/Turkey/hurriyet.com.tr.ini create mode 100644 config/siteini.pack/Turkey/trt.net.tr.channels.xml create mode 100644 config/siteini.pack/Turkey/trt.net.tr.ini create mode 100644 config/siteini.pack/UK/bfbs.com.ini create mode 100644 config/siteini.pack/UK/m.tvguide.co.uk-full.channels.xml create mode 100644 config/siteini.pack/UK/m.tvguide.co.uk-full.ini create mode 100644 config/siteini.pack/UK/m.tvguide.co.uk-index.channels.xml create mode 100644 config/siteini.pack/UK/m.tvguide.co.uk-index.ini create mode 100644 config/siteini.pack/UK/mtv.co.uk.channels.xml create mode 100644 config/siteini.pack/UK/mtv.co.uk.ini create mode 100644 config/siteini.pack/UK/mydigiguide.com.channels.xml create mode 100644 config/siteini.pack/UK/mydigiguide.com.ini create mode 100644 config/siteini.pack/UK/radiotimes.com.channels.xml create mode 100644 config/siteini.pack/UK/radiotimes.com.ini create mode 100644 config/siteini.pack/UK/spfl.co.uk.channels.xml create mode 100644 config/siteini.pack/UK/spfl.co.uk.ini create mode 100644 config/siteini.pack/UK/theguardian.com.channels.xml create mode 100644 config/siteini.pack/UK/theguardian.com.ini create mode 100644 config/siteini.pack/UK/theguardian.com.xmltv_ns.channels.xml create mode 100644 config/siteini.pack/UK/theguardian.com.xmltv_ns.ini create mode 100644 config/siteini.pack/UK/tv.sky.com.channels.xml create mode 100644 config/siteini.pack/UK/tv.sky.com.ini create mode 100644 config/siteini.pack/UK/tvguide.co.uk.channels.xml create mode 100644 config/siteini.pack/UK/tvguide.co.uk.ini create mode 100644 config/siteini.pack/UK/tvguide.co.uk_info.txt create mode 100644 config/siteini.pack/UK/tvguideuk.telegraph.co.uk.channels.xml create mode 100644 config/siteini.pack/UK/tvguideuk.telegraph.co.uk.ini create mode 100644 config/siteini.pack/UK/uk-sky.com.channels.xml create mode 100644 config/siteini.pack/UK/uk-sky.com.ini create mode 100644 config/siteini.pack/UK/uk-tvgenius.com.channels.xml create mode 100644 config/siteini.pack/UK/uk-tvgenius.com.ini create mode 100644 config/siteini.pack/UK/virginmedia.com.channels.xml create mode 100644 config/siteini.pack/UK/virginmedia.com.ini create mode 100644 config/siteini.pack/UK/virginmedia.com_regions.xml create mode 100644 config/siteini.pack/UK/zingzing.tv.channels.xml create mode 100644 config/siteini.pack/UK/zingzing.tv.ini create mode 100644 config/siteini.pack/USA/pokercentral.com.channels.xml create mode 100644 config/siteini.pack/USA/pokercentral.com.ini create mode 100644 config/siteini.pack/USA/tv.com.channels.xml create mode 100644 config/siteini.pack/USA/tv.com.ini create mode 100644 config/siteini.pack/USA/tv.com_instructions.txt create mode 100644 config/siteini.pack/USA/ustvnow.com.channels.xml create mode 100644 config/siteini.pack/USA/ustvnow.com.ini create mode 100644 config/siteini.pack/USA/voanews.com.channels.xml create mode 100644 config/siteini.pack/USA/voanews.com.ini create mode 100644 config/siteini.pack/Uganda/gotvafrica.com.ug.ini create mode 100644 config/siteini.pack/Ukraine/discoverychannel.ua.channels.xml create mode 100644 config/siteini.pack/Ukraine/discoverychannel.ua.ini create mode 100644 config/siteini.pack/Ukraine/tv.i.ua.channels.xml create mode 100644 config/siteini.pack/Ukraine/tv.i.ua.ini create mode 100644 config/siteini.pack/Ukraine/tv.ua.channels.xml create mode 100644 config/siteini.pack/Ukraine/tv.ua.ini create mode 100644 config/siteini.pack/United Arab Emirates/dcn.ae.channels.xml create mode 100644 config/siteini.pack/United Arab Emirates/dcn.ae.ini create mode 100644 config/siteini.pack/United Arab Emirates/dmi.ae.channels.xml create mode 100644 config/siteini.pack/United Arab Emirates/dmi.ae.ini create mode 100644 config/siteini.pack/Uruguay/tv.vera.com.uy.channels.xml create mode 100644 config/siteini.pack/Uruguay/tv.vera.com.uy.ini create mode 100644 config/siteini.pack/Uzbekistan/mtrk.uz.channels.xml create mode 100644 config/siteini.pack/Uzbekistan/mtrk.uz.ini create mode 100644 config/siteini.pack/Vietnam/ftpplay.net.channels.xml create mode 100644 config/siteini.pack/Vietnam/ftpplay.net.ini create mode 100644 config/siteini.pack/Vietnam/htvonline.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/htvonline.vn.ini create mode 100644 config/siteini.pack/Vietnam/kplus.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/kplus.vn.ini create mode 100644 config/siteini.pack/Vietnam/mytv.com.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/mytv.com.vn.ini create mode 100644 config/siteini.pack/Vietnam/tintuc.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/tintuc.vn.ini create mode 100644 config/siteini.pack/Vietnam/truyenhinhanvien.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/truyenhinhanvien.vn.ini create mode 100644 config/siteini.pack/Vietnam/tv.vietbao.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/tv.vietbao.vn.ini create mode 100644 config/siteini.pack/Vietnam/tv24.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/tv24.vn.ini create mode 100644 config/siteini.pack/Vietnam/vtc16.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/vtc16.vn.ini create mode 100644 config/siteini.pack/Vietnam/vtv.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/vtv.vn.ini create mode 100644 config/siteini.pack/Vietnam/vtvcab.vn.channels.xml create mode 100644 config/siteini.pack/Vietnam/vtvcab.vn.ini create mode 100644 config/siteini.pack/Zambia/gotvafrica.com.za.ini create mode 100644 config/siteini.pack/Zambia/toptv.co.za.channels.xml create mode 100644 config/siteini.pack/Zambia/toptv.co.za.ini create mode 100644 config/siteini.pack/Zimbabwe/gotvafrica.com.zm.ini diff --git a/config/siteini.pack/Albania/ipko.com.channels.xml b/config/siteini.pack/Albania/ipko.com.channels.xml new file mode 100644 index 0000000..58c37f5 --- /dev/null +++ b/config/siteini.pack/Albania/ipko.com.channels.xml @@ -0,0 +1,62 @@ + + + + RTK + Klan Kosova + RTV 21 + RTV 21 HD + Klan TV + Klan TV HD + ABC News + Rrokum TV + Rrokum HD + My Music + Bang Bang + Cufo TV + Junior TV + Boomerang + 21 Junior + Film Nje HD + Film Dy HD + Plus HD + Film Komedi + Film Hits +1 + Film Thriller + Film Drame + Film Aksion + Fox Life + EXP Shkence + EXP Histori + EXP Natyra + Nat Geo HD + ","description":" + MTV Live HD + musicAL + Fashion TV + Digi Gold + KTV + Ora News + News 24 + Alsat M + E TV + ON TV + 21 Popullore + EuroSport + Hayat TV + TV Prizren + TV Festina + RTL + RTL 2 + N-TV + Rai 1 + Rai 2 + Rai 3 + Al Jazeera + Peace TV + CNN int + BBC + EuroNews + B92 + DW + + \ No newline at end of file diff --git a/config/siteini.pack/Albania/ipko.com.ini b/config/siteini.pack/Albania/ipko.com.ini new file mode 100644 index 0000000..66671ba --- /dev/null +++ b/config/siteini.pack/Albania/ipko.com.ini @@ -0,0 +1,46 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: ipko.com +* @MinSWversion: +* @Revision 1 - [13/06/2016] Blackbear199 +* - windows only +* @Revision 0 - [30/10/2014] Jan van Straaten +* - creation +* @Remarks: only works for windows users +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=ipko.com|timezone=Europe/Tirane|maxdays=7|cultureinfo=sq-AL|charset=UTF-8|titlematchfactor=90|keepindexpage} +* +url_index{url|https://www.ipko.com/epg/admin/programs.php?date=|urldate} +urldate.format {datestring|yyyy-MM-dd} +* +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +url_index.headers {customheader=X-Requested-With=XMLHttpRequest} +url_index.headers {accept=application/json, text/javascript, */*; q=0.01} +url_index.headers {referer=https://ipko.com/epg/} + +index_variable_element.modify {addstart|'config_site_id'} +index_showsplit.scrub {regex(debug)||{"id":\d+?,"channel_id":'index_variable_element',.+?"}||} +index_showsplit.modify {cleanup(style=jsondecode)} + +index_start.scrub {regex()||"date":"(\d{2}:\d{2}):\d{2}||} +index_title.scrub {regex||"program_name":"(.*?)","||} +index_title.modify {addstart("")|Titulli panjohur} +index_description.scrub {regex||"description":"(.*?)","||} +index_description.modify {remove|\\n} +index_category.scrub {single(separator=",")|"category":"||"|"} + +*index_urlshow {url|} +*index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the detail pages + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_channel.scrub {regex||"name_short":"(.+?)","||} +*index_site_id.scrub {regex||"channel_id":(\d+?),"||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Albania/rtsh.al.channels.xml b/config/siteini.pack/Albania/rtsh.al.channels.xml new file mode 100644 index 0000000..321cea8 --- /dev/null +++ b/config/siteini.pack/Albania/rtsh.al.channels.xml @@ -0,0 +1,13 @@ + + + + TVSH + TVSH 2 + RTSH HD + RTSH art + RTSH muzikë + RTSH sport + RTSH satelit + Radio Tirana + + \ No newline at end of file diff --git a/config/siteini.pack/Albania/rtsh.al.ini b/config/siteini.pack/Albania/rtsh.al.ini new file mode 100644 index 0000000..fee8c5f --- /dev/null +++ b/config/siteini.pack/Albania/rtsh.al.ini @@ -0,0 +1,28 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: rtsh.al +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [02/04/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=rtsh.al|timezone=Europe/Tirane|maxdays=1|cultureinfo=sq-AL|charset=UTF-8|titlematchfactor=90} +url_index{url(debug)|http://rtsh.al/|channel|} +urldate.format {datestring|dd-MM-yyyy} +index_variable_element.modify {set|'config_xmltv_id'} +index_showsplit.scrub {multi(separator="
")|Programi 'index_variable_element'|

|

| +*index_site_id.scrub {multi|$("#tv2-epg-1001").epg|"id":|,"|} +*index_site_channel.modify {remove|"} diff --git a/config/siteini.pack/Denmark/tvtid.tv2.dk.ini b/config/siteini.pack/Denmark/tvtid.tv2.dk.ini new file mode 100644 index 0000000..72aa349 --- /dev/null +++ b/config/siteini.pack/Denmark/tvtid.tv2.dk.ini @@ -0,0 +1,76 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: tvtid.tv2.dk +* @MinSWversion: V0 +* @Revision 2 - [07/07/2016] Blackbear199 +* season fix +* @Revision 1 - [11/06/2016] Blackbear199 +* rewrite +* @Revision 0 - [03/04/2012] Willy De Wilde +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=tvtid.tv2.dk|timezone=UTC+01:00|maxdays=7|cultureinfo=da-DK|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=DK|episodesystem=onscreen} +url_index{url|http://tvtid-app-backend.tv2.dk/api/tvtid/v1/dayviews/|urldate|?ch=|channel|} +url_index.headers {accept=application/json, text/javascript, */*; q=0.01} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|yyyy-MM-dd} +* +index_showsplit.scrub {multi|[{"id"|{|}|]}]} +* +index_start.scrub {single|"start":||,|,} +index_stop.scub {single|"stop":||,|,} +index_title.scrub {single|"title":"||"|"} +index_category.scrub {single|"category":"||"|"} +* +index_temp_1.modify {addstart|'config_site_id'} +index_temp_2.scrub {single|"id":||,|,} +* +index_urlshow.modify {addstart(index_temp_2' not "")|http://tvtid-app-backend.tv2.dk/api/tvtid/v1/channels/'index_temp_1'/programs/'index_temp_2'} +index_urlshow.headers {accept=application/json, text/javascript, */*; q=0.01} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +* +scope_range{(showdetails)|end} +title.scrub {single|"title":"||"|"} +titleoriginal.scrub {single|orgTitle":"||"|"} +description.scrub {single|"desc":"||"|"} +director.scrub {multi(separator=";")|"director":|"name":"|"|}]} +actor.scrub {multi|"actor":|"name":"|"|}]} +productiondate.scrub {single|"prodYear":||,|,} +country.scrub {single(separator=",")|"prodCountry":"||"|"} +* +temp_1.scrub {single|"series":{||}|}} +subtitle.modify {substring(type=regex)|'temp_1' "\"title\":\"(.+?)\""} +episode.modify {substring(type=regex)|'temp_1' "\"episode\":(\d+),"} *episode +*temp_3.modify {calculate(format=F0 type=char)|'episode' #} *enable for 2 digit Exx +*episode.modify {addstart('temp_3' "1")|0} *enable for 2 digit Exx +temp_2.modify {substring(type=regex)|'temp_1' "\"season\":(\d+)"} *season +*temp_4.modify {calculate(format=F0 type=char)|'temp_2' #} *enable for 2 digit Sxx +*temp_2.modify {addstart('temp_4' "1")|0} *enable for 2 digit Sxx +episode.modify {addstart('episode' not "")|E} +episode.modify {addstart('episode' not "")|S'temp_2'} +episode.modify {replace|SE|E} +* +videoaspect.scrub {single|"aspect":"||"|"} +videoquality.scrub {single|"video":{"definition":"||"}|"}} +* +description.modify {remove(type=regex)|\\} +titleoriginal.modify {clear('titleoriginal' 'title')} +productiondate.modify {clear("0")} +end_scope +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://tvtid-app-backend.tv2.dk/api/tvtid/v1/channels} +*index_site_id.scrub {multi|"id":||,|,} +*index_site_channel.scrub {multi|"title":"||"|"} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end + + diff --git a/config/siteini.pack/Denmark/viasat.dk.channels.xml b/config/siteini.pack/Denmark/viasat.dk.channels.xml new file mode 100644 index 0000000..747103b --- /dev/null +++ b/config/siteini.pack/Denmark/viasat.dk.channels.xml @@ -0,0 +1,66 @@ + + + + TV3 + TV3+ + TV3 Puls + DR1 + DR2 + DR3 + DR K + TV2 + TV2 News + TV2 Charlie + TV2 Fri + TV2 Zulu + Kanal 4 + Kanal 5 + DK4 + TV3 Sport 1 + TV3 Sport 2 + TV2 Sport + Eurosport 2 + Canal9 + Viasat Golf + Viasat Film Premiere + Viasat Film Hits + Viasat Film Action + Viasat Film Comedy + Viasat Film Family + Viasat Series + DR Ultra + DR Ramasjang + Boomerang + Disney Channel + Disney XD + Disney Junior + Cartoon Network + Nickelodeon + NickJR + MTV + MTV Hits + Vh1 + VH1 Classic + E! + Comedy Central + Viasat Nature + Viasat Explore + Viasat History + National Geographic Channel + National Geographic HD + Nat Geo Wild + GOD TV + NHK World + BBC World News + CNBC + CNN + Euronews + Sky News + Blue Hustler + Playboy + Penthouse 1 + Penthouse 2 + TV Chile + Russia Today + + \ No newline at end of file diff --git a/config/siteini.pack/Denmark/viasat.dk.ini b/config/siteini.pack/Denmark/viasat.dk.ini new file mode 100644 index 0000000..b0076cd --- /dev/null +++ b/config/siteini.pack/Denmark/viasat.dk.ini @@ -0,0 +1,67 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: viasat.dk +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [12/05/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=viasat.dk|timezone=UTC+01:00|maxdays=8|cultureinfo=da-DK|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=DK|episodesystem=onscreen} +url_index{url|https://comspace.viasat.dk/channel/|urldate|/|channel|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {daycounter|0} +* +index_showsplit.scrub {multi|
} +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {|} +*index_site_id.modify {set|1\|2\|3\|4\|5\|6\|7\|8\|9\|10\|11\|12\|13\|14\|15\|16\|17\|18\|19\|20\|21\|22\|23\|24\|25\|26\|27\|28\|29\|30\|31\|32\|33\|34\|35\|36\|37\|38\|39\|40\|41\|42\|43\|44\|45\|46\|47\|48\|49\|50\|51\|52\|53\|54\|55\|*56\|57\|58\|59\|60\|61\|62\|63\|64\|65\|66\|67\|68\|69\|70\|71\|72\|73\|74\|75\|76\|77\|78\|79\|80\|81\|82\|83\|84\|85\|86\|87\|88\|89\|90\|91\|92} +*index_site_channel.scrub {multi|class="channel_link"|channels_iframe/|.gif|} +* +index_start.scrub {regex||
(\d{2}:\d{2})||} +index_stop.scrub {regex||
\d{2}:\d{2}\s*-\s*(\d{2}:\d{2})||} +index_title.scrub {single|

||

|

} +index_urlchannellogo {url|http://www.novaguide.gr/|
|src="|">|
|||||

|

|} +subdetail_description.scrub {single|} +subdetail_director.scrub {single|Σκηνοθέτης:|
|

|

} +subdetail_productiondate.scrub {single|Έτος Παραγωγής: ||

|

} +subdetail_showicon.scrub {single|
|src="|"| width} +* +*depending on the channels you use you may want to change the setting below +*example,most channels have category - episode so you would not want to use these setting.place a * at the beginning of the 4 lines +*these can be useful for channels that only have the category or episode and help to determin which one to keep +* +episode.modify {clear('episode' == 'category')} *if episode and category are same..remove eposide and keep category +temp_1.modify {calculate(type=word format=F0)|'category' #} *calculate number of words in category +episode.modify {clear('temp_1' >= "2")} *if number words in the episode is greater than or equal to 2 then keep category and remove episode +category.modify {clear('temp_1' < "2")} *if number words in the category is less than 2 then keep episode and remove category +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url |http://www.novaguide.gr/gr/tv-guide} +*index_site_channel.scrub {multi|
||} +*index_site_channel.modify {remove(type=regex)|(\W{2}.*$)} +*index_site_channel.modify {remove| Θέση} +*index_site_id.scrub {multi|
|data-channel-id="|" style=""|
} +** @auto_xml_channel_end + diff --git a/config/siteini.pack/Greece/novaguide_en.gr.channels.xml b/config/siteini.pack/Greece/novaguide_en.gr.channels.xml new file mode 100644 index 0000000..ccc8d6a --- /dev/null +++ b/config/siteini.pack/Greece/novaguide_en.gr.channels.xml @@ -0,0 +1,69 @@ + + + + Vouli + ΕΡΤ HD + ΕΡΤ1 + ΕΡΤ2 + ΕΡΤ3 + Mega + Ant1 + Star + asd + ALPHA + Macedonia TV + Skai TV + novasports 24 HD + Euronews + Epsilon TV + Action24 + novasports extra2 + novacinema1 HD + novacinema2 HD + novacinema1 + novacinema2 + novacinema3 + novacinema4 + FOX Life + FOX + E + novasports extra1 + novasports1 HD + novasports2 HD + novasports1 + novasports2 + novasports3 + novasports4 + novasports6 + novasports7 + Eurosport 1 + Eurosport 2 + Eurosport HD + Motors TV + FOX Sports HD + Discovery + Animal Planet + National Geographic + History + Travel Channel + National Geographic Wild + National Geographic HD + National Geographic Wild HD + Discovery Showcase HD + Disney XD + Boomerang + Disney Channel + Nickelodeon + Mad TV + MAD GREEKZ + MTV + VH1 + MEZZO + CNN + Kontra Channel + Playboy TV + Brazzers TV Europe + Dorcel TV + Hustler HD + + \ No newline at end of file diff --git a/config/siteini.pack/Greece/novaguide_en.gr.ini b/config/siteini.pack/Greece/novaguide_en.gr.ini new file mode 100644 index 0000000..223fb81 --- /dev/null +++ b/config/siteini.pack/Greece/novaguide_en.gr.ini @@ -0,0 +1,66 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: novaguide.gr +* @MinSWversion: V0 +* none +* @Revision 3 - [07/04/2016] Blackbear199 +* rewrite +* @Revision 2 - [08/04/2014] Willy de Wilde +* rewrite +* @Revision 1 - [01/09/2011] Jan van Straaten/Willy de Wilde +* url change +* @Revision 0 - [] +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=novaguide_en.gr|timezone=Europe/Athens|maxdays=7.1|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90|firstshow=now|episodesystem=onscreen} +url_index{url|http://www.novaguide.gr/en/tv-guide/?channelId=|channel|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|dd/MM/yyyy} *not used +* +index_showsplit.scrub {multi|
|
} +* +index_start.scrub {regex||
(\d{2}:\d{2})||} +index_stop.scrub {regex||
\d{2}:\d{2}\s*-\s*(\d{2}:\d{2})||} +index_title.scrub {single|

||

|

} +index_urlchannellogo {url|http://www.novaguide.gr/|
|src="|">|
|||||

|

|} +subdetail_description.scrub {single|} +subdetail_director.scrub {single|Director||

|

} +subdetail_productiondate.scrub {single|Production Year: ||

|

} +subdetail_showicon.scrub {single|
|src="|"| width} +* +*depending on the channels you use you may want to change the setting below +*example,most channels have category - episode so you would not want to use these setting.place a * at the beginning of the 4 lines +*these can be useful for channels that only have the category or episode and help to determin which one to keep +* +episode.modify {clear('episode' == 'category')} *if episode and category are same..remove eposide and keep category +temp_1.modify {calculate(type=word format=F0)|'category' #} *calculate number of words in category +episode.modify {clear('temp_1' >= "2")} *if number words in the episode is greater than or equal to 2 then keep category and remove episode +category.modify {clear('temp_1' < "2")} *if number words in the category is less than 2 then keep episode and remove category +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url |http://www.novaguide.gr/en/tv-guide} +*index_site_channel.scrub {multi|
||} +*index_site_channel.modify {remove(type=regex)|(\W{2}.*$)} +*index_site_channel.modify {remove| Θέση} +*index_site_id.scrub {multi|
|data-channel-id="|" style=""|
} +** @auto_xml_channel_end + diff --git a/config/siteini.pack/Greece/palo.gr.channels.xml b/config/siteini.pack/Greece/palo.gr.channels.xml new file mode 100644 index 0000000..7001571 --- /dev/null +++ b/config/siteini.pack/Greece/palo.gr.channels.xml @@ -0,0 +1,33 @@ + + + + ET1 + NET + ΕΤ3 + MEGA + ANT1 + STAR + ALPHA + ΣΚΑΪ + Nova Cinema 1 + Nova Cinema 2 + Nova Cinema 3 + Μακεδονία TV + NovaSports 1 + NovaSports 2 + NovaSports 3 + NovaSports 4 + Motors TV + CNN International + EuroSport + EuroSport 2 + Discovery + National Geographic Channel + Animal Planet + Travel Channel + History + E! + MAD + MTV + + \ No newline at end of file diff --git a/config/siteini.pack/Greece/palo.gr.ini b/config/siteini.pack/Greece/palo.gr.ini new file mode 100644 index 0000000..a0875e5 --- /dev/null +++ b/config/siteini.pack/Greece/palo.gr.ini @@ -0,0 +1,31 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: palo.gr +* @MinSWversion: V0 +* none +* @Revision 0 - [20/7/2012] Andreas Kontarinis +* none +* @Remarks: +* Greece +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=palo.gr|timezone=UTC+02:00|maxdays=7|cultureinfo=el-GR|charset=utf-8|titlematchfactor=90|episodesystem=onscreen} +url_index{url|http://www.palo.gr/tileorasi/?chdate=|urldate|&channel=|channel} +*http://www.ishow.gr/tileorasi/?chdate=20120720&channel=mega +urldate.format {datestring|yyyyMMdd} +index_showsplit.scrub {multi||
||} +index_start.scrub {single|
|
|rating||
| } +index_category.scrub {single(separator=">" exclude="style=")|
||
} +index_description.scrub {single|} +* +* operations: +index_category.modify{replace|Μουσική εκπομπή|Μουσική} +index_category.modify{replace|Παιδική εκπομπή|Παιδική} +index_category.modify{replace|Αθλητική εκπομπή|Αθλητικά} +index_category.modify{replace|Ντοκιμαντέρ|Ντοκυμαντέρ} +index_category.modify{remove("Άλλο")|Άλλο} +* \ No newline at end of file diff --git a/config/siteini.pack/Greece/tv.pathfinder.gr.channels.xml b/config/siteini.pack/Greece/tv.pathfinder.gr.channels.xml new file mode 100644 index 0000000..4267689 --- /dev/null +++ b/config/siteini.pack/Greece/tv.pathfinder.gr.channels.xml @@ -0,0 +1,89 @@ + + + + ET1 + NET + ΕΤ3 + + ET1 + NET + ΕΤ3 + ΕΡΤ HD + MEGA + ANT1 + STAR + ALPHA + ΣΚΑΪ + Nova Cinema 1 + Nova Cinema 2 + Nova Cinema 3 + MGM CHANNEL + Μακεδονία TV + Κανάλι της Βουλής + Κανάλι της Βουλής + NovaSports 1 + NovaSports 2 + NovaSports 3 + NovaSports 4 + novasports_highlights? + NovaSports 5 + NovaSports 6 + NovaSports 6 + Motors TV + Euronews + EuroSport + EuroSport 2 + EuroSport HD + EuroSport 2 + BBC World News + Deutsche Welle + Bloomberg + Discovery + + Discovery + Science (Discovery) + ID (Discovery) + Discovery HD Showcase + National Geographic Channel + Animal Planet + Travel Channel + History + MAD Hits + MAD + MTV Greece + MTV HD + VH1 + Disney + Disney XD + Disney + Boomerang + Foxlife + Chasse & Peche + KidsCo + Fashion TV + France 24 En + Al Jazeera + Nat Geo Wild HD + ESPN Classic + ESPN America HD + Extreme Sports Channel + OTE Sport 2 + Style TV + Russia Today + France 24 Fr + World Fashion + C Music TV + Baby TV + OTE Sport 1 + OTE Sport 3 + FX + Sundance Channel HD + OTE Sport HD + Nickelodeon HD + TLC + CNBC + ΟΤΕ Σινεμά + iConcerts HD + Luxe TV HD + + \ No newline at end of file diff --git a/config/siteini.pack/Greece/tv.pathfinder.gr.ini b/config/siteini.pack/Greece/tv.pathfinder.gr.ini new file mode 100644 index 0000000..b42478d --- /dev/null +++ b/config/siteini.pack/Greece/tv.pathfinder.gr.ini @@ -0,0 +1,141 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: tv.pathfinder.gr +* @MinSWversion: V0 +* none +* @Revision 0 - [20/7/2012] Andreas Kontarinis +* none +* @Remarks: +* Greece +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=tv.pathfinder.gr|timezone=UTC+02:00|maxdays=7|cultureinfo=el-GR|charset=iso-8859-7|titlematchfactor=90|episodesystem=xmltv_ns} +url_index{url|http://tv.pathfinder.gr/ShowTodayChannelProgramm.asp?|channel|&gotoDay=|urldate} +*http://tv.pathfinder.gr/ShowTodayChannelProgramm.asp?cid=1&gotoDay=1 +urldate.format {datestring|yyyyMMdd} +index_showsplit.scrub {multi||} +index_urlshow {url|http://tv.pathfinder.gr|} +index_date.scrub {single(force include=last)||>||
    ||} +index_showicon.scrub {single||]*>(.*?)||} +actor.scrub {single()|Cast:-||} +director.scrub {single()|Director:-||} + +description.modify {cleanup(tags="<"">")} +actor.modify {substring(type=regex)|style=.+\">(.+\z)} +director.modify {substring(type=regex)|style=.+\">(.+\z)} +actor.modify {replace|,|\|} +director.modify {replace|,|\|} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.whatsonindia.com/smart/ChannelList.aspx?type=all} +*index_site_id.scrub {multi|
    ||
    |
} +*scope.range {(channellist)|end} +*index_site_channel.modify {addstart|'index_site_id'} +*index_site_id.modify {substring(type=regex)|(channelname=.*?&channelid=.*?)&} +*index_site_channel.modify {substring(type=regex)|.+?>([^>]+?)} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Indonesia/indovision.tv.channels.xml b/config/siteini.pack/Indonesia/indovision.tv.channels.xml new file mode 100644 index 0000000..de526dc --- /dev/null +++ b/config/siteini.pack/Indonesia/indovision.tv.channels.xml @@ -0,0 +1,147 @@ + + + + 8i - 151 + AMC - 18 + ANTV - 115 + AXN - 154 + Al Jazeera International - 331 + Animal Planet - 203 + Animax - 157 + Arirang - 351 + Asia Travel Channel - 376 + Asian Food Channel - 240 + Australia Plus - 350 + Auto & Gadget - 108 + BBC Knowledge - 200 + BBC World News - 332 + BabyTV - 40 + BeTV - 155 + Bloomberg - 338 + CBeebies - 41 + CINEMAX - 8 + CNBC Asia - 337 + CNN International - 333 + CTI - 371 + CTS - 384 + CTV - 383 + Cartoon Network - 46 + Celestial Classic Movies - 22 + Celestial Movies - 20 + Channel M - 166 + Channel NewsAsia - 330 + Channel [V] - 272 + Crime Investigation - 207 + DIVA Universal - 162 + DMAX - 225 + DW - 357 + Damai TV - 388 + Discovery Channel - 201 + Discovery Kids - 48 + Discovery Science - 205 + Disney Channel - 45 + Disney Junior - 43 + Disney XD - 44 + E! Entertainment - 242 + ETTV Asia - 378 + ETTV News - 377 + EVE - 246 + Euronews - 334 + FMN - 150 + FOX - 153 + FOX Movies Premium - 14 + FOX Movies Premium HD - 406 + FOX Sport - 303 + FOX Sport 3 - 416 + FOXCrime - 152 + FX - 159 + Fashion TV - 243 + Fight Sports - 304 + Food & Travel Channel - 98 + Food Network - 241 + Formosa Indonesia - 373 + Formosa TV - 372 + Fox Action Movies - 16 + Fox Family Movies - 15 + Fox News - 335 + Fox Sport 2 - 302 + Fyi - 244 + Global News - 387 + Global TV - 81 + Golf Channel - 305 + HBO - 7 + HBO Family - 9 + HBO HD - 401 + HBO Hits - 10 + HBO Signature - 6 + HITS - 169 + Haari Drama - 380 + Haari Movie - 381 + Haari TV - 385 + Haari Variety - 382 + Health & Beauty channel - 90 + History - 206 + Home & Living Channel - 91 + ISM - 300 + Indosiar - 103 + KBS World - 353 + KIX - 161 + Kids Channel - 42 + LIFE - 70 + Life Inspired - 245 + Lifetime - 167 + MAC TV - 379 + MNC Comedy - 104 + MNC Drama - 94 + MNC Entertainment - 86 + MNC Fashion - 95 + MNC Infotainment - 96 + MNC Lifestyle - 89 + MNC Muslim - 92 + MNC News - 84 + MNC Shop - 88 + MNC Sports 1 - 101 + MNC Sports 2 - 102 + MNCTV - 82 + Metro TV - 107 + Movie Channel - 99 + Music channel - 111 + NHK - 354 + Nat Geo Music - 275 + National Geographic Channel - 202 + National Geographic Channel HD - 436 + National Geographic People - 247 + National Geographic Wild - 204 + Nickelodeon - 49 + One Channel - 164 + Premiere - 17 + RCTI - 80 + RED - 21 + SCTV - 93 + SET International - 374 + SET Taiwan - 375 + STAR World - 156 + Sky News - 336 + Sony Channel - 160 + Sundance - 23 + SyFy - 165 + TLC - 248 + TRACE - 276 + TTV - 370 + TVBS - 386 + TVONE - 97 + TVRI - 118 + Thrill - 19 + Toonami - 47 + Trans 7 - 110 + Trans TV - 87 + Universal Channel - 158 + WAKUWAKU JAPAN - 168 + WarnerTV - 163 + ZooMoo - 39 + iBCM - 100 + iConcerts - 273 + iConcerts HD - 471 + iNewsTV - 83 + + \ No newline at end of file diff --git a/config/siteini.pack/Indonesia/indovision.tv.ini b/config/siteini.pack/Indonesia/indovision.tv.ini new file mode 100644 index 0000000..50b4ba4 --- /dev/null +++ b/config/siteini.pack/Indonesia/indovision.tv.ini @@ -0,0 +1,97 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: indovision.tv +* @MinSWversion: 1.1.1/54 +* @Revision 3 - [03/09/2015] Francis De Paemeleere +* - new site implementation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=indovision.tv|timezone=Asia/Jakarta|maxdays=30|cultureinfo=id-ID|charset=ISO-8859-1|titlematchfactor=90|episodesystem=xmltv_ns} +site {compression=gzip} + +url_index{url|https://www.indovision.tv/schedule/table} +urldate.format {datestring|yyyy-MM-dd} +url_index.headers {method=POST} +url_index.headers {referer=https://www.indovision.tv/schedule/table} +url_index.headers {postdata=search_model=channel&aformelement1=aformelement&fdate='urldate'&fchannel='channel'&submit=Search} + +index_showsplit.scrub {multi|class="schedule_table"|||} +index_urlchannellogo {url||||/} + +index_start.scrub {regex||(\d{2}:\d{2})||} +index_duration.scrub {regex||(\d{2}:\d{2})||} +index_title.scrub {regex||(.*?)||} + +index_urlshow.scrub {regex||]*>} + +* get the episode info from the end of the title +index_temp_3.modify {clear} +index_temp_3.modify {substring(type=regex 'index_temp_3'="")|'index_title' "(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*:.*)$"} +index_temp_3.modify {substring(type=regex 'index_temp_3'="")|'index_title' "([Ee][Pp]\s*\d*\s*:.*)$"} +index_temp_3.modify {substring(type=regex 'index_temp_3'="")|'index_title' "(S\s*\d*\s*:.*)$"} +index_temp_3.modify {substring(type=regex 'index_temp_3'="")|'index_title' "(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*)$"} +index_temp_3.modify {substring(type=regex 'index_temp_3'="")|'index_title' "([Ee][Pp]\s*\d*\s*$)"} + +*remove the episode info fromt the title +index_title.modify {remove(type=regex)|"(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*:.*)$"} +index_title.modify {remove(type=regex)|"([Ee][Pp]\s*\d*\s*:.*)$"} +index_title.modify {remove(type=regex)|"(S\s*\d*\s*:.*)$"} +index_title.modify {remove(type=regex)|"(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*)$"} +index_title.modify {remove(type=regex)|"([Ee][Pp]\s*\d*\s*$)"} +index_title.modify {remove(type=regex)|",\s*$"} * remove trailing comma, after removing episode info + +* extract the subtitle from the grabbed episode info (if any) +index_subtitle.modify {substring(type=regex 'index_subtitle'="")|'index_temp_3' "S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*:\s*(.*)\s*$"} +index_subtitle.modify {substring(type=regex 'index_subtitle'="")|'index_temp_3' "[Ee][Pp]\s*\d*\s*:\s*(.*)\s*$"} +index_subtitle.modify {substring(type=regex 'index_subtitle'="")|'index_temp_3' "S\s*\d*\s*:\s*(.*)\s*$"} + +* extract the season and episode from the grabbed episode info (if any) +index_temp_1.modify {substring(type=regex)|'index_temp_3' "S\s*(\d*)"} +index_temp_2.modify {substring(type=regex)|'index_temp_3' "[Ee][Pp]\s*(\d*)"} + +* index_temp_1 = season +* index_temp_2 = episode +index_temp_1.modify {calculate(not="" format=F0)|1 -} +index_temp_2.modify {calculate(not="" format=F0)|1 -} +index_episode.modify {clear} +index_episode.modify {addend('index_temp_1' not="")|'index_temp_1'} +index_episode.modify {addend|.} +index_episode.modify {addend('index_temp_2' not="")|'index_temp_2'} +index_episode.modify {addend|.} +index_episode.modify {clear(="..")} + + +title.scrub {regex||class='subpage_title highlight_title'[^>]*>([^<]*)]*>([^<]*)]*>} + +*remove the episode info fromt the title +title.modify {remove(type=regex)|"(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*:.*)$"} +title.modify {remove(type=regex)|"([Ee][Pp]\s*\d*\s*:.*)$"} +title.modify {remove(type=regex)|"(S\s*\d*\s*:.*)$"} +title.modify {remove(type=regex)|"(S\s*\d*\s*,\s*[Ee][Pp]\s*\d*\s*)$"} +title.modify {remove(type=regex)|"([Ee][Pp]\s*\d*\s*$)"} +title.modify {remove(type=regex)|",\s*$"} * remove trailing comma, after removing episode info + +description.modify {replace|
|\n} * alternative: places other language on a new line + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index.headers {method=POST} +*url_index.headers {referer=https://www.indovision.tv/schedule/table} +*url_index.headers {postdata=search_model=channel&aformelement1=aformelement&fdate='urldate'&fchannel=7&submit=Search} +*index_site_id.scrub {regex||^.*?]*name=\"fchannel\"[^>]*>\s*(]*value=\".*?\"[^>]*>.*?\s*)*||} +*scope.range {(channellist)|end} +*index_site_channel.modify {addstart|'index_site_id'} +*index_site_channel.modify {substring(type=regex)|]*value=\".+?\"[^>]*>\s*(.+?)\s*} +*index_site_channel.modify {replace(type=regex)|\s{1,}| } +*index_site_id.modify {substring(type=regex)|]*value=\"(.+?)\"[^>]*>.+?} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Indonesia/jkt.firstmedia.com.channels.xml b/config/siteini.pack/Indonesia/jkt.firstmedia.com.channels.xml new file mode 100644 index 0000000..7087c27 --- /dev/null +++ b/config/siteini.pack/Indonesia/jkt.firstmedia.com.channels.xml @@ -0,0 +1,209 @@ + + + + ATV + ANTV + TV ONE + TVRI NASIONAL + JAK-TV + METRO TV + TRANS 7 + TRANS TV + SCTV + ONE HD + DAAITV + INDOSIAR + JTV + REFORMED 21 + HI! TV + EUROSPORT + O CHANNEL + LUXE TV HD + FOX MOVIES PREMIUM HD + STAR WORLD + NAT GEO PEOPLE + AXN + ANIMAX + EURONEWS + E! ENTERTAINMENT + DMAX + JAKARTA GLOBE NEWS CHANNEL + TLC + EVE + CINEMAX HD + ASIAN FOOD CHANNEL + LITV HD + FASHION TV + BERITA SATU + FOX FAMILY MOVIES HD + DISCOVERY CHANNEL + DISCOVERY SCIENCE + ANIMAL PLANET + NATIONAL GEOGRAPHIC CHANNEL + DISNEY CHANNEL + DISNEY JUNIOR + NICKELODEON + TOONAMI + CARTOON NETWORK + Sport Illustrad + FOX SPORTS2 + AXN HD + FOX SPORTS + SETANTA + SONY ENTERTAINMENT TELEVISION + STAR PLUS + CARTOON NETWORK HD + MAX + PHOENIX INFO NEWS + GUANG DONG + MIX + HBO SIGNATURE HD + UNIVERSAL HD + CCTV 4 + MTV ASIA + CHANNEL [V] INTL + TVB8 + FASHION ONE HD + BBC WORLD + BLOOMBERG TELEVISION + CHANNEL NEWS ASIA + FOX NEWS CHANNEL + CNN INTERNATIONAL + CNN HEADLINE NEWS + CNBC + AUSTRALIA PLUS + AL' JAZEERA ARABIC + ARIRANG + DW (DEUTSCH) + KTV + NHK WORLD + RAI ITALIA + FOX CRIME HD + TV E + HBO + FRANCE 24 + CINEMAX + HBO FAMILY HD + FOX MOVIES PREMIUM + DIVA UNIVERSAL + - NOT IN USE - + HIGH TV 3D + KOMPAS TV + NET. + J'GO + CAHAYA TV + STAR WORLD HD + STAR GOLD + XINGKONG + SWARA + BABY FIRST + HBO HD + FOX SPORTS 3 HD + DANGDUTZ + HI!TV HD + CCTV NEWS + LITV + KBS + CHANNEL NEWSASIA + HBO SIGNATURE + HBO HITS + HBO FAMILY + SMILE - JCTV + FX + FOX + FOX CRIME + NAT GEO WILD + MIX HD + MAC TV + HBO HITS HD + SYFY HD + TRAVEL CHANNEL HD + EUROSPORT HD + NAT GEO WILD HD + BERITA SATU HD + NATIONAL GEOGRAPHIC CHANNEL HD + FOX HD + WARNER TV + TRU TV + NBA TV + PHOENIX CHINESE CHANNEL + AL' JAZEERA INTERNATIONAL + Sport Illustrad HD + FOX FAMILY MOVIES + DISCOVERY HD WORLD + FX HD + NAT GEO PEOPLE HD + TVB XINGHE + NBA TV HD + TV 5 + NET.TV HD + J'GO HD + WARNER TV HD + SETANTA HD + BEIN SPORT 1 HD + BEIN SPORT 1 + BERITA SATU WORLD + BERITA SATU WORLD HD + BLOOMBERG INDONESIA + FIGHT SPORTS + FIGHT SPORTS HD + HISTORY HD + LIFETIME HD + BOOMERANG HD + BERITA SATU SPORTS 1 + BBC WORLD NEWS HD + CHANNEL M HD + MTV LIVE HD + SPARE + CNN INT.HD + STAR CRICKET HD + TVBS ASIA + TVBS JADE + TVBS NEWS + FYI + CI HD + TV PARLEMEN + STAR CHINESE CHANNEL + KOMPAS HD + SONY MIX + TRU TV HD + STAR CHINESE MOVIES + FOX ACTION MOVIES HD + DRTV + FOODIE + KARAOKE + LEJEL HOME SHOPPING + FOODIE HD + SKY NEWS HD + WAKUWAKU JAPAN HD + Sport Illustrad 2 + BALAI KOTA + LUMEN NETWORK + SONY SAB + STAR CHINESE MOVIE HD + COLORS + E! ENTERTAINMENT HD + DIVA HD + NHK WORLDTV HD + JAKARTA GLOBE NEWS CHANNEL HD + TEST NN + BERITA SATU SPORTS HD + COMEDY NETWORK + FOX SPORTS HD + FOX SPORTS 2 HD + MEZZO + Sports Illustrad 2HD + DISNEY HD + MTV India + BERITA SATU SPORTS 2 + BERITA SATU SPORTS 1 HD + BERITA SATU SPORTS 2 HD + DA VINCI LEARNING HD + SPH CHANNEL + BALAIKOTA CHANNEL + Z HIBURAN + Z BIOSKOP + DW + SILOAM TV + + \ No newline at end of file diff --git a/config/siteini.pack/Indonesia/jkt.firstmedia.com.ini b/config/siteini.pack/Indonesia/jkt.firstmedia.com.ini new file mode 100644 index 0000000..fa7957a --- /dev/null +++ b/config/siteini.pack/Indonesia/jkt.firstmedia.com.ini @@ -0,0 +1,49 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: jkt.firstmedia.com +* @MinSWversion: V1.1.1/53 +* @Revision 1 - [01/06/2016] Blackbear199 +* - minor fixes +* @Revision 0 - [20/05/2014] Jan van Straaten +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=jkt.firstmedia.com|timezone=Asia/Jakarta|maxdays=7|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90|firstshow=1} +* +urldate.format {datestring|yyyy-MM-dd} +url_index{url|http://jkt.firstmedia.com/tv-guides/selected_date:|urldate|/selected_channels:|channel|/get.json} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +url_index.headers {customheader=X-Requested-With=XMLHttpRequest} +url_index.headers {accept=application/json, text/javascript, */*; q=0.01} +url_index.headers {referer=http://jkt.firstmedia.com/tv-guides/} +index_showsplit.scrub {regex(debug)||\{\"(title\".*?)\}\}||} +* +index_start.scrub {regex||\"date\":\"(.+?)"||} +index_title.scrub {regex||title\":\"(.*?)\",\"||} +index_title.modify {cleanup(style=unidecode)} +index_subtitle.scrub {regex||\"description\":\"(.*?)\",\"||} +index_subtitle.modify {clear(= " ")} +index_subtitle.modify {cleanup(style=unidecode)} +index_description.scrub {regex||\"long_description\":\"(.*?)\",\"||} +index_description.modify {clear(= " ")} +index_description.modify {cleanup(style=unidecode)} +index_description.modify {remove|\\"} +* episode extractie fails because the info is spread and of inconsequent syntax +*index_episode.modify {substring(type=regex)|'index_subtitle' "(\AEp \d+?)"} +*index_subtitle.modify {clear('index_episode' not "")} +*index_urlchannellogo {url| } +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index {url|http://jkt.firstmedia.com/shows/channels/autocomplete.json} +*index_site_channel.scrub {regex||\{\"id\":\".+?\",\"label\":\"(.+?)\"\},||} +*index_site_id.scrub {regex||\{\"id\":\"(.+?)\",\"label\":\".+?\"\},||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Indonesia/telkomvision.com.channels.xml b/config/siteini.pack/Indonesia/telkomvision.com.channels.xml new file mode 100644 index 0000000..bc941bb --- /dev/null +++ b/config/siteini.pack/Indonesia/telkomvision.com.channels.xml @@ -0,0 +1,92 @@ + + + + AL JAZEERA INT + ALEGRO + ALIF TV + ALQURAN ALKARIM + ANANDA CHANNEL + ANIMAL PLANET + ANIMAX + ANTV + ARENA + ASIAN FOOD CHANNELs + AUSTRALIA NETWORK + AXN CHANNEL + B CHANNEL + BBC + BERITA SATU + beTV + BIOGRAPHY + BLOOMBERG + CARTOON NETWORK + CELESTIAL + CHANNEL [V] + CINEMAX + CNBC + CNN + CRIME INVESTIGASI + DISC. SCIENCE + DISCOVERY + DISCOVERY HOME AND HEALTH + DISCOVERY TURBO + DISNEY + DISNEY JUNIOR + DIVA UNIVERSAL + DWTV ASIA+ + E! ENTERTAIMENT + EURONEWS + FASHION TV + FOX + FOX CRIME + FOX FAMILY MOVIES + FOX MOVIES PREMIUM + FRANCE24 + FX + GLOBAL + HBO FAMILY + HBO HITS + HISTORY + HOME BOX OFFICE + HOME BOX OFFICE SIGNATURE + INDOSIAR + ITV CHoICE + JIM JAM + KBS WORD + KIX + KOMPAS TV + LITV HD AND SD + METRO TV + MGM + MNCTV + MTV ASIA + MTV CHINA + NAT GEO ADVENTURE + NAT GEO CHANNEL + NAT GEO WILD + NEWS ASIA + NHK PREMIUM + NICK JR + NICKLEODEON + OUTDOOR CHANNEL + RCTI + SCTV + SONY ENTERTAIMENT + STAR SPORT + STAR WORLD + STYLE NETWORK + SYFY + THRILL + TOONAMI + TRACE URBAN + TRACESPORT + TRANS 7 + TRANS TV + TRAVEL CHANNEL + TRAVEL LIVING CHANNEL + TV EDUKASI + TV ONE + TVRI + UNIVERSAL + + \ No newline at end of file diff --git a/config/siteini.pack/Indonesia/telkomvision.com.ini b/config/siteini.pack/Indonesia/telkomvision.com.ini new file mode 100644 index 0000000..b71b9c1 --- /dev/null +++ b/config/siteini.pack/Indonesia/telkomvision.com.ini @@ -0,0 +1,59 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: telkomvision.com +* @MinSWversion: V1.1.1/52 +* @Revision 0 - [12/02/2014] Steve Wildmore +* creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=telkomvision.com|timezone=UTC+07:00|maxdays=1|cultureinfo=id-ID|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen} + +url_index{url|http://www.telkomvision.com/soap/timetable} + +index_variable_element.modify {clear(scope=datelogo)} +index_variable_element.modify {addstart(scope=datelogo)|data-location="'config_site_id'">

'config_display_name'

} + +index_showsplit.scrub {multi|'index_variable_element'|||
} +index_showsplit.modify {replace|
"-1" max=50)|end} +index_temp_2.modify {calculate(format=F0)|'index_temp_3' 'index_temp_1' +} * pointer to element = cur element + tot/2 + +index_temp_4.modify {substring(type=element)|'index_showsplit' 'index_temp_3' 1} +index_temp_5.modify {substring(type=element)|'index_showsplit' 'index_temp_2' 1} +index_temp_6.modify {addstart|'index_temp_5'} +index_temp_6.modify {addstart|###'index_temp_4'} + +index_temp_3.modify {calculate(format=F0)|1 -} * decrease index +end_loop +index_showsplit.modify {clear} +index_showsplit.modify {addstart|'index_temp_6'} +index_showsplit.modify {replace|###|\|} +index_temp_6.modify {clear} + + +index_start.scrub {single|| - |} +index_title.scrub {single||

|

|

} +index_description.scrub {single|data-start=|">|

} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_channel.scrub {regex||data-location="\d*">

([^<]*)

||} +*index_site_id.scrub {regex||data-location="(\d*)">

[^<]*

||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Indonesia/transvision.co.id.channels.xml b/config/siteini.pack/Indonesia/transvision.co.id.channels.xml new file mode 100644 index 0000000..9348566 --- /dev/null +++ b/config/siteini.pack/Indonesia/transvision.co.id.channels.xml @@ -0,0 +1,116 @@ + + + + Al Jazeera + Al Quran Al Kareem TV + AMC + Animax + AniPlus + ANTV + AXN HD + BabyFirst TV + beIN 1 SPORTS HD + beIN 2 SPORTS HD + beIN 3 SPORTS HD + BeritaSatu + Bioskop Indonesia + Bloomberg TV Asia + Boomerang HD + C Music TV + Cartoon Network HD + CCTV 4 + CCTV 9 DOCUMENTARY + CCTV News + Celestial Movies + Channel M HD + Channel NewsAsia + Channel [V] HD + Cinema World HD + CINEMAX HD + CNBC Asia + CNN Indonesia HD + CNN International HD + Comedy Central Asia + Crime Investigation HD + Da Vinci Learning + DAAI TV + Disney Channel HD + Disney Junior + DIVA HD + Duck TV + Dunia Anak + Dunia Lain + DW + E! HD + Eat N Go + Euronews + Fashion One HD + Fashion TV HD + Fight Sports HD + FOX Action Movies HD + FOX Crime HD + FOX Family Movies HD + FOX HD + FOX Movies Premium HD + FOX Sports HD + FOX Sports 2 HD + FOX Sports 3 HD + FOX Sports News + France24 + FX HD + Fyi, HD + GEM + GINX TV + Global TV + Golf HD + HBO Family HD + HBO HD + HBO Hits HD + HBO Signature + History HD + Indosiar + JakTV + JENDELA + KBS World HD + Khazanah + KIX HD + Kompas TV + Life Inspired HD + Lifetime HD + Luxe TV HD + MaLe + Metro TV + MNCTV + MTV Live + National Geographic HD + National Geographic People HD + National Geographic Wild HD + NHK World Premium + Nick Jr. + Nickelodeon + Oh!K HD + Outdoor Channel + RCTI + RTV + SCTV + Showcase + SONY Channel + STAR Chinese Channel + STAR Chinese Movies HD + STAR Chinese Movies Legend + STARWorld HD + Syfy + T Music + Tahan Tawa + Thrill + Toonami + TRANS TV HD + TRANS7 HD + tvOne + TVRI + Universal Channel + WakuWaku Japan + Warner TV HD + Z Bioskop + + \ No newline at end of file diff --git a/config/siteini.pack/Indonesia/transvision.co.id.ini b/config/siteini.pack/Indonesia/transvision.co.id.ini new file mode 100644 index 0000000..1d76409 --- /dev/null +++ b/config/siteini.pack/Indonesia/transvision.co.id.ini @@ -0,0 +1,77 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: transvision.co.id +* @MinSWversion: 1.1.1/56.14 +* @Revision 1 - [17/02/2016] Jan van Straaten +* - fix of scope, added episodesystem +* @Revision 0 - [14/02/2016] Jan van Straaten +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +* +site {url=transvision.co.id|timezone=Asia/Jakarta|maxdays=31.1|cultureinfo=id-ID|charset=UTF-8|titlematchfactor=90|nopageoverlaps} +site {episodesystem=onscreen} +* This site has a full month guide in the index page +* It is probably renewed somewhere at the end or the beginning of the month +* +url_index{url|http://transvision.co.id/jadwalacara/epg.html} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +url_index.headers {method=POST} +url_index.headers {accept=text/html, application/xhtml+xml, image/jxr, */*} +url_index.headers {host=transvision.co.id} +url_index.headers {referer=http://transvision.co.id/jadwalacara/epg.html} +url_index.headers {postdata=ValidateEPG%5Bchannel_name%5D='channel'&ValidateEPG%5Bsinopsis%5D=&ValidateEPG%5Btanggal%5D=&yt0=Proses} +scope.range {(splitindex)|end} +index_showsplit.scrub {regex||(.+?\d{2}:\d{2}:\d{2}\d{2}:\d{2}:\d{2}.+?)||} +index_showsplit.modify {cleanup(removeduplicates)} +* contains all shows for a complete month. +* remove the ones already past +index_temp_3.modify {calculate(format=date,vba)|'now'} +loop {(each "index_temp_1" in 'index_showsplit')|end} +* extract the date +index_temp_2.modify {substring(type=regex)|'index_temp_1' "(\d{2}-\w{3}-\d{2})"} +index_temp_2.modify {replace(type=regex)|"\w{3}(-)\d{2}"|-20} * complete to full year +index_temp_2.modify {replace|-|/} *standard separator / +index_temp_2.modify {calculate(format=date,vba)} +* keep only today or later +index_temp_6.modify {addend('index_temp_2' >= 'index_temp_3')|'index_temp_1'####} +end_loop +index_temp_6.modify {replace|####|\n\n\|} * make multi +* remove the tags between date and starttime, (easier starttime scrub) +index_temp_6.modify {replace(type=regex)|"\d{2}-\w{3}-\d{2}()\d{2}:\d{2}:\d{2}"| } +index_showsplit.modify {set()|'index_temp_6'} +end_scope +scope.range {(indexshowdetails)|end} +index_start.scrub {regex(pattern="dd-MMM-yy HH:mm:ss")||(\d{2}-\w{3}-\d{2}\s\d{2}:\d{2}:\d{2})||} +*index_stop.scrub {regex(pattern="HH:mm:ss")||\s\d{2}:\d{2}:\d{2}(\d{2}:\d{2}:\d{2})||} +index_title.scrub {regex||\d{2}:\d{2}:\d{2}(.+?)||} +index_description.scrub {regex||\d{2}:\d{2}:\d{2}.+?(.+?)||} +* index_description.modify {addstart|'index_title'# } *testing only +index_episode.modify {substring(type=regex)|'index_title' "(S\d{1,2}-\d+)"} +index_episode.modify {substring("" type=regex)|'index_title' "(S\d+)\z"} +index_episode.modify {substring("" type=regex)|'index_title' "(Season\s{0,1}\d+)\z"} +index_title.modify {remove|'index_episode'} +* +index_subtitle.modify {substring(type=regex)|'index_title' ":(.+?)\z"} +index_title.modify {remove|:'index_subtitle'} +index_episode.modify {replace|Season |S} +index_title.modify {remove(type=regex)|"(-\s*)\z"} +index_subtitle.modify {remove(type=regex)|"(-\s*)\z"} +end_scope +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +** disable the line: url_index.headers {method=POST} !! +*url_index.headers {method=GET} +*index_site_channel.scrub {regex||||} +*index_site_id.scrub {regex||||} +*scope.range {(channellist)|end} +*index_site_channel.modify {remove(type=element)|0 1} * the first is a control +*index_site_id.modify {remove(type=element)|0 1} * the first is a control +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/aljazeerasport.tv.channels.xml b/config/siteini.pack/International/aljazeerasport.tv.channels.xml new file mode 100644 index 0000000..3c2a93e --- /dev/null +++ b/config/siteini.pack/International/aljazeerasport.tv.channels.xml @@ -0,0 +1,21 @@ + + + + Al Jazeera Sport News + Al Jazeera Sport Global + Al Jazeera Sport 1 + Al Jazeera Sport 2 + Al Jazeera Sport +1 + Al Jazeera Sport +2 + Al Jazeera Sport +3 + Al Jazeera Sport +4 + Al Jazeera Sport +5 + Al Jazeera Sport +6 + Al Jazeera Sport +7 + Al Jazeera Sport +8 + Al Jazeera Sport +9 + Al Jazeera Sport +10 + Al Jazeera Sport HD1 + Al Jazeera Sport HD2 + + \ No newline at end of file diff --git a/config/siteini.pack/International/aljazeerasport.tv.ini b/config/siteini.pack/International/aljazeerasport.tv.ini new file mode 100644 index 0000000..9486cc4 --- /dev/null +++ b/config/siteini.pack/International/aljazeerasport.tv.ini @@ -0,0 +1,33 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: aljazeerasport.tv +* @MinSWversion: +* @Revision 1 - [17/08/2014] Francis De Paemeleere +* fix neutral cultureinfo +* @Revision 0 - [16/05/2013] Willy de Wilde +* - creation +* @Remarks: +* - none +* @header_end +**------------------------------------------------------------------------------------------------ +* +site {url=aljazeerasport.tv|timezone=UTC+02:00|maxdays=7.1|cultureinfo=en-US|charset=UTF-8|titlematchfactor=1} +url_index{url|http://www.en.aljazeerasport.tv/Schedule/tab/2/channel/|channel|} +urldate.format {datestring|yyyyMMdd} * not used +* +index_showsplit.scrub {multi|
||
} +* +index_date.scrub {single(force include=first)|
|

|<|

} +index_start.scrub {single||||||||" >|} +*index_site_id.scrub {multi|
|
||} + +index_start.modify {replace|a. m.|am} +index_start.modify {replace|p. m.|pm} +index_stop.modify {replace|a. m.|am} +index_stop.modify {replace|p. m.|pm} + +index_title.scrub {regex||^.*?class="div_program_title_on_channel"[^>]*>(.*?)
||} +index_subtitle.scrub {regex||^.*?class="div_episode_programa_on_channel"[^>]*>(.*?)
||} +index_showicon.scrub {regex||^.*?src=\"([^\"]*)\"||} +index_urlchannellogo.scrub {regex||^.*?class=\"div_MainPicture\"[^>]*>\s*]*>[^/]*src=\"([^\"]*)\"||} + +index_subtitle.modify {replace |Temporada |S} +index_subtitle.modify {replace |Episodio |Ep} +index_episode.scrub {single |div_episode_programa_on_channel">|||
} +index_episode.modify {replace |Temporada |S} +index_episode.modify {replace |Episodio |Ep} + +*index_temp_1.modify {substring(type=regex)|'index_subtitle' "\s*Temporada\s*(\d*)\s*"} +*index_temp_2.modify {substring(type=regex)|'index_subtitle' "\s*Episodio\s*(\d*)\s*"} +*index_subtitle.modify {remove(type=regex)|"\s*Temporada\s*\d*\s*"} +*index_subtitle.modify {remove(type=regex)|"\s*Episodio\s*\d*\s*"} +*index_subtitle.modify {remove(type=regex)|"<[^>]*>"} +*index_subtitle.modify {remove(type=regex)|"^\s*\!\?\!\?\!\s*$"} *| is converted to !?!?! by WG++ +*index_subtitle.modify {remove(type=regex)|"^\s*$"} + +* index_temp_1 = season +* index_temp_2 = episode +*index_temp_1.modify {calculate(not="" format=F0)|1 -} +*index_temp_2.modify {calculate(not="" format=F0)|1 -} +*index_episode.modify {clear} +*index_episode.modify {addend('index_temp_1' not="")|'index_temp_1'} +*index_episode.modify {addend|.} +*index_episode.modify {addend('index_temp_2' not="")|'index_temp_2'} +*index_episode.modify {addend|.} +*index_episode.modify {clear(="..")} + +index_start.modify {remove(type=regex)|<[^>]*>} +index_stop.modify {remove(type=regex)|<[^>]*>} +index_subtitle.modify {remove(type=regex)|<[^>]*>} +index_title.modify {remove(type=regex)|<[^>]*>} +index_subtitle.modify {remove(type=regex)|<[^>]*>} + +index_subtitle.modify {cleanup} +index_title.modify {cleanup} +index_subtitle.modify {cleanup} + +scope.range {(indexshowdetails)|end} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the detail pages +index_urlshow {url ||
||
|} +description.scrub {single|"summary">|"description">|
|} +actor.scrub {multi |itemprop="actors"|itemprop="name">||||} +category.scrub {multi |Tipo:|nowrap" >||} +country.scrub {multi |Paises de Origen:|nowrap" >||} +producer.scrub {multi |itemprop="producer"|nowrap" >||} +composer.scrub {multi |Música:|nowrap" >||} +rating.scrub {single |Clasificación:|nowrap" >||} +writer.scrub {single |Basado en:|nowrap" >||} +titleoriginal.scrub {single |Título en Idioma Original:|nowrap" >||} +end_scope +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.gatotv.com/guia_tv/completa} +*index_site_id.scrub {regex||class=\"\s*tbl_EPG_row[^>]*>(.*?)||} +*scope.range {(channellist)|end} +*index_site_channel.modify {addstart|'index_site_id'} +*index_site_id.modify {substring(type=regex)|]*.*?href=\"([^\"]*)\"[^>]*title=\"[^\"]*\"[^>]*>} +*index_site_id.modify {remove|http://www.gatotv.com/canal/} +*index_site_channel.modify {substring(type=regex)|]*.*?href=\"[^\"]*\"[^>]*title=\"([^\"]*)\"[^>]*>} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/mbc.net.channels.xml b/config/siteini.pack/International/mbc.net.channels.xml new file mode 100644 index 0000000..32af34d --- /dev/null +++ b/config/siteini.pack/International/mbc.net.channels.xml @@ -0,0 +1,11 @@ + + + + MBC 2 + MBC 4 + MBC MAX + MBC ACTION + MBC BOLLYWOOD + عربي + + \ No newline at end of file diff --git a/config/siteini.pack/International/mbc.net.ini b/config/siteini.pack/International/mbc.net.ini new file mode 100644 index 0000000..1838cf5 --- /dev/null +++ b/config/siteini.pack/International/mbc.net.ini @@ -0,0 +1,35 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: mbc.net +* @MinSWversion: 1.1.1/54 +* @Revision 2 - [06/10/2015] Francis De Paemeleere +* - fix showsplit for current running show +* @Revision 1 - [05/10/2015] Francis De Paemeleere +* - adjust start scrubbing part +* @Revision 0 - [24/08/2014] Jan van Straaten, Hicks- creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=mbc.net|timezone=GMT|maxdays=6.1|cultureinfo=en-US|charset=utf-8|titlematchfactor=90} + +url_index{url|http://www.mbc.net|channel} + +index_showsplit.scrub {multi|
\s*(\d{2}\:\d{2})\s*GMT\s*||} +index_description.scrub {single|

||

|} +index_title.scrub {single|

||

|} + +index_description.modify{cleanup} +index_title.modify{cleanup(tags="<"">")} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the filmon.channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.mbc.net/en.html} +*index_site_id.scrub {multi|
  • } +*index_site_channel.scrub {multi|
  • ||
  • } +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/mi.tv.ini b/config/siteini.pack/International/mi.tv.ini new file mode 100644 index 0000000..cbd4523 --- /dev/null +++ b/config/siteini.pack/International/mi.tv.ini @@ -0,0 +1,103 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: mi.tv +* @MinSWversion: +* @Revision 1 - [14/06/2016] Blackbear199 +* - change start/stop times to UTC +* @Revision 0 - [01/02/2016] 1NSdbZVbpZDX +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=mi.tv|timezone=UTC|maxdays=6|cultureinfo=es-AR|charset=UTF-8|titlematchfactor=90|nopageoverlaps} +*site {ratingsystem=ES|episodesystem=onscreen|grabengine=|firstshow=0|firstday=0000000} + +urldate.format {datestring|yyyy-MM-dd} +url_index {url |http://mi.tv/api/epg/guide/|urldate|?channelId=|channel|&timeZoneOffset=-240} +*url_index {url |http://mi.tv/ar/canales/discovery-civilization/2016-10-01} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages + +index_showsplit.scrub {multi|"program":||shareurl"\},|} +*index_showsplit.modify {replace|\u0026|&} +index_showsplit.modify {cleanup} + +*index_date.scrub {single|} +index_start.scrub {single |"beginTimeMillis":||,|,} +index_stop.scrub {single|"endTimeMillis":||,|,} +*index_variable_element.scrub {single (debug)|programType":"||","|} + +index_title.scrub {regex ||(?:"seriesId".+?)(?:"name".+?).([^"]*)"\|(?:"programType".+?)(?:"MOVIE".+?)(?:"title".+?).([^"]*)"\|(?:"programType".+?)(?:"OTHER".+?)(?:"title".+?).([^"]*)"||} + +index_titleoriginal.scrub {single |originalTitle":"||"|,"} +index_titleoriginal.modify {replace |\u0027|'} +index_description.scrub {single|synopsisLong":"||",|} +index_description.modify {replace |\\"|"} +*index_urlchannellogo {url| } +index_temp_4.scrub {single |programType":"||","|} +index_temp_4.modify {cleanup (style=name)} + +index_showicon.scrub {single |medium":"||"|} +index_category.scrub {single (separator="/")|category":"||",|} +index_category.modify {addstart |'index_temp_4' } +index_category.modify {replace |Tv Episode|Series} +index_category.modify {replace |Movie|Cine} +*index_episode.scrub {single ||||} +index_temp_2.scrub {regex ||\{"number":(\d+)\},"||} *for episode +index_temp_2.modify {addstart (notnull)|S} +index_temp_3.modify {substring (type=regex)|'config_site_id' "^[A-Za-z]{2}"} + +scope.range {(indexshowdetails)|end} +index_temp_1.scrub {single |uri":"||",|} +index_urlshow.modify {set |http://mi.tv/api/epg/programs/country/'index_temp_3'/uri/'index_temp_1'} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the detail pages +end_scope + +scope.range {(showdetails)|end} + +title.scrub {regex ||(?:"seriesId".+?)(?:"name".+?).([^"]*)"\|(?:"programType".+?)(?:"MOVIE".+?)(?:"title".+?).([^"]*)"\|(?:"programType".+?)(?:"OTHER".+?)(?:"title".+?).([^"]*)"||} +subtitle.scrub {regex ||(?:"programType".+?)(?:"TV_EPISODE".+?)(?:"title".+?).([^"]*)"||} +subtitle.modify {replace |\u0027|'} +subtitle.modify {replace|\u0026|/} +*titleoriginal.scrub {single|} +*description.scrub {multi|} +director.scrub {regex ||([^"]*)(?:","type":"DIRECTOR".+?)||} +actor.scrub {regex ||([^"]*)(?:","type":"ACTOR".+?)||} +*presenter.scrub {single|} +*producer.scrub {single|} +*writer.scrub {single|} +*composer.scrub {single|} +rating.scrub {regex ||(?:"imdbRating":+?)(\d+\.\d+)||} +*ratingicon.scrub {multi|} +category.scrub {single (separator=" \u0026 ""/"" ")|"genre":"||","|} +*category.modify {replace|\u0026|/} +category.modify {cleanup (style=name)} +productiondate.scrub {single|year":||,"|} +*starrating.scrub {single|} +episode.scrub {single|episodeNumber":||,"|} +episode.modify {addstart (notnull)|-Ep.} +episode.modify {addstart (notnull)|'index_temp_2'} +episode.modify {replace |S|Temp.} +subtitle.modify {addend (notnull)| 'episode'} +*premiere.scrub {single|} +*previousshown.scrub {single|} +*mdb_episode_id.scrub {single (debug)|imdbId":"||"|,"} +end_scope +* +* operations: + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +**country codes: +**ar, co, br, mx, py, gt, hn,sv +** substitute 2 digit code at the end of url_index +** @auto_xml_channel_start +*url_index {url|http://mi.tv/api/epg/channels/country/py} +*index_site_channel.scrub {multi|uri":"||",|} +*index_site_channel.modify {replace|-| } +*index_site_channel.modify {replace|\u0026|&} +*index_site_channel.modify {cleanup(style=name)} +*index_site_id.scrub {multi|channelId":"||",|} +end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/mi.tv_channelsALL.xml b/config/siteini.pack/International/mi.tv_channelsALL.xml new file mode 100644 index 0000000..05b7460 --- /dev/null +++ b/config/siteini.pack/International/mi.tv_channelsALL.xml @@ -0,0 +1,889 @@ + + + + + Canal Rcn + Caracol + Canal Uno + Senal Colombia + Citytv + Telecaribe + Telemedellin + Rcn Nuestra Tele + Space + Fox + Fox Movies + Tnt + Amc + Hbo + Cinemax + Warner + A E Mundo + Discovery Channel + Discovery Home And Health + History + Win Sports + Fox Sports + Fox Sports 2 + Espn + Disney Multicountry + Discovery Kids + Cartoon Network + Boomerang Cartoon + Bbc World + Cablenoticias + Cnn En Espanol + Russia Today Hd + Tvn 24 H + A E Mundo Hd + Amc Hd + Axn + Axn Hd + Aliento Vision + Animal Planet + Antena3 + Az Corazon + Az Mundo Hd + Azteca 13 + Bbce + Bloomberg + Cbeebies + Cnn + Cali Tv + Canal 14 Cali + Canal C + Canal Capital + Canal Cartagena + Senal Institucional Rtvc + Canal Tr3ce + Tro + Canal U + Canal De Las Estrellas + Canal De Las Estrellas Hd + Caracol Hd + Cinecanal Sd Hd + Cinelatino + Cinema + Click + Comedy Central + Comedy Central Hd + Concert Channel + Concert Channel Hd + Cosmovision + Cosmovision Hd + Cristo Vision + Dhe + Deutsche Welle Amerika + Discovery Civilization + Discovery Hd Lat + Discovery Kids Hd + Discovery Science + Discovery Turbo + Disney, Jr. Norte + Disney Xd Multicountry + Dia Tv + E + Espn 1 + Espn 2 + Espn 3 + Espn 3 Hd + Ewtn + El Tiempo + Enlace + Enlace Juvenil + Eurochannel + F1 Latin America + Fox Ngc Hd + Fox 1 Este + Fox 1 Hd + Fox 1 Oeste + Fox Action + Fox Action Hd + Fox Action Oeste + Fox Cinema + Fox Classics + Fox Comedy + Fox Comedy Hd + Fox Family + Fox Family Hd + Fox Life + Fox Movies Hd + Fox News Internacional + Fox Sports 2 Hd + Fox Sports 3 + Fox Sports 3 Hd + Fox Sports Hd + Fx + Fx Hd + Fashion One Hd + Film Zone + Film Zone Hd + Film Arts + Glitz + Globovision + Gol Tv + Golden + Golden Premier Hd + Golf Channel + Golf Channel Hd + H2 + Hbo 2 + Hbo 2 Hd + Hbo Family + Hbo Family Hd + Hbo Hd Este + Hbo Plus Este + Hbo Plus Panamericano Hd + Hbo Plus Pan Regional Hd + Hbo Signature + Hbo Signature Hd + Hola Tv Hd + Htv + History Hd + Infinito + Discovery Id + Discovery Id Hd + Kmusic + Life Design Tv Hd + Lifetime + M Tv + Mtv Dance + Mtv Live Hd + Max + Max Prime + Max Prime O + Max Prime Panamericano Hd + Max Prime Panregional Hd + Max Up + Mi Gente + Multipremier + Mundo Fox + Mas Chic + Nba Tv Hd + Nuestra Tele Noticias 24hs + Nat Geo Wild + Nat Geo Wild Hd + National Geographic + National Geographic Hd + Nick, Jr. + Nickelodeon + Caracol Novelas + Paramount Channel + Pasiones + Playboy + Canal Rcn Hd + Rcn Novelas + Rumba Tv + Sony + Sony Hd + Space Hd + Studio Universal + Sun Channel + Sun Channel Hd + Fox Sy Fy + Tbs Veryfunny Pan + Tcm + Discovery Tlc + Discovery Tlc Hd + Tlnovelas + Tn + Tnt Series + Trace Sports Stars + Trace Sports Stars Hd + Tvc + Tve + Televida + Televid Hd + Teleamiga + Teleantioquia + Teleantioquia Hd + Telecafe + Telehit Hd + Telemedellin Hd + Telemundo + Tele Nostalgia + Telepacifico + Tigo Music + Tigo Music Hd + Tooncast + Trendy Channel + Tv Agro + Tyc Sports Hd + Ufc Network Hd + Universal Channel + Univision + Vh1 + Vh1 Classic Usa + Vh1 Hd + Vh1 Mega Hits + Vmas Tv + Ve Plus Tv + Venus + Win Sports Hd + Zoom + El Gourmet + Tru Tv + + Telefe + El Trece + America 2 Capital + Canal 9 + Canal 7 Capital + C5n + Tn + Space + Fox + Fox Movies + Amc + Hbo + Tnt + A E Mundo + Warner Channel + Sony + Discovery + History + Disney + Tyc Sports + Fox Sports Hd + Espn + Discovery Kids + Cartoon Network + Cnn En Espanol + 24 7 Canal De Noticias + 26 Tv + America 24 + Axn + Animal Planet + Argentinisima Satelital + Az Corazon + Bbc Hd Hybrid + Bloomberg + Boomerang Cartoon + Canal 7 Hd + Canal A + Canal Orbe 21 + Canal Rural + Canal De La Musica + Canal De Las Estrellas + Cinecanal + Cinemax + Cinemax Sur + Ciudad Abierta + Discovery Civilization + Discovery Hd Charvz + Discovery Home And Health + Discovery Science + Discovery Turbo + Disney, Jr. + Entertainment + Espn 1 + Espn 2 + Espn 3 + Ewtn + El Garage + Encuentro + Europa Europa + Fox 1 Este + Fox 1 Hd + Fox 1 Oeste + Fox Action + Fox Action Hd + Fox Action Oeste + Fox Cinema + Fox Classics + Fox Comedy Hd + Fox Family + Fox Family Hd + Fox Family Oeste + Fox Hd + Fox Life + Fox Movies Hd + Fox Sports 2 + Fox Sports 3 + Fox Sports Cono Sur Capital + Fx + Film Zone + Galicia Tv + Hapsa + Hbo 2 + Hbo 2 Hd + Hbo Family + Hbo Family Hd + Hbo Hd Este + Hbo Oeste + Hbo Oeste Hd + Hbo Plus Este + Hbo Plus Panamericano Hd + Hbo Plus Pan Regional + Hbo Plus Pan Regional Hd + Hbo Signature + Hbo Signature Hd + Htv + I Sat + Incaa Tv + Mtv + Mtv Hits + Magazine + Max + Max Prime + Max Prime O + Max Prime Panamericano Hd + Max Prime Panregional Hd + Max Up + Metro + Muchmusic + National Geographic + Nickelodeon + Pakapaka + Playboy + Rai + Russia Today Hd + Sony Hd + Tcm + Discovery Tlc + Tnt Series + Tv 5 + Tve + Tvn Chile + Solo Tango + Tyc Alternativa + Universal Channel + Vh1 + Vh1 Soul + Venus + Volver + El Gourmet + Telesur + + Rede Globo + Record + Sbt + Band + Rede Tv + Cultura + Mtv Brasil + Axn + Fox + A E + Hbo + Amc Brasil + Tnt + Warner + Discovery + Discovery Home Health + History Channel + Fox Sports + Espn Brasil + Disney + Discovery Kids + Cartoon + Boomerang + Record News + Cnn + Globosat 1 + Axn Hd + Animal Planet + Bbc News + Bh News Tv + Band Belem + Band Curitiba + Band Minas + Band News + Band Porto Alegre + Band Rio + Bandsports + Bloomberg + Boa Vontade Tv + Cnt Brazil + Canal Adulto + Canal Agromix + Canal Brasil + Canal Brasil Hd + Canal Legislativo Tval + Canal Rural 1 + Canc O Nova + Chef Tv Brazil + Cinebrasil Tv + Cinemax Basic + Combate + Comedy Central + Cultura Hd + Deutsche Welle + Discovery Civilization + Discovery Hd + Discovery Home Health Hd + Discovery Science + Discovery Theater Hd + Discovery Turbo Brazil + Discovery Turbo Brazil Hd + Discovery World Hd + Disney Hd + Disney Junior + Disney Xd + E + Espn 1 + Espn Sur Andina 93a + Esporte Interativo + Eurochannel + Fox Life + Fox Sports 2 + Fox Sports 2 Hd Brazil + Fox Sports Hd + Furb Tv + Fx + Fashion Tv + Film Arts Bravo Brazil + Fishtv + Futura + Gnt + Gnt Hd + Glitz + Globo Amazonas + Globo Anhanguera + Rede Globo Aracaju + Globo Belem Liberal + Globo Brasilia + Globo Brasilia Hd + Globo Hd + Rede Globo Maceio + Globo Minas + Globo Natal + Globo News 1 + Globo Rbs Tv Poa + Globo Rj + Globo Recife + Globo Sp + Globo Tv Bahia + Globo Tv Internacional + Globo Tv Tem Bauru + Globo Tv Tribuna + Globo Tv Vanguarda + Rede Globo Teresina + Gloob + Gloob Hd + Golf Channel + H2 + H2 Hd + Hbo 2 + Hbo 2 Brazil Hd + Hbo 2 Hd + Hbo Family + Hbo Family Brazil Hd + Hbo Family Hd + Hbo Plus Brasil + Hbo Plus Brasil Hd + Hbo Plus Hd + Hbo Plus Panregional + Hbo Signature + Hbo Signature Brazil Hd + Hbo Signature Hd + History Channel Hd + Hustler Tv + I Sat + Investigac O Discovery + Investigac O Discovery Hd + Latino + Mix Tv + Mtv + Max + Max Up 1 + Maxprime + Maxprime E + Megapix + Megapix Hd + Multishow + Nbr + Nbr Florianopolis + Nhk + Natgeo Wild Hd + National Geographic + Nick Hd + Nick Junior Brazil + Nickelodeon + Nordestv + Off + Paramount Brasil + Paramount Brasil Hd + Play Tv + Playboy + Premiere Clubes + Premiere Futebol Clube + Premiere Futebol Clube Hd + Prime Box Brazil + Ra Tim Bum 1 + Rai + Rbs Tv Florianopolis + Rbs Tv Hd + Rbti + Record Aracaju + Record Bahia + Record Bauru + Record Belem + Record Brasilia + Record Campinas + Record Campo Grande + Record Cascavel + Record Cuiaba + Record Curitiba + Record Florianopolis + Record Fortaleza + Record Franca + Record Goias + Record Hd + Record International + Record Joao Pessoa + Record Maceio + Record Maringa + Record Minas + Record Natal + Record Porto Alegre + Record Rio + Record Santos + Rede Familia + Rede Gospel + Rede Massa + Rede Mercosul + Rede Ngt Nova Geracao De Televisao + Rede Super + Rede Vida 1 + Rede Vida Belo Horizonte + Rede Vida Cascavel + Rede Vida Cuiaba + Rede Vida Goiania + Rede Vida Hd + Rede Vida Porto Alegre + Rede Vida Recife + Rede Vida Vitoria + Rede Tv Hd + Rede Tv Pampa + Redetv Rio De Janeiro + Rede Tv Sp + Rede Tv Sul + Sbt Belem + Sbt Belo Horizonte + Sbt Brasilia + Sbt Cascavel + Sbt Criciuma + Sbt Florianopolis + Sbt Goiania Tv Serra Dourada + Sbt Hd + Sbt Juiz De Fora + Sbt Ms + Sbt Maceio + Sbt Manaus + Sbt Maringa + Sbt Natal + Sbt Piaui + Sbt Rs + Sbt Rio + Sbt Salvador + Sbt S O Paulo + Sbt Vitoria + Sic + Sic Internacional 1 + Sesctv + Sexprive Brasileirinhas + Sextreme Brazil + Sexy Hot + Sony + Sony Hd + Space + Space Hd + Sportv + Sportv2 + Sportv3 + Studio Universal + Sucesso + Syfy 1 + Tbs + Tbs Hd + Tcm + Tlc + Tnt Hd + Tnt Series + Tv Alterosa + Tv Ambiental + Tv Aparecida + Tv Aperipe + Tv Brasil + Tv Cei + Tv Centro America + Tv Climatempo + Tv Camara + Tv Educativa + Tv Escola + Tv Gazeta + Tv Globo Panorama + Tv Integrac O + Tv Jangadeiro + Tv Jornal + Tv Justica + Tv Liberal + Tv Mar Alagoas + Tv Morena + Tv Novo Tempo + Tv Omega + Tv Rio Sul + Tv Senado 1 + Tv Sorocaba + Tv Uni O + Tv Vitoria + Tv5 + Tve + Telecine Action 1 + Telecine Action Hd + Telecine Cult 1 + Telecine Fun + Telecine Fun Hd + Telecine Pipoca + Telecine Pipoca Hd + Telecine Premium 1 + Telecine Premium Hd + Telecine Touch + Telecine Touch Hd + Terra Viva + Tooncast + Travel Box Brazil + Universal + Vh1 + Viva + Warner Hd + Woohoo + Trutv 1 + Trutv Hd + + Canal De Las Estrellas Xew + Canal 4 Foro Tv + Azteca 13 + Azteca 7 + Xh Gc Canal 5 + Galavision + Xeipn Canal 11 + Cadenatres + Fox + Fox Movies + Cinemax + Amc + Hbo Oeste + Tnt + Sony + Warner + Discovery Channel + National Geographic + History + Espn + Fox Sports + Disney + Discovery Kids + Cartoon Network + Cnn En Espanol + A E Mundo + Amc Hd + Axn + Animal Planet + Az Corazon + Bandamax + Boomerang Cartoon + Cnn + Canal 22 Conaculta + Xh Gc Canal 5 Hd + Canal Nu + Tvc Cine Mexicano Cmc + Cinecanal + Cinecanal Hd + Comedy Central + De Pelicula + De Pelicula Hd + Discovery Hd Mexico + Discovery Hd Theater + Discovery Home And Health + Disney, Jr. + Disney Xd + Distrito Comedia + Entertainment + Espn 2 + Espn 3 + Espn Hd + Europa Europa + Fox 1 Hd + Fox 1 Oeste + Fox Action Hd + Fox Comedy Hd + Fox Family + Fox Family Hd + Fox Family Oeste + Fox Life + Fox Movies Hd + Fox Oeste Hd + Fox Sports 2 + Fox Sports 3 + Fx + Film Zone + Film Arts + Glitz + Golden + Golden Edge + Hbo 2 + Hbo Family + Hbo Oeste Hd + Hbo Plus Mexico + History Hd + I Sat + Discovery Id + M Tv + Max + Max Prime Mexico + Milenio Tv + Muchmusic + Mundo Fox + Casa Club + Nick, Jr. + Nickelodeon + Nickelodeon Hd + Tvc Platino + Proyecto 40 + Ritmoson Latino + Russia Today Hd + Sony Hd + Space + Studio Universal + Fox Sy Fy + Tbs Veryfunny Pan + Tcm + Tdn + Tdn Hd + Tiin + Tlnovelas + Tnt Hd + Tv Unam + Tve + Telehit + Telemundo + Tooncast + Universal Channel + Univision + Vh1 + Wobi Tv + Warner Hd + El Gourmet + Tru Tv + Tru Tv Hd + + Canal De Las Estrellas Xew + Canal 4 Foro Tv + Azteca 13 + Azteca 7 + Xh Gc Canal 5 + Galavision + Xeipn Canal 11 + Cadenatres + Fox + Fox Movies + Cinemax + Amc + Hbo Oeste + Tnt + Sony + Warner + Discovery Channel + National Geographic + History + Espn + Fox Sports + Disney + Discovery Kids + Cartoon Network + Cnn En Espanol + A E Mundo + Amc Hd + Axn + Animal Planet + Az Corazon + Bandamax + Boomerang Cartoon + Cnn + Canal 22 Conaculta + Xh Gc Canal 5 Hd + Canal Nu + Tvc Cine Mexicano Cmc + Cinecanal + Cinecanal Hd + Comedy Central + De Pelicula + De Pelicula Hd + Discovery Hd Mexico + Discovery Hd Theater + Discovery Home And Health + Disney, Jr. + Disney Xd + Distrito Comedia + Entertainment + Espn 2 + Espn 3 + Espn Hd + Europa Europa + Fox 1 Hd + Fox 1 Oeste + Fox Action Hd + Fox Comedy Hd + Fox Family + Fox Family Hd + Fox Family Oeste + Fox Life + Fox Movies Hd + Fox Oeste Hd + Fox Sports 2 + Fox Sports 3 + Fx + Film Zone + Film Arts + Glitz + Golden + Golden Edge + Hbo 2 + Hbo Family + Hbo Oeste Hd + Hbo Plus Mexico + History Hd + I Sat + Discovery Id + M Tv + Max + Max Prime Mexico + Milenio Tv + Muchmusic + Mundo Fox + Casa Club + Nick, Jr. + Nickelodeon + Nickelodeon Hd + Tvc Platino + Proyecto 40 + Ritmoson Latino + Russia Today Hd + Sony Hd + Space + Studio Universal + Fox Sy Fy + Tbs Veryfunny Pan + Tcm + Tdn + Tdn Hd + Tiin + Tlnovelas + Tnt Hd + Tv Unam + Tve + Telehit + Telemundo + Tooncast + Universal Channel + Univision + Vh1 + Wobi Tv + Warner Hd + El Gourmet + Tru Tv + Tru Tv Hd + + diff --git a/config/siteini.pack/International/schedulesdirect.org.ini b/config/siteini.pack/International/schedulesdirect.org.ini new file mode 100644 index 0000000..3759f19 --- /dev/null +++ b/config/siteini.pack/International/schedulesdirect.org.ini @@ -0,0 +1,152 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: schedulesdirect.org +* @MinSWversion: V1.1.1/56.6 +* @Revision 3 - [15/11/2015] Jan van Straaten +* - remove of faulty credits role solution +* @Revision 2 - [24/10/2015] Francis De Paemeleere +* - speedup parsing (tested with V1.56.6) +* @Revision 1 - [23/10/2014] Jan van Straaten +* - adapted site changes +* @Revision 0 - [31/08/2013] Jan van Straaten / Francis De Paemeleere +* - creation +* @Remarks: You need a login and password for this site +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=schedulesdirect.org|timezone=UTC|maxdays=16.1|cultureinfo=en-US|charset=UTF-8|titlematchfactor=90|keepindexpage|firstshow=1} +site {ratingsystem=MPAA|subtitlestype=teletext|episodesystem=onscreen} +url_index {url|http://dd.schedulesdirect.org/schedulesdirect/tvlistings/xtvdService} +url_index.headers {method=SOAP} +url_index.headers {customheader=SOAPAction=urn:tvDataDelivery#download} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +* +*url_index.headers {credentials=ENTER_USERNAME,ENTER_PASSWORD} +url_index.headers {credentials=pedrobmat,bmatbmat} +* +url_index.headers {accept=text/xml|contenttype=text/xml;charset="utf-8"} +url_index.headers {postdata='index_variable_element'} + +scope.range {(urlindex)|end} +** timespan calculation to enable to add the requested timespan from the config +index_variable_element.modify {calculate(format=F1)|'config_timespan_days' 1 +} * add 1 day because config_timespan_days is 0 based +index_variable_element.modify {calculate(format=timespan,hours)} * convert to the proper timespan string required for index_temp_3 +index_temp_1.modify {calculate(format=date,yyyy-MM-dd)|'urldate'} +index_temp_3.modify {calculate(format=date,yyyy-MM-dd)|'urldate' 'index_variable_element' +} +index_variable_element.modify {clear} * clear the timespan value +index_variable_element.modify {addstart|'index_temp_1'T00:00:00Z'index_temp_3'T00:00:00Z} +end_scope + +index_showsplit.scrub {regex||||} * copies the whole index page +scope.range {(splitindex)|end} +* now break up the large chuck into 3 smaller chucks, to speedup parsing +index_variable_element.modify {clear} + +global_temp_1.modify {substring(type=regex)|'index_showsplit' "^.*?(.*?)"} * contains all programs +global_temp_1.modify {replace|title>|t>} +global_temp_1.modify {replace|subt>|st>} +global_temp_1.modify {replace||

    } +global_temp_1.modify {replace|syndicatedEpisodeNumber>|sEN>} +global_temp_1.modify {replace|description>|d>} +global_temp_1.modify {replace|originalAirDate>|oAD>} +global_temp_1.modify {replace|showType>|sT>} +global_temp_1.modify {replace|series>|s>} + +** SPEEDUP option: if you don't need production/crew/cast info, just comment out next line +global_temp_2.modify {substring(type=regex)|'index_showsplit' "^.*?(.*?)"} * contains all productionCrew +global_temp_2.modify {replace|name>|>} +global_temp_2.modify {replace|given>|g>} +global_temp_2.modify {replace|sur>|s>} +global_temp_2.modify {replace|member>|m>} +global_temp_2.modify {replace|role>|r>} +global_temp_2.modify {replace|r>ActorA(.*?)"} * contains all programs +global_temp_3.modify {replace|genre>|g>} +global_temp_3.modify {replace|class>|c>} +global_temp_3.modify {replace|relevance>|r>} +global_temp_3.modify {replace|programGenre>|pG>} +global_temp_3.modify {replace|(.*?)"} * contains all shows we need +index_temp_2.modify {substring(type=regex)|(]* station=\''config_site_id'\' [^>]*>)} +index_temp_2.modify {cleanup(removeduplicates=equal,100)} +index_showsplit.modify {set|'index_temp_2'} + +end_scope +** +index_start.scrub {regex||time='[^\']*?T(\d{2}:\d{2}):\d{2}Z'||} +index_duration.scrub {regex||duration='PT(\d*H\d*)M||} +index_temp_5.scrub {regex||program='([^\']*)||} +index_videoquality.scrub {regex||hdtv='([^\']*)||} +index_videoquality.modify {replace(not="")|'index_videoquality'|HDTV} + +index_subtitles.scrub {regex||closeCaptioned='([^\']*)||} +index_subtitles.modify {replace(not="")|'index_subtitles'|true} + +scope.range {(indexshowdetails)|end} +index_start.modify {calculate(format=utctime)} +index_duration.modify {replace|H|:} + +** get the programs part +index_temp_4.modify {substring(type=regex)|'global_temp_1' "^.*?

    (.*?)

    "} +index_title.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_subtitle.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_description.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_rating.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_temp_3.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_rating.modify {addend|\|'index_temp_3'} *advisory added to rating +index_productiondate.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_episode.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} +index_starrating.modify {substring(type=regex)|'index_temp_4' "(\**)[\+]*"} * full stars +index_temp_1.modify {substring(type=regex)|'index_temp_4' ".*(\+)"} * half star +index_starrating.modify {calculate(not="" type=char format=F0)|#} +index_starrating.modify {addend('index_temp_1' not="")|.5} +index_starrating.modify {addend(not="")| / 4} +index_category.modify {substring(type=regex)|'index_temp_4' "([^<]*)"} + +* get the productionCrew part +index_temp_4.modify {substring(type=regex)|'global_temp_2' "^.*?(.*?)"} +index_actor.modify {substring(type=regex)|'index_temp_4' "[^<]*A(.*?)"} +index_actor.modify {cleanup(tags="<"">")} +*index_temp_1.modify {substring(type=regex)|'index_temp_4' "[^<]*Guest Star(.*?)"} +*index_temp_1.modify {cleanup(tags="<"">")} +*index_temp_1.modify {addend(not "")| (Guest Star)} +*index_actor.modify {addend('index_temp_1' not "")|'index_temp_1'\|} +index_actor.modify {cleanup(removeduplicates)} +index_presenter.modify {substring(type=regex)|'index_temp_4' "[^<]*Host(.*?)"} +index_presenter.modify {cleanup(tags="<"">")} +index_director.modify {substring(type=regex)|'index_temp_4' "[^<]*Director(.*?)"} +index_director.modify {cleanup(tags="<"">")} +index_producer.modify {substring(type=regex)|'index_temp_4' "[^<]*Producer(.*?)"} +index_producer.modify {cleanup(tags="<"">")} +index_producer.modify {substring(type=regex)|'index_temp_4' "[^<]*Executive Producer(.*?)"} +index_producer.modify {cleanup(tags="<"">")} +*index_temp_1.modify {substring(type=regex)|'index_temp_4' "[^<]*Executive Producer(.*?)"} +*index_temp_1.modify {cleanup(tags="<"">")} +*index_temp_1.modify {addend(not "")| (Executive Producer)} +*index_producer.modify {addstart('index_temp_1' not="")|'index_temp_1'\|} +index_producer.modify {cleanup(removeduplicates)} +index_writer.modify {substring(type=regex)|'index_temp_4' "[^<]*Writer(.*?)"} +index_writer.modify {cleanup(tags="<"">")} +* get the genres part +index_temp_4.modify {substring(type=regex)|'global_temp_3' "^.*?(.*?)"} +index_temp_1.modify {substring(type=regex)|'index_temp_4' ".*?(.*?)"} +index_category.modify {addstart('index_temp_1' not= "")|'index_temp_1'\|} +end_scope + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {regex||()||} +*scope.range {(channellist)|end} +*index_site_channel.modify {substring(type=regex)|'index_site_id' "(.*?)"} +*index_site_id.modify {substring(type=regex)|'index_site_id' ""} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/schedulesdirect.org_info.txt b/config/siteini.pack/International/schedulesdirect.org_info.txt new file mode 100644 index 0000000..81e8abe --- /dev/null +++ b/config/siteini.pack/International/schedulesdirect.org_info.txt @@ -0,0 +1,31 @@ +---------------------------------------------------------------------- +SchedulesDirect.com revised October 2014 +---------------------------------------------------------------------- + +Before you can use this siteini, you must: +A. Get a membership and register at schedulesdirect.org/account , get a login name, a password and create one or more lineups +B. add your login and password +C. generate your own SchedulesDirect.channels.xml file (because this is different for every unique login) + +A. +Follow the instructions at schedulesdirect.org +!! Important when chosing a lineup: Keep the number of channels low !! Only add channels that you are really going to use! Keep in mind that also for the channels you do not use to get an epg from, the data is downloaded. That takes time and slows down the process. + +B. +Open the SchedulesDirect.com.ini file and look for the next line and change the credentials to yours. +url_index.headers {credentials=ENTER_USERNAME,ENTER_PASSWORD} + +C. +To generate the your own .channels.xml file (extra info can be found on http://webgrabplus.com/node/289) +1. in your siteini: + for all the lines between @auto_xml_channel_start & @auto_xml_channel_end, remove the FIRST * at the beginning of the line (= uncomment) + Save schedulesdirect.org.ini +2. in your .config.xml: + Add only one dummy channel in the WebGrab++.config.xml file + dummy + Only grab for 1 day + 0 + Save WebGrab++.config.xml +3. Now just run WG++ and your .channels.xml file should be generated, if all goes well. +4. You have now your .channels.xml file. The channel lines inside it, can be used to configure the WebGrab++.config.xml file. +5. Revert the changes made in C.1. diff --git a/config/siteini.pack/International/shoofeetv.com.channels.xml b/config/siteini.pack/International/shoofeetv.com.channels.xml new file mode 100644 index 0000000..c6f468f --- /dev/null +++ b/config/siteini.pack/International/shoofeetv.com.channels.xml @@ -0,0 +1,275 @@ + + + + MBC 1 + MBC 2 + beiN Sports 1 + Nashe Kino + 2M Maroc + Aaj TV + ABP News + Abu Dhabi Al Emarat + Abu Dhabi Al Oula + Abu Dhabi Al Oula +1 + Abu Dhabi Drama + Abu Dhabi Poet + Abu Dhabi Sports 1 + Abu Dhabi Sports 2 + Abu Dhabi Sports 3 HD + Abu Dhabi Sports 4 HD + Abu Dhabi Sports 5 HD + Abu Dhabi Sports 6 HD + Abu Dhabi Sports 7 HD + Abu Dhabi Sports 8 HD + Abu Dhabi Sports Extra + Ajman + Al Aan + Al Ahly Club + Al Aqsa + Al Arabiya + Al Arabiya Al Hadath + Al Arabiya HD + Al Baghdadia + Al Dafrah + Al Diyar + Al Forat + Al Ghadeer + Al Hayat + Al Hayat 2 + Al Hayat Cinema + Al hayat Mosalsalat + Al Hurra + Al Hurra Iraq + Al Iraqiya + Al Jazeera + Al Jazeera Documentary + Al Jazeera Mubasher + Al Jazeera Mubasher Misr + Al Kahera Wal Nas + Al Kahera Wal Nas +2 + Al Kass + Al Kawthar + Al Maghribia + Al Majd + Al Majd Al Hadeeth Al Nabawy + Al Majd Holy Quran + Al Manar + Al Masriya + Al Mustakillah + Al Nahar + Al Nahar Drama + Al Nahar Movies + Al Nahar Sports + Al Quds + Al Rai + Al Rayyan + Al Resalah + Al Saeeda + Al Saha 1 + Al Saha 2 + Al Saha 3 + Al Sharqiya + Al Shorooq TV + Al Sumaria + Al Watan + Al Watan Plus + Alafasy + Alalam + ARD + Arirang TV + Art Hekayat + Art Hekayat 2 + arte + ARY Digital + ARY News + Arzaq Anbar + B4U Aflam + B4U Plus + Baby TV + Baraem + BBC Arabic + BBC Persian + beiN Sports + beiN Sports 10 + beiN Sports 2 + beiN Sports 3 + beiN Sports 4 + beiN Sports 5 + beiN Sports 7 + beiN Sports 8 + beiN Sports 9 + beiN Sports HD + beiN Sports HD1 + beiN Sports HD2 + beiN Sports News + Bro + BVN + Canal 24 Horas + Canal Algérie + Canale 5 + Cartoon Network Arabia + CBC + CBC Drama + CCTV 4 + CCTV Arabic + Channel V China + Cinema One Global + City7 TV + CNBC Arabiya + Colors TV + CricOne + Dawn News + Decision Makers + Deepam TV + DM Digital + Dream 1 + Dream 2 + Dubai One + Dubai Racing + Dubai Sports 1 + Dubai Sports 2 + Dubai Sports HD + Dubai Television + DW + El Mehwar 1 + ERT World + Euro Sports News + Fatafeat + FOX + FOX HD + Fox Movies + Fox Movies HD + Fox Sports + France 24 - Arabic + France 24 - French + Funoon + Future TV + FX + GEM TV + Hannibal + Heya + High TV 3D + Huda TV + Hum TV + I Film + iConcerts HD + Ikono HD + Imagine Movies + Indus Vision + Iqraa + Italia 1 + Jeem + Jordan Television + JSTV + JSTV + JSTV2 + Karusel + KBS World + Khyber News + Khyber TV + LBC + LBC Europe + LDC + Life OK + Luxe TV HD + Massaya + Mazhavil Manorama International + MBC 3 + MBC 4 + MBC Action + MBC Drama + MBC MAX + Moga Comedy TV + MTV Lebanon + National Geographic Abu Dhabi + National Geographic Channel HD + National Geographic Wild + NationAl Geographic Wild HD + NBN + Nessma + New TV + Nile Cinema + Nile Comedy + Nile Drama + Nile Family and Kids + Nile Life + Nile News + Nile Sports + Nile TV International + Noor Dubai + NTV MIR + Oman Sport + Oman TV + ON TV Live + Orient TV + OSN Action HD + OSN First HD + OSN Movies Comedy HD + OSN Movies Festival + OSN Movies HD + OSN Movies Kids + OSN Premier + OSN Yahala! Shabab HD + OTV + Panorama Drama + Peace TV + Physique TV + PMC Music + Qatar TV + R1 + Rafidain + RAI 1 + RAI 2 + RAI 3 + Rai News + Rai Storia + RBK + RETE4 + Ro'ya + Rotana Aflam + Rotana Cinema + Rotana Khalijia + Rotana Masriya + Rotana Mousica + Rotana Zaman + RTG + RTR Planeta + RTVI + Russia Today + Russia Today - Arabic + Sama Dubai + Saudi 1 + Sharjah TV + Sky News + Sky News Arabia + Sky News HD + Spacetoon + Star Plus + Sudan TV + Syria Drama + Syria Satellite Channel + TFC + Tiba + Toyour Al Jannah + TRT 1 + TRT Çocuk + TRT ETTÜRKÝYYE + TRT Muzik + Tunisia 1 + TV 5 Orient + TV Polonia + TV1 Iran + TV2 Iran + TV3 Russia + TVB8 + TVE Internacional + Twazon + Urdu 1 + UTV Movies Arabia + Yemen TV + ZDF + Zee Aflam + Zee Alwan + Zee TV + + \ No newline at end of file diff --git a/config/siteini.pack/International/shoofeetv.com.ini b/config/siteini.pack/International/shoofeetv.com.ini new file mode 100644 index 0000000..6d61559 --- /dev/null +++ b/config/siteini.pack/International/shoofeetv.com.ini @@ -0,0 +1,123 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: shoofeetv.com +* @MinSWversion: 1.1.1/55.27 +* @Revision 1 - [09/10/2015] Jan van Straaten +* - solves the problem that the index shows are not in the regular ascending time order +* @Revision 0 - [25/05/2015] Francis De Paemeleere +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=shoofeetv.com|timezone=Africa/Algiers|maxdays=2|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90|nopageoverlaps|keepindexpage|episodesystem=onscreen} + +urldate.format {list|today|tomorrow} +subpage.format{list(step=1 count=55)|0} + +url_index{url()|http://www.shoofeetv.com/en/guide/getGuide?section=|urldate|&page=|subpage} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +scope.range {(datelogo)|end} +index_variable_element.modify {clear} +index_variable_element.modify {addstart|'config_site_id'} +end_scope + +index_urlchannellogo.scrub {regex||^.*?id=\"tvg-channel-'index_variable_element'\".*?]*src=\"([^\"]*)\"||} +scope.range {(datelogo)|end} +index_urlchannellogo.modify {addstart(not="")|http://www.shoofeetv.com} +end_scope + +* the index file is composed as follows +* each day: +* all channels are present , indicated by data-channel-id="1144" This id is same as config_site_id +* in each channel the prime time shows are listed first (6:30pm - last show before midnight , start has a pm indicator) +* then all the other shows (the first starts just after midnight has am indicator +* a clear difference between the days is the value of data-id , for the second day at least 5000 (?) more than for the first day +* e.g. for channel-id="2" the first days data-id ranges from 1 to 28, the second day from 8443 to 8466 +scope.range {(splitindex)|end} +index_showsplit.scrub {regex()||
    ]*data-channel-id=\"'index_variable_element'\"[^>]*>.*?
    ||} * all shows for this channel +index_temp_1.modify {set|'index_showsplit'} +index_showsplit.modify {clear} +index_temp_5.modify {set|0} +index_temp_4.modify {set|1} * start value loop condition +loop {('index_temp_4' "1" max=100)|end} +* the next line always uses index 0 (the first, because we remove it further on, so in effect index 0 is always the next in line +index_temp_2.modify {substring(type=element)|'index_temp_1' 0 1} * indexshow +index_temp_3.modify {substring(type=regex)|'index_temp_2' "data-id=\"(\d{1,})\""} * data-id +index_temp_4.modify {calculate(format=F0)|'index_temp_3' 'index_temp_5' -} * difference +index_temp_5.modify {clear} +index_temp_5.modify {set|'index_temp_3'} *saves value of data-id for next loop +index_temp_6.modify {addend('index_temp_4' "1")|****'index_temp_2'} * all indexshows of one day added together +* remove the show from the index, that will leave all shows of the nexr day in the end +index_temp_1.modify {remove(type=element 'index_temp_4' "1")|0 1} * this will contain all next day shows at the end of the loop +end_loop +*index_temp_1.modify {replace(debug)|\||\|\n\n} * test +index_temp_6.modify {replace()|****|\|} *make multi +* sort on starttime of the first day +loop {(each 'index_temp_2' in 'index_temp_6' max=100)|end} +index_temp_3.modify {substring(type=regex)|'index_temp_2' "(\d{2}:\d{2}.+?)\s-"} * start time am pm format +index_temp_3.modify {calculate(format=time,HH:mm)} * time converted into 24h format +* this 'converted' time can be used in sort (am/pm time cannot) +* add the 'converted' starttime to the beginning: +index_temp_4.modify {addend()|****'index_temp_3'##'index_temp_2'} +end_loop +index_temp_4.modify {replace()|****|\|} *make multi needed for sorting +* sort on start time +index_temp_4.modify {sort(ascending,string)} * this now contains all shows of day one in the right order +sort_by.modify {substring(target="index_temp_4" type=regex)|"(\d{2}:\d{2})##"} +* +index_temp_4.modify {replace|\||****} * make single to allow later adding in index_showsplit +* sort on starttime of the second day +* prepar by adding the converted starttime as with the first day +loop {(each 'index_temp_2' in 'index_temp_1' max=100)|end} +index_temp_3.modify {substring(type=regex)|'index_temp_2' "(\d{2}:\d{2}.+?)\s-"} * start time am pm format +index_temp_3.modify {calculate(format=time,HH:mm)} * time converted into 24h format +index_temp_5.modify {addend()|****'index_temp_3'##'index_temp_2'} +end_loop +index_temp_5.modify {replace()|****|\|} *make multi, needed for sorting +* sort on start time +index_temp_5.modify {sort(ascending,string)} * this now contains all shows of day two in the right order +sort_by.modify {substring(target="index_temp_5" type=regex)|"(\d{2}:\d{2})##"} +index_temp_5.modify {replace|\||****} * make single to allow adding +* add the two days together +index_showsplit.modify {addstart()|'index_temp_4''index_temp_5'} +index_showsplit.modify {replace()|****|\|} * make multi +* all done with sorting of the index_shows !! +end_scope + +scope.range {(indexshowdetails)|end} +index_start.scrub {single|||-|-} +index_stop.scrub {single||-||} +index_title.scrub {single()|

    ||

    |} + +index_urlshow.scrub {regex()||data-id="(\d*)"||} +index_urlshow.modify {addstart(not="")|http://www.shoofeetv.com/en/guide/getProgram?id=} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the +end_scope + +*detail pages +title.scrub {single|

    ||

    |} +description.scrub {single|
    |
    |

    |

    } +showicon.scrub {regex||class=\"tvg-details-thumbnail\".*?src=\"([^\"]*)\"||} +episode.scrub {regex||class=\"tvg-details-epnum\"[^>]*>([^<]*)<||} + +description.modify {remove(type=regex)|"<[^>]*>"} +showicon.modify {addstart(not~"http://")|http://www.shoofeetv.com} + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {regex||id=\"tvg-channel-\d*\"[^>]*>.*?||} +*scope.range {(channellist)|end} +*index_site_channel.modify {addstart|'index_site_id'} +*index_site_channel.modify {substring(type=regex)|id=\"tvg-channel-\d*\"[^>]*>(.*?)} +*index_site_channel.modify {remove(type=regex)|<[^>]*>} +*index_site_channel.modify {remove(type=regex)|^\s*} +*index_site_channel.modify {remove(type=regex)|\s*$} +*index_site_id.modify {substring(type=regex)|id=\"tvg-channel-(\d*)\"} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/sport24-tv.com.channels.xml b/config/siteini.pack/International/sport24-tv.com.channels.xml new file mode 100644 index 0000000..727661c --- /dev/null +++ b/config/siteini.pack/International/sport24-tv.com.channels.xml @@ -0,0 +1,7 @@ + + + + InFlight + At Sea + + \ No newline at end of file diff --git a/config/siteini.pack/International/sport24-tv.com.ini b/config/siteini.pack/International/sport24-tv.com.ini new file mode 100644 index 0000000..6991669 --- /dev/null +++ b/config/siteini.pack/International/sport24-tv.com.ini @@ -0,0 +1,41 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: sport24-tv.com +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [14/05/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=sport24-tv.com|timezone=GMT|maxdays=25.1|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=GB|episodesystem=onscreen} +url_index{url|http://sport24-tv.com/api/schedule/} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +url_index.headers {accept=application/json, text/javascript, */*; q=0.01} +urldate.format {daycounter|0} +* +index_variable_element.modify {set|'config_site_id'} +index_showsplit.scrub {multi|{"name":"'index_variable_element'","data":[|{|}|]}} +* +index_temp_1.scrub {single|"date":"||"|"} +index_start.scrub {single|"start_time":"||"|"} +index_start.modify {addstart|'index_temp_1' } +* +*index_duration.scrub {single|"duration":"||"|"} +* +index_title.scrub {single|"title1":"||"|"} +index_subtitle.scrub {single|"title2":"||"|"} +index_description.scrub {single|"synopsis":"||"|"} +index_category.scrub {single|"genre":"||"|"} +index_temp_3.scrub {single|"live":"||"|"} +index_title.modify {addstart('index_temp_3' "Y")|Live! } +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {|} +*index_site_id.modify {set|InFlight\|At Sea} +*index_site_channel.modify {set|InFlight\|At Sea} +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/streamlive.to.channels.xml b/config/siteini.pack/International/streamlive.to.channels.xml new file mode 100644 index 0000000..784f1f2 --- /dev/null +++ b/config/siteini.pack/International/streamlive.to.channels.xml @@ -0,0 +1,75 @@ + + + + A and E + ABC + ABC FAM + AMC + Animal + BBC + BIO + BRAVO + CARTOON + CBS + CINEMAX + CMT + CNBC + CNN + COMEDY CENTRAL + CW + DISNEY + DISXD + DSC + ESPN + ESPN2 + ESPNU + FOX + Fox News + FX + G4 + GOLF + GSN + HALLMARK + HBO + HBO2e + HBOSGe + HGTV + HISTORY + IFC + Investigation Discovery + LIFE + LMN + MOMAXe + msnbc + MTV + NBC + NBCSP + NGC + NIK + OWN + OXYGN + PBS + REELZ + SCI + SHO2e + Showtime + SOAP + SPEED + SPIKE + STARZ + style + SUNDe + Syfy + TBS + TLC + TMCe + TNT + TRAVEL + truTV + TVLAND + UNIVISION + USA NETWORK + WE + WGNAME + + \ No newline at end of file diff --git a/config/siteini.pack/International/streamlive.to.ini b/config/siteini.pack/International/streamlive.to.ini new file mode 100644 index 0000000..1326d3b --- /dev/null +++ b/config/siteini.pack/International/streamlive.to.ini @@ -0,0 +1,47 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: streamlive.to +* @MinSWversion: +* @Revision 0 - [12/11/2014] Jan van Straaten +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=streamlive.to|timezone=US/Eastern|maxdays=7.1|cultureinfo=en-US|charset=UTF-8|titlematchfactor=90} + +url_index{url|http://www.streamlive.to/tv-ajax.php} +*http://www.streamlive.to/tv-ajax.php +scope.range {(urlindex)|end} +index_variable_element.modify {addstart|'config_site_id'} +end_scope + +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +url_index.headers {method=POST} +url_index.headers {contenttype=application/x-www-form-urlencoded; charset=UTF-8} +url_index.headers {accept=*/*} +url_index.headers {customheader=X-Requested-With=XMLHttpRequest} +url_index.headers {referer=http://www.streamlive.to/tv-guide} +url_index.headers {host=www.streamlive.to} +url_index.headers {postdata=action=getchannelsched&id='index_variable_element'} +index_showsplit.scrub {multi|
    |||} + +index_start.scrub {regex||
    .+?\d{4}, (\d{1,2}:\d{2} (?:am\|pm)).+?
    ||} +index_stop.scrub {regex||
    .+?\d{4}, \d{1,2}:\d{2} (?:am\|pm) - (\d{1,2}:\d{2} (?:am\|pm)).+?
    ||} +index_title.scrub {regex||(.+?)||} +index_description.scrub {regex||
    (.+?)
    ||} + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.streamlive.to/tv-guide} +*url_index.headers {method=GET} +*index_site_channel.scrub {regex||||} +*index_site_id.scrub {regex||||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/International/tvpassport.com.channels.xml b/config/siteini.pack/International/tvpassport.com.channels.xml new file mode 100644 index 0000000..98493c0 --- /dev/null +++ b/config/siteini.pack/International/tvpassport.com.channels.xml @@ -0,0 +1,544 @@ + + + + Canal M + AMI-tv East + AMI-Audio - East + AMI-télé + PBS (WMAE) Booneville, MS + V (CFJP) Montreal, QC + TVA (CFTM) Montréal + Meteo-Media Montreal + Shopping Channel + RDS (Réseau des sports) + RDS 2 + RDS Info + TVA Sports + LCN + RDI (News) + Euronews - Français + Addik TV + Z + Series + + Canal Evasion + Historia + Canal D + Explora + Investigation + Musique Plus + MusiMax + ARTV + TV5 International - East + CASA + Zeste + Canal Vie + Moi et compagnie + Prise 2 + Assemblee nationale du Quebec + TFO - Chaine Francaise + Tele-Quebec (CIVM) Montreal + Canal Savoir + CPAC (Francais) + VRAK + Télémagino + Yoopa + TéléTOON - français + La Chaine Disney + Super Ecran + Super Ecran 2 + Super Ecran 3 + Super Ecran 4 + Cinépop + TVA (CFTM) West Feed + SRC (CBAFT) Moncton, NB + SRC (CBFT) Montreal, QC + SRC (CBUFT) Vancouver, BC + CTV (CFTO) Toronto, ON + CTV Two Toronto, ON + Global (CIII-DT-41) Toronto + CITY TV Toronto, ON + CBC (CBLT) Toronto, ON + OMNI.1 Television + OMNI.2 + TVO (TV Ontario) + CHEK Vancouver Island, BC + CHCH Hamilton, ON + CJON (NTV) St-John, NL + Vision TV + APTN - East + NBC (WGRZ) Buffalo, NY + ABC (WKBW) Buffalo, NY + CBS (WIVB) Buffalo, NY + FOX (WUTV) Buffalo, NY + PBS (WNED) Buffalo, NY + CTV (CHEX-TV-2) Durham, ON + CTV (CHEX) Peterborough, ON + CTV (CKWS) Kingston, ON + CTV (CJCH) Halifax + CTV Vancouver, BC + CTV Two Vancouver Island. BC + CBC (CBAT) Fredericton, NB + CTV Two Atlantic Region + CBC (CBOT) Ottawa, ON + CBC (CBWT) Winnipeg, MB + CBC (CBRT) Calgary, AB + CBC (CBUT) Vancouver, BC + CBC (CBXT) Edmonton, AB + Global (CIHF) Dartmouth + Global BC + CITY TV Montreal, QC + CITY TV Vancouver, BC + NBC (KING) Seattle, WA + ABC (KOMO) Seattle, WA + FOX (KCPQ) Tacoma, WA + PBS (KCTS) Seattle, WA + MNT (WNYO) Buffalo, NY + Peachtree TV (Canada) + WGN Canada + WSBK (TV-38) Boston + WPIX New York (SUPERSTATION) + KTLA Los Angeles, CA + HBO On Demand + M (The Movie Network) + The Movie Network 4 + The Movie Network 3 + The Movie Network 2 + TMN Encore 1 + TMN Encore 2 + HBO Canada 1 + HBO Canada 2 + TMN Encore onDemand + Super Channel on Demand + Super Channel 1 + Super Channel 2 + Super Channel 3 + Super Channel 4 + Independent Film Channel Canada + FX Networks Canada + FXX Canada + W Movies + Action - East + Lifetime Network US - Eastern Feed + Documentary Channel (Canada) + Silver Screen Classics + Turner Classic Movies Canada + AMC - Canada + MovieTime + TSN5 + TSN1 + TSN2 + TSN3 + TSN4 + Sportsnet (Ontario) + Sportsnet (East) - Satellite/Digital + Sportsnet (Pacific) - Satellite/Digital + Sportsnet (West) - Satellite/Digital + ESPN Classic Canada + Sportsnet One + Sportsnet 360 + Outdoor Life Network Canada + CBS Sports Network Canada + NBA TV Canada + Golf Channel Canada + Fox Sports Racing + WFN-World Fishing Network + Sportsnet World + Leafs TV + Fight Network Canada + Wild TV + NHL Center Ice 1 + NHL Center Ice 2 + NHL Center Ice 3 + NHL Center Ice 4 + NHL Center Ice 5 + NHL Center Ice 6 + NHL Center Ice 7 + NHL Center Ice 8 + NHL Center Ice 9 + NHL Center Ice 10 + NFL Network + NFL Sunday Ticket 1 + NFL Sunday Ticket 2 + NFL Sunday Ticket 3 + NFL Sunday Ticket 4 + NFL Sunday Ticket 5 + NFL Sunday Ticket 6 + NFL Sunday Ticket 7 + NFL Sunday Ticket 8 + NFL Sunday Ticket 9 + NFL Sunday Ticket 10 + NFL Sunday Ticket 11 + NFL Sunday Ticket 12 + NFL Sunday Ticket 13 + NFL Sunday Ticket 14 + MLB Extra Innings 1 + MLB Extra Innings 2 + MLB Extra Innings 3 + MLB Extra Innings 4 + MLB Extra Innings 5 + MLB Extra Innings 6 + MLB Extra Innings 7 + MLB Extra Innings 8 + MLB Extra Innings 9 + MLB Extra Innings 10 + MLB Extra Innings 11 + MLB Extra Innings 12 + MLB Extra Innings 13 + CNN + CTV News Channel + CBC News Network + CP24 (CablePulse 24) + BNN - Business News Network + Weather Network + Fox News + HLN + CNBC Canada + BBC World + CNN International North America + CPAC Ottawa + Ontario Legislature + I: Intelligent Television + G4 Canada + Al Jazeera English + RT - Russia Today + Discovery Channel (CAN) + TLC Canada + History Canada East + Discovery Science Canada + National Geographic Canada + Animal Planet Canada + Oprah Winfrey Network Canada + Travel + Escape + Investigation Discovery Canada + Book Television + Family Jr. On Demand + Family Jr. + YTV On Demand + YTV (Youth Television) - East + YTV (Youth Television) - Pacific + Teletoon - East + Teletoon - West + Family Channel Canada - East + Family Channel Canada - West + Nickelodeon Canada + Treehouse + Treehouse On Demand + Family CHRGD + ABC Spark + Cartoon Network Canada + Much Music + M3 + AUX + MTV Canada + MTV 2 - East + CMT Canada + BET - Canada + HGTV Canada + Slice + W (WTN) - East + Food Network Canada + FYI Canada + Fashion Television + ONE: GET FIT + Do It Yourself Network (Canada) + Cosmopolitan TV East + OUTtv + SundanceTV Canada + A&E Canada + Showcase Canada + DTOUR + Gusto TV + Bravo Canada + E! Canada + Viceland Canada East + Comedy Network - East + Comedy Network - West + Space + SPIKE Canada + H2 Canada + American Heroes Channel + BBC Canada East + Deja View + Comedy Gold + Crime + Investigation + Game Show Network - East + Makeful + Cottage Life + DD Bharati (Doordarshan) + DD India (Doordarshan) + DD Urdu (Doordarshan) + DD News (Doordarshan) + Yes TV (CITS) Burlington, ON + Salt & Light + ATN - Sikh + CCTV News Chinese + Halla Bol! + ATN - Brit. Asia + ATN - Food Food + Sony Mix + Mediaset Italia + Telelatino + Fairchild TV 2 HD + Fairchild TV - East (Mandarin) + Fairchild TV - East + Fairchild TV - Pacific + Talentvision + New Tang Dynasty TV + LS Times + ARY Musik + ARY News + ARY Zauq + Penthouse TV Canada + Red Hot TV + Vivid TV Canada (Français) + Vivid TV Canada (English) + Playboy + Mehndi TV + Bollywood Times HD + ATN - Times Now (English) + ATN - Aapka Colors + ATN - Zoom (Hindi) + ATN - SAB TV (Hindi) + ATN - AASTHA + ATN - B4U Music + CBN (Commonwealth Broadcasting Network) + ATN - Cricket Plus + NDTV Good Times + Set Max + Star India Gold + ATN - ABP News + ATN - B4U Movies (Hindi) + ATN - Movies OK + ATN - The ATN Channel + ATN - Bangla + ATN Malayalam + ATN - Alpha ETC Punjabi + ATN - MH1 + ATN - Jaya TV (Tamil) + ARY QTV + ATN - ARY Digital (Canada) + Star Jalsha + Deutsche Welle TV + TFC - The Filipino Channel + Nuevo Mundo + Univision Canada + AZ Mundo + TV Chile + FOX Life + FPTV (Festival Portuguese TV) + Mega Cosmos + Odyssey + ERT World (Canada) + Radio: CBME (CBC1) + Radio: CBC Radio 2 English + Radio: CBLA + Radio: CBC Radio 2 Toronto + Radio: CJBC + Radio: CBF FM (SRC1) + Radio France Internationale 1 + Radio: CHUM + SRC (CBLFT) Toronto HD + V HD + TVA (CFTM) Montreal HD + TVA HD + Tele-Quebec (CIVM) Montreal HD + RDS (Réseau des sports) HD + RDS 2 HD + RDS Info HD + TVA Sports HD + LCN HD + RDI (News) HD + Addik TV HD + Z HD + Series + HD + Canal Evasion HD + Historia HD + Canal D HD + Explora HD + Investigation HD + Musique Plus HD + MusiMax HD + ARTV HD + TV5 International HD - East + CASA HD + Zeste HD + Canal Vie HD + Moi et compagnie HD + Prise 2 HD + TFO - Chaine Francaise HD + Canal Savoir HD + VRAK HD + Télémagino HD + Yoopa HD + Super Ecran HD 1 + Super Ecran 2 HD + Super Ecran 3 HD + Super Ecran 4 HD + Cinépop HD + SRC (CBAFT) Moncton, NB HD + SRC (CBUFT) Vancouver, BC HD + CTV (CFTO) Toronto, ON HD + CTV Two - Network HD + CTV Two Toronto, ON HD + Global (CIII) Ontario HD + CITY TV Toronto, ON HD + CBC (CBLT) Toronto, ON HD + OMNI.1 HD + OMNI.2 HD + TVO (TV Ontario) HD + CHCH Hamilton, ON HD + APTN HD + NBC (WGRZ) Buffalo, NY HD + ABC (WKBW) Buffalo, NY HD + CBS (WIVB) Buffalo, NY HD + FOX (WUTV) Buffalo, NY HD + PBS (WNED) Buffalo, NY HD + CTV (CHEX-TV-2) Durham, ON HD + CTV (CHEX) Peterborough, ON HD + CTV (CKWS) Kingston, ON HD + CTV (CJCH) Halifax HD + CTV Vancouver, BC HD + CTV Two Vancouver Island. BC HD + CBC (CBHT) Halifax, NS HD + CBC (CBOT) Ottawa, ON HD + CBC (CBWT) Winnipeg, MB HD + CBC (CBRT) Calgary, AB HD + CBC (CBUT) Vancouver, BC HD + CBC (CBXT) Edmonton, AB DV + Global BC HD + CITY TV Vancouver, BC HD + NBC (KING) Seattle, WA HD + ABC (KOMO) Seattle, WA HD + CBS (KIRO) Seattle, WA HD + FOX (KCPQ) Tacoma, WA HD + PBS (KCTS) Seattle, WA HD + MNT (WNYO) Buffalo, NY HD + Peachtree TV (Canada) HD + WGN Canada HD + WSBK (TV-38) Boston HD + WPIX New York (SUPERSTATION) HD + KTLA Los Angeles, CA HD + M (The Movie Network) HD + The Movie Network 4 HD + The Movie Network 3 HD + TMN Encore 1 HD + TMN Encore 2 HD + HBO Canada 1 HD + HBO Canada 2 HD + Hollywood Suite 70s + Hollywood Suite 80s + Hollywood Suite 90s + Hollywood Suite 00s + Super Channel HD 1 + Super Channel HD 2 + Super Channel HD 3 + Super Channel HD 4 + FX Networks Canada HD + FXX Canada HD + W Movies HD + Lifetime Network US - Eastern Feed HD + Documentary Channel (Canada) HD + Turner Classic Movies Canada HD + AMC - Canada HD + Sportsnet 4K + Sportsnet One 4K + TSN1 HD + TSN2 HD + TSN3 HD + TSN4 HD + Sportsnet (Ontario) HD + Sportsnet (East) - Satellite/Digital HD + Sportsnet (Pacific) - Satellite/Digital HD + Sportsnet (West) - Satellite/Digital HD + Sportsnet 360 HD + Outdoor Life Network Canada HD + beIN Sport Canada HD + CBS Sports Network Canada HD + NBA TV Canada TV HD + Golf Channel Canada HD + Fox Sports Racing HD + WFN-World Fishing Network HD + Sportsnet World HD + Fight Network Canada HD + Wild TV HD + NHL Center Ice 1 HD + NHL Center Ice 2 HD + NHL Center Ice 3 HD + NHL Center Ice 4 HD + NHL Center Ice 5 HD + NHL Center Ice 6 HD + NHL Center Ice 7 HD + NFL Network HD + NFL Sunday Ticket HD 1 + NFL Sunday Ticket HD 2 + NFL Sunday Ticket HD 3 + NFL Sunday Ticket HD 4 + NFL Sunday Ticket HD 5 + NFL Sunday Ticket HD 6 + MLB Extra Innings 1 HD + MLB Extra Innings 2 HD + MLB Extra Innings 3 HD + MLB Extra Innings 4 HD + MLB Extra Innings 5 HD + MLB Extra Innings 6 HD + MLB Extra Innings 7 HD + CNN HD + CTV News Channel HD + CBC News Network HD + CP24 (CablePulse 24) HD + BNN - Business News Network HD + Weather Network HD + MSNBC Canada HD + HLN HD + BBC World HD + Discovery Velocity + Discovery Channel (CAN) HD + TLC Canada HD + History Canada HD East + Discovery Science Canada HD + National Geographic Canada HD + Animal Planet Canada HD + Oprah Winfrey Network Canada HD + Travel + Escape HD + Investigation Discovery Canada HD + Family Jr. HD + YTV (Youth Television) - East HD + Teletoon - East HD + Family Channel Canada - East HD + Nickelodeon Canada HD + Treehouse HD + Family CHRGD HD + ABC Spark HD + Cartoon Network Canada HD + Much Music HD + M3 HD + AUX HD + MTV Canada HD + CMT Canada HD + HGTV Canada HD + Slice HD + W (WTN) - East HD + Food Network Canada HD + Cosmopolitan TV East HD + OUTtv HD + SundanceTV Canada HD + A&E Canada HD + Showcase Canada HD + DTOUR HD + Gusto TV HD + Bravo Canada HD + E! Canada HD + Comedy Network - East HD + Comedy Network - West HD + Space HD + SPIKE Canada HD + H2 Canada HD + Game Show Network - East HD + Cottage Life HD + Yes TV (CITS) Burlington, ON HD + HIFI + Love Nature + RadXHD + Smithsonian Channel Canada + + \ No newline at end of file diff --git a/config/siteini.pack/International/tvpassport.com.ini b/config/siteini.pack/International/tvpassport.com.ini new file mode 100644 index 0000000..019b85c --- /dev/null +++ b/config/siteini.pack/International/tvpassport.com.ini @@ -0,0 +1,84 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: tvpassport.com +* @MinSWversion: 1.1.1/56.27 +* @Revision 0 - [18/07/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=tvpassport.com|timezone=America/New_York|maxdays=4|cultureinfo=en-US|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=US|episodesystem=onscreen} +url_index{url|http://www.tvpassport.com/tv-listings/stations/|channel|/|urldate|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|yyyy-MM-dd} +* +index_showsplit.scrub {multi|
    |">} *not used +*index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +index_urlchannellogo {url(scope=datelogo)||} +* +scope.range{(indexshowdetails)|end} +index_start.scrub {single|data-listDateTime="||"|"} +index_title.scrub {single|data-showName="||"|"} +index_subtitle.scrub {single|data-episodeTitle="||"|"} +* +index_temp_1.scrub {single|data-guest="||"|"} +index_description.scrub {single|data-description="||"|"} +index_description.modify {addend('index_temp_1' not "")|Guests: 'index_temp_1'..} +index_category.scrub {single(separator=", ""/")|data-showType="||"|"} +index_starrating.scrub {single|data-starRating="||"|"} +index_rating.scrub {single|data-rating="||"|"} +* +index_director.scrub {single(separator=", ")|data-director="||"|"} +index_actor.scrub {single(separator=", ")|data-cast="||"|"} +index_productiondate.scrub {single|data-year="||"|"} +* +index_starrating.modify {clear("0")} +index_title.modify {set("Movie")|'index_subtitle'} +index_subtitle.modify {clear('index_title')} +end_scope + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### PROVIDER FILE CREATION (only to create the xxx-channel.xml file) +** +* +* enter you zip/postal code(no spaces) in the site_id="xxxxx",use this line in you webgrab++config.xml +* to create a provider list. +* example... +* dummy +* dummy +* +** @auto_xml_channel_start +*url_index {url|http://www.tvpassport.com/index.php/lineups} +*url_index.headers {accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8} +*url_index.headers {contenttype=application/x-www-form-urlencoded} +*url_index.headers {postdata=postalCode='index_variable_element'} +* +*index_variable_element.modify {set(scope=urlindex)|'config_site_id'} +*index_site_id.scrub {multi|} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end +*--------------------------------------------------------------------------------------------------------------------------- +*--------------------------------------------------------------------------------------------------------------------------- +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +* use a provider line from the file created above +* +** @auto_xml_channel_start +*url_index {url|http://www.tvpassport.com/lineups/set/|channel|?lineupname=##provider##&tz=} +* +*scope.range{(urlindex)|end} +*index_temp_9.modify {set|'config_xmltv_id'} +*index_temp_9.modify {cleanup(style=urlencode)} +*url_index.modify {replace|##provider##|'index_temp_9'} +*end_scope +* +*index_site_id.scrub {multi|
    |href="http://www.tvpassport.com/tv-listings/stations/|">|
    } +*index_site_channel.scrub {multi|
    |data-stationName="|"|
    } +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end + diff --git a/config/siteini.pack/International/tvpassport.com_providersL9H1N3.xml b/config/siteini.pack/International/tvpassport.com_providersL9H1N3.xml new file mode 100644 index 0000000..48dbba7 --- /dev/null +++ b/config/siteini.pack/International/tvpassport.com_providersL9H1N3.xml @@ -0,0 +1,13 @@ + + + + Broadcast-Dundas, ON + Bell Fibe TV-Toronto, ON - Digital + Cogeco-Ancaster (Digital), ON - Digital + Cogeco-Ancaster, ON + VMedia-Ontario, ON - Digital + Bell TV-Eastern Canada, ON + Shaw Direct (Star Choice)-Advanced Lineup - Eastern Canada, ON + Shaw Direct (Star Choice)-Classic Lineup - Eastern Canada, ON + + \ No newline at end of file diff --git a/config/siteini.pack/International/yo.tv.ini b/config/siteini.pack/International/yo.tv.ini new file mode 100644 index 0000000..30e0396 --- /dev/null +++ b/config/siteini.pack/International/yo.tv.ini @@ -0,0 +1,205 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: yo.tv +* @MinSWversion: +* @Revision 4 - [22/04/2016] 1NSdbZVbpZDX +* - fix title to match generic siteini, fix credits details +* added subtitles and production date +* @Revision 3 - [31/01/2016] 1NSdbZVbpZDX +* - fix subtitle, episode and gabs +* @Revision 2 - [28/01/2016] Francis De Paemeleere +* - create a country only channels.xml generation +* @Revision 1 - [27/01/2016] 1NSdbZVbpZDX +* - make a generic siteini +* @Revision 0 - [08/09/2014] Willy De Wilde/Francis De Paemeleere +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=yo.tv|timezone=UTC|maxdays=14.14|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=50|nopageoverlaps} + +urldate.format {daycounter|0} +url_index{url |http://##COUNTRY##.yo.tv/api/GS?cid=##CHANNEL_ID##,&offset=,&day=|urldate|} + +scope.range {(urlindex)|end} +index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"} +url_index.modify {replace|##COUNTRY##|'index_temp_1'} +index_temp_1.modify {substring(type=regex)|'config_site_id' "PROVIDER_ID:([^,]*)"} +url_index.modify {replace|##PROVIDER_ID##|'index_temp_1'} +index_temp_1.modify {substring(type=regex)|'config_site_id' "CHANNEL_ID:([^,]*)"} +url_index.modify {replace |##CHANNEL_ID##|'index_temp_1'} +end_scope + +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {daycounter|0} + +*index_showsplit.scrub {regex (debug)|| | |

    } +index_title.scrub {single (separator=": " include=first)| |

    |

    } +*index_title.scrub {regex (separator=": " include=first)||>(.*?)\s<\/h2>||} *OLD +index_title.modify {cleanup (tags="<"">")} +index_subtitle.scrub {single (separator=": " exclude=first)| |

    |

    } +index_subtitle.modify {cleanup (tags="<"">")} *NEW +index_temp_3.scrub {regex ||\((\d{4})\).<\/h2>\s

    ||} *for productiondate +index_title.modify {remove(type=regex)|(.\(\d{4}\)$)} +index_subtitle.modify {remove(type=regex)|(.\(\d{4}\)$)} + +scope.range {(indexshowdetails)|end} +index_temp_1.scrub {single|href='||'>|} +index_temp_2.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"} *for urlshow +index_urlshow.modify {set |http://'index_temp_2'.yo.tv'index_temp_1'} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the detail pages +end_scope + +scope.range {(showdetails)|end} +title.scrub {single (separator=": " include=first)|bg-title" >||

    |} +title.modify {remove (type=regex)|(.\(\d{4}\)$)} +subtitle.scrub {single (separator=": " exclude=first)|||} +subtitle.modify {remove (type=regex)|(\s\(\d{4}\))} +subtitle.modify {remove | ||

    |

    } +episode.modify {remove (type=regex)|(:?.of.\d+)} +episode.modify {remove (type=regex)|(.<.*span.*)} +episode.modify {replace |Season |S.} +episode.modify {replace | Episode |-Ep.} +*subtitle.scrub {regex (debug) ||prog box">(?:.*)(.*?)Episode||} +*subtitle.modify {remove (type=regex)|(.<.*span.*)} +subtitle.scrub {single |prog box">|| |

    } +subtitle.modify {cleanup (tags="<"">")} +subtitle.modify {remove (type=regex)|(.Episode.*)} +subtitle.modify {remove (type=regex)|(Rating.*)} +productiondate.modify {addstart |'index_temp_3'} +rating.scrub {single |Rating: |||

    ||} +description.modify {remove |} +category.scrub {multi |Genre|
    |
    |
    |>

    |(?:.*?)(?:
  • (.*?)
  • (?:.*?))*||} +*actor.modify {replace |

    |[} +*actor.modify {addend (notnull)|]} +*actor.modify {remove | [Actor]} +*************** +*specific credits +actor.scrub {multi |id="cast-box" >|
    |
    } +temp_1.scrub {multi |Crew|
  • |
  • |} *debug for more credits +temp_1.modify {replace |
    |[} +temp_1.modify {addend (notnull)|]} +director.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Director\])"} *spa, eng +director.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Réalisateur\])"} *french +composer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Compositor\])"} *spa, port +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Produtora\])"} *port +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Produtor\])"} *port +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Productor\])"} *spa +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Productor ejecutivo\])"} *spa +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Compañías productores\])"} *spa +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Executive Producer\])"} *eng +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Production Company\])"} *eng +producer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Société de production\])"} *french +commentator.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Reporter\])"} *eng +commentator.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Jornalista\])"} *port +commentator.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Journaliste\])"} *french +writer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Writer\])"} *eng +writer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Autor\])"} *port +writer.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Escritor\])"} *spa +presenter.modify {substring (type=regex)|'temp_1' "(.*?)\s(?:\[Apresentador\])"} *port + +showicon.scrub {single |og:image"|content="https:|"| />} +showicon.modify {addstart (notnull)|https:} + +end_scope + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### COUNTRY FILE CREATION (only to create the xxx_country.xml file) +** +** @auto_xml_country_start +*url_index{url|http://www.yo.tv} +*index_site_channel.scrub {multi|
      |
    • |
    • |
    } +*index_site_id.scrub {multi|
      |href="|"|
    } +*scope.range {(channellist)|end} +*index_site_id.modify {substring(type=regex)|http://(.*).yo.tv} +*index_site_id.modify {addstart|COUNTRY:} +*index_site_id.modify {addend|,ZIPCODE:} +*index_site_channel.modify {cleanup(tags="<"">")} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_country_start + + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### PROVIDER FILE CREATION (only to create the xxx_provider.xml file) +** +** @auto_xml_provider_start +*scope.range {(urlindex)|end} +*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"} +*url_index.modify {replace|##COUNTRY##|'index_temp_1'} +*index_temp_1.modify {substring(type=regex)|'config_site_id' "ZIPCODE:([^,]*)"} +*url_index.modify {replace|##ZIPCODE##|'index_temp_1'} +*end_scope +* +*url_index{url |http://##COUNTRY##.yo.tv/api/setting?id=##ZIPCODE##&lookupid=1} +*index_site_channel.scrub {regex||"Name"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +*index_site_id.scrub {regex||"Value"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +*scope.range {(channellist)|end} +*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"} +*index_site_id.modify {addstart|COUNTRY:'index_temp_1',PROVIDER_ID:} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_provider_end + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNELPROVIDER FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channelprovider_start +*scope.range {(urlindex)|end} +*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"} +*url_index.modify {replace|##COUNTRY##|'index_temp_1'} +*index_temp_1.modify {substring(type=regex)|'config_site_id' "PROVIDER_ID:([^,]*)"} +*url_index.modify {replace |##PROVIDER_ID##|'index_temp_1'} +*end_scope +* +*url_index{url|http://##COUNTRY##.yo.tv/settings/headend/##PROVIDER_ID##} +*index_site_channel.scrub {multi(separator=" " include="alt=""

    ")|
    |
  • |
  • |} +*index_site_channel.modify {remove |alt=} +*index_site_channel.modify {remove |"} +*index_site_channel.modify {remove |

    } +*index_site_channel.modify {remove |

    } +*index_site_id.scrub{multi|
    |
  • ")|
    |
  • |
  • |} +*index_site_channel.modify {remove|alt=} +*index_site_channel.modify {remove|"} +*index_site_channel.modify {remove|

    } +*index_site_channel.modify {remove|

    } +*index_site_id.scrub{multi|
    |
  • + + + Anguilla + Antigua and Barbuda + Argentina + Austria + Bahamas + Barbados + Belgium + Bolivia + Brazil + Canada + Chile + China + Colombia + Costa Rica + Cuba + Denmark + Dominican Republic + Ecuador + El Salvador + Finland + France + Germany + Grenada + Guatemala + Guyana + Honduras + Ireland + Italy + Jamaica + Luxembourg + Mexico + Montserrat + Netherlands + Nicaragua + Norway + Panama + Perú + Poland + Portugal + Russia + Saint Kitts and Nevis + Saint Lucia + Saint Martin + Saint Vincent and the Grenadines + Spain + Sweden + Switzerland + Trinidad and Tobago + Turkey + Turks and Caicos Islands + United Kingdom + United States + Venezuela + Virgin Islands, British + + \ No newline at end of file diff --git a/config/siteini.pack/International/yo.tv_info.txt b/config/siteini.pack/International/yo.tv_info.txt new file mode 100644 index 0000000..e5303cf --- /dev/null +++ b/config/siteini.pack/International/yo.tv_info.txt @@ -0,0 +1,29 @@ + +for yo.tv, you can choose your country/zipcode/provider + +################################################################################################## +# Create your own personalized channels (Country selection) # +################################################################################################## +Before you start, it is best to make a copy of your original WebGrab++.config.xml and delete all the channels in it to start from + +------------------------------------------------ + Generate the channels list +------------------------------------------------ +01. open yo.tv.ini with a text editor (An excellent free-ware one is NotePad++) +02. locate the CHANNEL FILE CREATION part (somewhere at the bottom) +03. remove the FIRST * in all the lines between @auto_xml_channel_start and @auto_xml_channel_end +04. open the yo.tv_coutries.xml and select your country you want (copy that line) +05. in the WebGrab++.config.xml file, paste the country line form step 04 : eg. + United States +06. run WG++ once. +07. you should get a yo.tv.channels.xml file in the same directory as the .ini file +08. put the first * back in all the lines between @auto_xml_channel_start and @auto_xml_channel_end (=reverting step 03) +09. remove the country line in you WebGrab++.config.xml file (=reverting step 05) +10. use the yo.tv.channels.xml to set up your WebGrab++.config.xml file (it contains all the channels for your country) + + +################################################################################################## +# Create your own personalized channels (Full selection) # +################################################################################################## + +@TODO (ask on the forum if you don't get all the channels you need with the above info) \ No newline at end of file diff --git a/config/siteini.pack/Ireland/entertainment.ie.channels.xml b/config/siteini.pack/Ireland/entertainment.ie.channels.xml new file mode 100644 index 0000000..90ed124 --- /dev/null +++ b/config/siteini.pack/Ireland/entertainment.ie.channels.xml @@ -0,0 +1,73 @@ + + + + RTE One + RTE Two + TV3 + TG4 + 3e + BBC One + BBC Two + UTV + Channel 4 + E4 + More4 + Sky1 + Sky2 + Pick TV + BBC Three + BBC Four + ITV2 + ITV3 + ITV4 + Comedy Central + Comedy Central Extra + Sky Atlantic + E! Entertainment + Sky Living + FX + GOLD + Dave + Channel 5 + Watch + Alibi + Syfy + Challenge TV + Universal Channel + Discovery Channel + National Geographic + Biography Channel + History Channel + Sky Movies Premiere + Sky Movies Premiere +1 + Sky Movies Comedy + Sky Movies Action & Adventure/HD + Sky Movies Family + Sky Movies Drama & Romance/HD + Sky Movies Sci-Fi/Horror + Sky Movies Classics + Sky Movies Modern Greats + Sky Movies Indie + Sky Movies Showcase + Sky Movies Crime & Thriller/HD + FilmFour + Turner Classic Movies + MGM + Nickelodeon + CBBC + Cartoon Network + Boomerang + MTV + MTV Rocks + VH1 + Sky Sports 1 + Sky Sports 2 + Sky Sports 3 + Sky Sports 4 + Setanta Ireland + Setanta Sports 1 + Eurosport + Eurosport 2 + ESPN + + \ No newline at end of file diff --git a/config/siteini.pack/Ireland/entertainment.ie.ini b/config/siteini.pack/Ireland/entertainment.ie.ini new file mode 100644 index 0000000..4074a95 --- /dev/null +++ b/config/siteini.pack/Ireland/entertainment.ie.ini @@ -0,0 +1,85 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: entertainment.ie +* @MinSWversion: V0 +* none +* @Revision 3 - [17/08/2014] Francis De Paemeleere +* fix neutral cultureinfo +* @Revision 2 - [10/08/2012] Willy De Wilde/ jan van Straaten +* loop in showsplit +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=entertainment.ie|timezone=UTC+00:00|maxdays=6|cultureinfo=en-IE|charset=iso-8859-1|titlematchfactor=90} +url_index{url|http://entertainment.ie/tv/display.asp?channelid=|channel|&programme=&programme_day=|urldate|&programme_time=|subpage|&submit=Search} +urldate.format {datestring|dd+MMMM+yyyy} +subpage.format{list|allday|time8} +* +*index_showsplit.scrub {multi||} +* +* the following loop removes identical shows between 23:00 and 01:00, caused by overlap of the subpage content around midnight +scope.range {(splitindex)|end} +index_temp_1.modify {calculate(type=element format=F0)|'index_showsplit' #} * number of index shows +loop {('index_temp_1' > "0" max=200)|end} +index_temp_1.modify {calculate(format=F0)|1 -} *decrease loop counter +index_temp_6.modify {substring(type=element)|'index_showsplit' 'index_temp_1' 1} *show to inspect +index_temp_2.modify {calculate(format=F0)|'index_temp_6' "" @} * start pos starttime +index_temp_2.modify {calculate(format=F0)|4 +} * move 4 pos forward , exact pos of the starttime +index_temp_2.modify {substring(type=char)|'index_temp_6' 'index_temp_2' 5} *starttime, format 05:30 +index_temp_3.modify {calculate(format=F0)|0 *} * reset to 0 +* test condition , index_temp_3 will be 1 if met +index_temp_3.modify {calculate('index_temp_2' <= "1" format=F0)|1 +} * condition <= 01:00 +index_temp_3.modify {calculate('index_temp_2' >= "23" format=F0)|1 +} * condition >= 23:00 +* 1 +index_temp_4.modify {calculate('index_temp_1' > "0" format=F0)|'index_temp_1' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} * 1st next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +* 2 +index_temp_4.modify {calculate('index_temp_1' > "1" format=F0)|'index_temp_4' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} *2nd next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +* 3 +index_temp_4.modify {calculate('index_temp_1' > "2" format=F0)|'index_temp_4' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} *3rd next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +* 4 +index_temp_4.modify {calculate('index_temp_1' > "3" format=F0)|'index_temp_4' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} *4th next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +* 5 +index_temp_4.modify {calculate('index_temp_1' > "4" format=F0)|'index_temp_4' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} *5th next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +* 6 +index_temp_4.modify {calculate('index_temp_1' > "5" format=F0)|'index_temp_4' 1 -} * showindex index next +index_temp_5.modify {substring('index_temp_3' > "0" type=element)|'index_showsplit' 'index_temp_4' 1} *6th next show to inspect if condition met +index_showsplit.modify {remove('index_temp_6' 'index_temp_5' type=element)|'index_showsplit' 'index_temp_1' 1} *remove if same +index_temp_5.modify {clear} +end_loop +end_scope.range +* +index_start.scrub {single|||} +index_title.scrub {single|||<} +index_subtitle.scrub {single|||<} +index_urlshow {url|http://entertainment.ie|||} +description.scrub {single|
    |

    |

    |
    } +* +* enable the next two lines to create a channel list +*index_site_channel.scrub {multi||||} +* +title.scrub {single||||} +description.scrub {single|
    Info|||} +rating.scrub {single|Age:|">||} +category.scrub {single|Genre:|">||} + +* If you want the classic credits (for Mediaportal) pls. remove the lines below. +subtitle.modify {addend| ('category')} +category.modify {remove|'category'} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*scope.range {(channellist)|end} +*url_index {url|http://m.tv-guide.upc.ie/channels} +*index_site_channel.scrub {multi|||} +*index_site_id.scrub {multi||} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Israel/i24news.tv.channels.xml b/config/siteini.pack/Israel/i24news.tv.channels.xml new file mode 100644 index 0000000..309f8ff --- /dev/null +++ b/config/siteini.pack/Israel/i24news.tv.channels.xml @@ -0,0 +1,6 @@ + + + + I24 News + + \ No newline at end of file diff --git a/config/siteini.pack/Israel/i24news.tv.ini b/config/siteini.pack/Israel/i24news.tv.ini new file mode 100644 index 0000000..0de8ce1 --- /dev/null +++ b/config/siteini.pack/Israel/i24news.tv.ini @@ -0,0 +1,38 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: i24news.tv +* @MinSWversion: 1.1.1/56.27 +* @Revision 0 - [06/07/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=i24news.tv|timezone=UTC+02:00|maxdays=7|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=IL|episodesystem=onscreen} +* +url_index{url|http://www.i24news.tv/en/tv/schedule/|urldate|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|dddd} +* +index_urlchannellogo {url(scope=datelogo)||(.+?)<\/span>"} +index_temp_1.modify {cleanup(removeduplicates=equal,100 span=4 link="index_showsplit")} +end_scope +* +index_start.scrub {single(separator="-" include=first)||||} +index_stop.scrub {single(separator="-" include=last)||||} +index_title.scrub {single||||} +index_category.modify {addstart|News} +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {|} +*index_site_id.modify {set|i24} +*index_site_channel.modify {set|I24 News} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Israel/isramedia.net.ini b/config/siteini.pack/Israel/isramedia.net.ini new file mode 100644 index 0000000..8227176 --- /dev/null +++ b/config/siteini.pack/Israel/isramedia.net.ini @@ -0,0 +1,28 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: isramedia.net +* @MinSWversion: V0 +* none +* @Revision 0 - [15/07/2012] Jan van Straaten +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=isramedia.net|timezone=UTC+02:00|maxdays=5|cultureinfo=he-IL|charset=windows-1255|titlematchfactor=90} +url_index{url(debug)|http://www.isramedia.net/channelshows.php?channelid=|channel|&days=|urldate|} +urldate.format {daycounter|0} +index_showsplit.scrub {multi||} +* +index_start.scrub {single()||} +index_duration.scrub {single||} +index_title.scrub {single||} +index_description.scrub {single|||} +index_category.scrub {single||} +* +* the following creates a channel list file: +*index_site_channel.scrub {multi|} +*index_site_id.scrub {multi|} +* \ No newline at end of file diff --git a/config/siteini.pack/Israel/tv.walla.co.il.channels.xml b/config/siteini.pack/Israel/tv.walla.co.il.channels.xml new file mode 100644 index 0000000..0b098a5 --- /dev/null +++ b/config/siteini.pack/Israel/tv.walla.co.il.channels.xml @@ -0,0 +1,272 @@ + + + + Channel 10 + !E Channel הבידור + Channel 1 + cnn + Sport 5+ + Channel ויוה + Channel 2 + חינוכית + mtv - Europe + vh-1 - Europe + ישראל פלוס + Music 24 + Channel 5 + yes דוקו + hot בידור ישראלי + hot3 + HOT קומדי סנטרל + Channel ONE + ONE + Channel הילדים + Channel 8 + ניקלודיאון + metv + Channel 10 + mgm + Good Life Channel + !E Channel הבידור + Channel 1 + cnn + Sport 5+ + נ. ג'אוגרפיק + Viva History + Viva Viva + Viva הקניות + Viva 2 + חינוכית + הופ! + tcm + fox sport + espn + extreme + Viva 33 + mtv - Europe + vh-1 - Europe + MEZZO + bbc world + sky news + RTL + sat 1 + sat 3 + arte + tv5 - צרפת + tve + protv + bloomberg + ntv mir + playboy + Music 24 + mbc + lbc + ירדן + rotana + gtv + Channel 1 Rus + RTR Planeta + nashe kino + france 2 + zee tv + Channel 5 + סעודיה + Channel דיסני + MGM HD + FTV HD + Hot Family + HOT3 HD + Hot Zone + הופ ! ילדות ישראלית + 5+ GOLD + biography + BLUE HUSTLER + cctv + cnbc + DOM KINO + duna tv + EUROSPORT HD + FRANCE 24 + hot action + HOT BOLLYWOOD + hot bombay + HOT DEFINITION HD + hot drama + hot fun + HOT GOLD + hot prime + hot בידור ישראלי + HOT לולי + hot סרטים + HOT קידס + hot3 + Sport 1 HD + IETV + HOT קומדי סנטרל + inter+ + Channel ONE + mezzo full + mtv 2 + MTV DANCE + mtv hits + MTVN HD + NAT GEO HD + NAT GEO WILD + rtv - int + TV NANNY + Zone Reality + ZONE ROMANTICA + אגו + אגו טוטאל + אל ג'זירה + בית ומשפחה + דובאי + הופ לומדים + Viva פלטינה + לוגי + מכאן - הטלוויזיה של הציבור + ניקלודיאון + סוריה + Sport 1 + Sport 2 + Sport 5 HD + Channel 9 + Channel ג'וניור + Channel האוכל + Channel הבריאות + Channel ההידברות + Channel הטיולים + Channel הילדים + Channel 8 + קארמה + yes india + adult channel + blue hustler + yes News + CCTV 9 + Channel ביוגרפיה + TVR int. + אגו + daystar + Channel הבריאות + 1+1 + aljazeera english + france 24 + ietv + Channel האוכל + amateur babes + Sport 1 + Sport 2 + לוגי + HD N.G. + HD Sport + Channel הקבלה + iTV Weather + yes בייבי + ג'וניור + MGM HD + Test 1 + metv + Channel 10 + mgm + Channel החיים הטובים + !E Channel הבידור + Channel 1 + cnn + Sport 5+ + נ. ג'אוגרפיק + דיסקברי + Channel History + Channel Viva + Channel הקניות + Channel 2 + חינוכית + הופ! + tcm + fox sport + espn + yes Store + extreme + Channel 33 + mtv - Europe + vh-1 - Europe + MEZZO + bbc world + sky news + Channel קהילתי - מכאן + RTL + sat 1 + sat 3 + arte + tv5 - צרפת + tve + ישראל פלוס + EUROSTAR + protv + bloomberg + ntv mir + playboy + Russian MusicBox + Music 24 + mbc + lbc + ירדן + rotana + אבו-דאבי + אלג'זירה + rtm + gtv + Channel 1 Rus + RTR Planeta + RTVi + Zone romantica - רומנטיקה + nashe kino + mtv music + Zone Reality - Reality TV + yes Teleclub + france 2 + zee tv + קריוקי + Channel 5 + Channel הילדים לילדי yes + yes 1 + yes 2 + yes 3 + Isbva + yes 4 + DVDbox - באפיק 6 + yes דוקו + yes stars Drama HD + yes stars Action HD + Channel הטיולים + אגו טוטאל + MTV Dance + NAT GEO WILD + yes5(יסבבה) + EUROSPORT HD + הידברות + RBN + NHK World + בית ומשפחה + Channel דיסני + TVCI + הופ! ילדות + JimJam + yes sci fi + yes Raduga + yes stars Comedy + yes stars Drama + yes stars Action + yes stars Base + פורטל המשחקים + Sport 1 HD + ONE + iTV HOP Lomdim Plays 1 + Channel המיסטיקה + TVmall + iTV 223 (Spiderman 3) + 5+ gold + old music 11 + ניקלודיאון + + \ No newline at end of file diff --git a/config/siteini.pack/Israel/tv.walla.co.il.ini b/config/siteini.pack/Israel/tv.walla.co.il.ini new file mode 100644 index 0000000..391bfac --- /dev/null +++ b/config/siteini.pack/Israel/tv.walla.co.il.ini @@ -0,0 +1,33 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: tv.walla.co.il +* @MinSWversion: V0 +* none +* @Revision 1 - [25/07/2011] Willy de Wilde +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=tv.walla.co.il|timezone=UTC+02:00|maxdays=7|cultureinfo=he-IL|charset=windows-1255|titlematchfactor=50|firstshow=now} +url_index{url()|http://tv.walla.co.il/?w=/|channel|//|urldate|/1} +urldate.format {datestring|yyyy-MM-dd} +* +* +index_showsplit.scrub {multi ()||} +description.scrub {single|class="w3" style="padding-top:10px;">||} +* enable the next three lines (one url) to create a channel list +*url_index{url()|http://tv.walla.co.il/?w=/3/} +*url_index{url()|http://tv.walla.co.il/} +*url_index{url()|http://tv.walla.co.il/?w=/2/} +*index_site_channel.scrub {multi||||} +* +scope.range{(indexshowdetails)|end} +index_start.scrub {single||} +index_title.scrub {single|} +temp_6.scrub {single(separator=", ")|- Cast:||. |} +actor.modify {addstart("")|'temp_6'} * use alternative actors +actor.modify {cleanup(tags="'<""button to render")} +actor.modify {cleanup(tags="'"".adsbygoogle")} +actor.modify {cleanup(tags=" - "".adsbygoogle")} +actor.modify {cleanup(tags="[]).push""2005-2014")} +actor.modify {cleanup(tags="Eventuali""comunicazioni")} +actor.modify {cleanup(tags="segnalazioni""")} + +* production date decoding +productiondate.scrub {single|Descrizione:|||} +temp_5.scrub {single(separator=", " include=last)|- Cast: |. ||. Le schede} * alternative production date +temp_5.modify {calculate(format=F0)|'temp_5' 1 *} * remove unwanted chars +temp_5.modify {remove('temp_5' < "1900")|'temp_5'} * remove wrong dates +productiondate.modify {addstart("")|'temp_5'} * use alternative date +productiondate.modify {clear("0")} * clear element if 0 + +* starrating decoding +starrating.scrub {single|alt="Valutazione||">|">} +starrating.modify {calculate(~ "stelle" format=F0)} * extracts the number of stars +starrating.modify {addend(not "")|/5} + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {regex||.*?)+||} +*index_site_channel.scrub {regex||(.*?).*?)+||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Italy/video.gazzetta.it.channels.xml b/config/siteini.pack/Italy/video.gazzetta.it.channels.xml new file mode 100644 index 0000000..8983d50 --- /dev/null +++ b/config/siteini.pack/Italy/video.gazzetta.it.channels.xml @@ -0,0 +1,6 @@ + + + + Gazzetta tv + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/video.gazzetta.it.ini b/config/siteini.pack/Italy/video.gazzetta.it.ini new file mode 100644 index 0000000..beee3ac --- /dev/null +++ b/config/siteini.pack/Italy/video.gazzetta.it.ini @@ -0,0 +1,36 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: video.gazzetta.it +* @MinSWversion: +* @Revision 0 - [17/11/2015] Francis De Paemeleere +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=video.gazzetta.it|timezone=Europe/Rome|maxdays=12|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|nopageoverlaps} + +urldate.format {datestring|yyyy-MM-dd} +url_index{url|http://video.gazzetta.it/daily-programs?date=|urldate|&appunica=false} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages + +index_showsplit.scrub {regex||
    \s*
    \s*||} + +index_start.scrub {regex||class="time"[^>]*>(.*?)]*>(.*?)]*>(.*?)]*>(.*?) + + + NHK総合 + NHK Eテレ + MBSテレビ + ABCテレビ + カンテレ + 読売テレビ + テレビ大阪 + サンテレビ + KBS京都 + NHK BS1 + NHK BSプレミアム + BS日テレ + BS朝日 + BS-TBS + BSジャパン + BSフジ + BS11デジタル + BS12 トゥエルビ + WOWOWプライム + WOWOWライブ + WOWOWシネマ + スターチャンネル1 + スターチャンネル2 + スターチャンネル3 + 放送大学1 + 放送大学2 + 放送大学3 + Dlife(ディーライフ) + イマジカBS・映画 + ザ・シネマHD + ムービープラスHD + 映画・チャンネルNECO-HD + 日本映画専門チャンネルHD + スーパー!ドラマTV HD + 女性チャンネル♪LaLa TV(HD) + FOX HD + AXN HD + AXNミステリー HD + KBS World HD + ファミリー劇場HD + ホームドラマチャンネルHD 韓流・時代劇・国内ドラマ + 時代劇専門チャンネルHD + V☆パラダイスHD + エンタメ~テレHD☆シネドラバラエティ + 衛星劇場HD + 東映チャンネルHD + エキサイティング・グランプリ + FOXムービー + 海外アニメ!カートゥーン ネットワークHD + キッズステーションHD + BSアニマックス + ディズニーXD(エックスディー) HD + AT-X HD! + GAORA SPORTS HD + J SPORTS 1 HD + J SPORTS 2 HD + J SPORTS 3 HD + スカイA + 日テレジータス HD + ゴルフネットワークHD + J SPORTS 4 HD + EXスポーツ + FIGHTING TV サムライ (HD) + スペースシャワーTV HD + MTV HD + MUSIC ON! TV(エムオン!)HD + 100%ヒッツ!スペースシャワーTV プラス HD + 歌謡ポップスチャンネル HD + ミュージック・ジャパン TV + ミュージック・エア HD + クラシカ・ジャパンHD + TBSチャンネル1 最新ドラマ・音楽・映画 + 日テレプラス ドラマ・アニメ・スポーツ + ディズニー・チャンネルHD + MONDO TV HD + フジテレビNEXT ライブ・プレミアム + DHCシアター カルチャー&エンターテインメント + タカラヅカ・スカイ・ステージ + ディスカバリーチャンネル(HD) + ヒストリーチャンネルHD 日本・世界の歴史&エンタメ + ナショナル ジオグラフィック チャンネル HD + アニマルプラネット(HD) + TBSニュースバード(HD) + 日経CNBC HD + テレ朝チャンネル2 ニュース・情報・スポーツ + CNNj HD + CNN/US HD + 囲碁・将棋チャンネルHD + パチンコ★パチスロTV!HD + 釣りビジョンHD + KNTV HD + 中国テレビ★CCTV大富 + Mnet HD + DATV + ショップチャンネル + QVC(キューヴィーシー) + ジャパネットチャンネルDX ハイビジョン + ジュエリー☆GSTV HD + グリーンチャンネルHD + グリーンチャンネル2HD + SPEEDチャンネル + eo光チャンネル + + \ No newline at end of file diff --git a/config/siteini.pack/Japan/eonet.jp.ini b/config/siteini.pack/Japan/eonet.jp.ini new file mode 100644 index 0000000..a2ce6de --- /dev/null +++ b/config/siteini.pack/Japan/eonet.jp.ini @@ -0,0 +1,69 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: eonet.jp +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [01/05/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=eonet.jp|timezone=Asia/Tokyo|maxdays=8|cultureinfo=ja-JP|charset=Shift_JIS|titlematchfactor=90} +site {ratingsystem=JP|episodesystem=onscreen} +url_index{url|http://hikaritv.eonet.jp/program/tv.php?site=039&mode=07&shour=01&lhour=24&category=sa&ldate=1&template=channel_program&station=|channel|&sdate=|urldate|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|yyyyMMdd} +* +index_showsplit.scrub {multi|
    |
    ||||||
    ||} +index_start.scrub {single () |||} +index_title.scrub {single () |">|||} +* +title.scrub {single|class="w4b" style="margin-bottom:10px;">||
    } +*index_site_id.scrub {multi|} +* +description.modify {cleanup} \ No newline at end of file diff --git a/config/siteini.pack/Italy/alice.tv.channels.xml b/config/siteini.pack/Italy/alice.tv.channels.xml new file mode 100644 index 0000000..a5b9118 --- /dev/null +++ b/config/siteini.pack/Italy/alice.tv.channels.xml @@ -0,0 +1,6 @@ + + + + Alice + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/alice.tv.ini b/config/siteini.pack/Italy/alice.tv.ini new file mode 100644 index 0000000..bc4a08c --- /dev/null +++ b/config/siteini.pack/Italy/alice.tv.ini @@ -0,0 +1,48 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: alice.tv +* @MinSWversion: V1.1.1/42 +* @Revision 1 - [17/02/2014] Francis De Paemeleere +* added .channels.xml auto generation +* @Revision 0 - [25/01/2014] Steve Wildmore +* creation +* @Remarks: Site changes after 1:30 AM so run after that time +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=lifestyle.alice.tv|timezone=UTC+01:00|maxdays=7|cultureinfo=it-IT|charset=ISO-8859-1|titlematchfactor=90|episodesystem=onscreen} +url_index{url|http://lifestyle.alice.tv/alice-in-tv/} + +urldate.format {datestring|dddd} * not used + +index_showsplit.scrub {multi|
    |
    |
    |} +index_showsplit.modify {cleanup(removeduplicates)} * first program of Sera = last of Pomeriggio + +index_start.scrub {single|
    ||<|
    } +index_start.modify {cleanup(tags="<"">")} + +index_title.scrub {single|

    |||

    } +index_title.modify {cleanup(tags="<"">")} + +index_subtitle.scrub {single|

    ||

    |

    } +index_description.scrub {single|

    ||

    |
    } + +index_urlshow {url(include=first)||

    ||

    } +temp_1.scrub {single|

    ||

    |
    } +temp_1.modify {cleanup(tags="<"">")} + +title.modify {addstart|'index_title'} * force title to not update unnecessarily +description.modify {addend('index_urlshow' not "")| - 'temp_1'} * add detailed description if available + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {multi|} +*scope.range {(channellist)|end} +*index_site_id.modify {clear} +*index_site_id.modify {addstart|alice} +*index_site_channel.modify {addstart|Alice} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/guidatv.sky.it.channels.xml b/config/siteini.pack/Italy/guidatv.sky.it.channels.xml new file mode 100644 index 0000000..e7b6c05 --- /dev/null +++ b/config/siteini.pack/Italy/guidatv.sky.it.channels.xml @@ -0,0 +1,316 @@ + + + + Sky Uno HD + Sky Atlantic HD + Fox HD + Fox Life HD + Fox Crime HD + CI Crime+ Investigation HD + Sky Arte HD + TV8 + AXN HD + Comedy Central + Cielo HD + Fox Animation HD + Fox Comedy HD + Lei + Real Time HD + MTV HD + AXN Sci-Fi + Classica HD + Automoto TV + MAN-GA + Sky 3D - Ch 150 + La3 + Sky Sport24 HD + Sky Sport 1 HD + Sky Sport 2 HD + Sky Sport 3 HD + Fox Sports HD + Sky Sport F1 HD + Sky Sport MotoGP HD + Eurosport HD + Sky Cinema 1 HD + Sky Cinema Hits HD + Sky Cinema Family HD + Sky Cinema Passion HD + Sky Cinema Comedy HD + Sky Cinema Max HD + Sky Cinema Cult HD + Sky Cinema Classics HD + Primafila 1 + Discovery Channel HD + National Geo HD + Discovery Science HD + Discovery Travel & Living HD + History Channel HD + Nat Geo Wild HD + Nat Geo People HD + Gambero Rosso HD + Dove + eXplora HD + Animal Planet + Sky TG24 HD + DeAKids + Nick Junior + Nickelodeon + Cartoon Network + Boomerang + Disney Junior + Disney Channel HD + Disney XD HD + DeA Junior + Baby TV + Super! + K2 + MTV Hits + MTV Rocks + MTV Music + My Deejay + Rock TV + Hip Hop TV + Rai Uno + Rai Due + Rai Tre + La7 + Sky Uno HD + Sky Uno + 1 HD + Sky Atlantic HD + Sky Mario HD + Fox HD + Fox +1 + Fox Life HD + Fox Life +1 + Fox Crime HD + Fox Crime +1 + CI Crime+ Investigation HD + Sky Arte HD + TV8 + AXN HD + AXN + 1 + Comedy Central + Comedy Central + 1 + Cielo HD + Fox Animation HD + Fox Comedy HD + Lei + LEI +1 + Real Time HD + Real Time+1 + MTV HD + AXN Sci-Fi + DMAX HD + DMAX +1 + Classica HD + Laeffe + TV2000 + Fox Crime +2 + Giallo + Deejay TV NOVE + Automoto TV + MAN-GA + Sky 3D - Ch 150 + La3 + Rai Uno + Rai Due + Rai Tre + Rai 4 + Sky Uno HD + Fox HD + La7 + Sky Sport24 HD + Sky Sport 1 HD + Sky Sport 2 HD + Sky Sport 3 HD + Fox Sports HD + Sky Sport Plus HD + Sky Supercalcio HD + Sky Sport F1 HD + Sky Sport MotoGP HD + Eurosport HD + Eurosport 2 HD + J !??! Juventus TV + Roma TV + Bike Channel HD + Sky 3D - Ch 209 + UnireSat + Class Horse TV + PokerItalia24 + SuperTennis HD + Sportitalia + Rai Sport 1 + Rai Sport 2 + Milan Channel + Inter Channel + Lazio Style Channel + Caccia e Pesca + Pesca e Caccia + Sky Calcio 1 HD + Sky Calcio 2 HD + Sky Calcio 3 HD + Sky Calcio 4 HD + Sky Calcio 5 HD + Sky Calcio 6 HD + Sky Calcio 7 HD + Sky Calcio 8 HD + Sky Calcio 9 + Sky Calcio 10 + Sky Calcio 11 + Sky Calcio 12 + Sky Calcio 13 + Sky Cinema 1 HD + Sky Cinema + 1 HD + Sky Cinema + 24 HD + Sky Cinema Hits HD + Sky Cinema Family HD + Sky Cinema Family +1 HD + Sky Cinema Passion HD + Sky Cinema Comedy HD + Sky Cinema Max HD + Sky Cinema Max + 1 HD + Sky Cinema Cult HD + Sky Cinema Classics HD + Sky 3D - Ch 321 + Sky Arte HD-400 + Discovery Channel HD + Discovery Ch +1 + National Geo HD + National Geo +1 + Discovery Science HD + Discovery Travel & Living HD + History Channel HD + History Ch +1 + Nat Geo Wild HD + Nat Geo Wild +1 + Nat Geo People HD + Gambero Rosso HD + Dove + eXplora HD + Animal Planet + Focus Tv + La Sposa + Doctor's Life + QVC + Sky TG24 HD + Sky TG 24 Meteo + TG24 Primo Piano + TG24 Eventi + TG24 Rassegne + Class-Cnbc + Rai News + TG Norba24 + Reteconomy + TRM h24 + SMtv San Marino + Euronews + Sky News + Fox News + CNN Intl + Fox Business + CNBC + Bloomberg + France 24 English + Russia Today + I24news + France 24 + RT Doc HD + DeAKids + DeAKids+1 + Nick Junior + Nick Junior + 1 + Nickelodeon + Nickelodeon + 1 + Cartoon Network + Cartoon Network +1 + Boomerang + Boomerang + 1 + Disney Junior + Disney Junior + 1 + Disney Channel HD + Disney Channel +1 + Disney Channel +2 + Disney XD HD + Disney XD +1 + Disney XD +2 + Disney in English + TeenNick + DeA Junior + Baby TV + Super! + K2 + Frisbee + Sky Radio + Sky Music + MTV Hits + MTV Rocks + MTV Music + My Deejay + Rock TV + Hip Hop TV + Radio Italia Tv + Radionorba TV + RTL 102.5 TV + Primafila 1 + Primafila 2 + Primafila 3 HD + Primafila 4 + Primafila 5 + Primafila 6 + Primafila 7 HD + Primafila 8 + Primafila 9 + Primafila 10 + Primafila 11 + Primafila 12 + Primafila 13 + Primafila 14 + Primafila 15 + Primafila 16 + Primafila 17 + Primafila 18 + Primafila 19 + Rai 1 (DTT) + Rai 2 (DTT) + Rai 3 (DTT) + Rete 4 (DTT) + Canale 5 (DTT) + Italia 1 (DTT) + La7 DTT + TV8 DTT + Deejay TV NOVE DTT + Rai 4 DTT + Iris + Rai 5 + Rai Movie + Rai Premium + Cielo DTT + TV2000 DTT + La7D + La5 + Real Time DTT + QVC DTT + Mediaset Extra + Mediaset Italia Due DTT + GIALLO DTT + RTL 102.5 TV DTT + Top Crime + Boing + K2 Kids Tv DTT + Rai Gulp + Rai Yoyo + Frisbee DTT + Cartoonito + Super! DTT + Rai News DTT + Sky Tg24 DTT2 + DMAX DTT + Rai Storia + Focus DTT + Rai Sport 1 DTT + Rai Sport 2 DTT + SuperTennis DTT + MTV Music DTT + France 24 DTT + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/guidatv.sky.it.ini b/config/siteini.pack/Italy/guidatv.sky.it.ini new file mode 100644 index 0000000..acd1cc6 --- /dev/null +++ b/config/siteini.pack/Italy/guidatv.sky.it.ini @@ -0,0 +1,114 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: guidatv.sky.it +* @MinSWversion: V1.1.1/55.27 +* none +* @Revision 8 - [25/05/2016] Blackbear199 +* - fix channels.xml creation +* @Revision 7 - [16/10/2015] Jan van Straaten +* - improved title and description, added encoding gzip +* @Revision 6 - [21/04/2015] Francis De Paemeleere +* - add channel logo (new .channels.xml generation!) +* @Revision 5 - [14/01/2014] Francis De Paemeleere +* - fix incremental grabbing (both index and detail, grab the same "main" titlte) +* @Revision 4 - [12/01/2014] Francis De Paemeleere +* - fix index section erratic behaviour (skipped shows) +* @Revision 3 - [16/08/2013] Jan van Straaten +* - complete overhaul of the index section , added auto channellist creation +* @Revision 2 - [30/08/2011] Willy De Wilde/Jan van Straaten +* - added credits/category and production date +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=guidatv.sky.it|timezone=Europe/Rome|maxdays=7|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90} +url_index{url|http://guidatv.sky.it/app/guidatv/contenuti/data/grid/|urldate|/ch_##_CHANNEL_##.js} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +urldate.format {datestring|yy_MM_dd} + +scope.range {(urlindex)|end} +index_variable_element.modify {addstart|'config_site_id'} +* next is just to be backward compatibly with olde .channels.xml files +index_variable_element.modify {remove(type=regex)|##id=} +index_variable_element.modify {remove(type=regex)|##_##icon_file=.*$} +url_index.modify {replace|##_CHANNEL_##|'index_variable_element'} +end_scope + +index_showsplit.scrub {regex||({"id":"\d+[^}]*?})||} +index_start.scrub {regex||"starttime":"([^"\\]*(?:\\.[^"\\]*)*)"||} +*index_title.scrub {regex||"title":"([^"\\]*?(?:\\.[^"\\]*)*)(?: - \|")+||} +index_title.scrub {regex||"title":"([^"\\]*?(?:\\.[^"\\]*)*)"||} +"title":"Livorno - Avellino", +index_category.scrub {regex||"genre":"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_category.scrub {regex||"subgenre":"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_temp_3.scrub {regex||"normalizedtitle":\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} * normalized title +index_temp_4.scrub {regex||"pid":"([^"\\]*(?:\\.[^"\\]*)*)"||} * pid + +scope.range {(datelogo)|end} +index_urlchannellogo.modify {addstart|'config_site_id'} +index_urlchannellogo.modify {substring(type=regex)|##icon_file=([^\#]*)} +index_urlchannellogo.modify {addstart(not=="")|http://guidatv.sky.it/app/guidatv/images/epgimages/channels/home/} +end_scope + +index_showsplit.modify {cleanup(scope=splitindex removeduplicates=equal)} + +scope.range {(indexshowdetails)|end} +*index_urlshow {url|http://guidatv.sky.it/guidatv/programma/} +index_temp_1.modify {substring(type=element)|'index_category' 0 1} * genre +index_temp_1.modify {remove| } * remove the spaces +index_temp_2.modify {substring(type=element)|'index_category' 1 1} * subgenre +index_temp_2.modify {remove| } * remove the spaces +index_urlshow.modify {addstart|http://guidatv.sky.it/guidatv/programma/'index_temp_1'/'index_temp_2'/'index_temp_3'_'index_temp_4'.shtml} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages +end_scope + +*title.scrub {single(separator=" - " include=first)||||} +title.scrub {single|

    ||

    } +title.modify {set("")|'index_title'} +subtitle.scrub {multi(separator=" - " exclude=first)|||} +temp_1.scrub {single(exclude="protagonista")|
    ||
    |
    } +temp_2.scrub {multi|
    ||
    |} +description.scrub {single(separator=" - " exclude="Stagione Ep.")|__pilat">|||} +description.scrub {single|
    ||} +index_showsplit.modify {cleanup(removeduplicates)} * first program of Sera = last of Pomeriggio + +index_start.scrub {single|
    ||<|
    } +index_start.modify {cleanup(tags="<"">")} + +index_title.scrub {single|

    |||

    } +index_title.modify {cleanup(tags="<"">")} + +index_subtitle.scrub {single|

    ||

    |

    } +index_description.scrub {single|

    ||

    |
    } + +index_urlshow {url(include=first)||

    |

    } +temp_1.scrub {single|

    ||

    |
    } +temp_1.modify {cleanup(tags="<"">")} + +title.modify {addstart|'index_title'} * force title to not update unnecessarily +description.modify {addend('index_urlshow' not "")| - 'temp_1'} * add detailed description if available + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {multi|} +*scope.range {(channellist)|end} +*index_site_id.modify {clear} +*index_site_id.modify {addstart|leonardo} +*index_site_channel.modify {addstart|Leonardo} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Italy/mediaset.it.channels.xml b/config/siteini.pack/Italy/mediaset.it.channels.xml new file mode 100644 index 0000000..25335e3 --- /dev/null +++ b/config/siteini.pack/Italy/mediaset.it.channels.xml @@ -0,0 +1,35 @@ + + + + Canale 5 + Italia 1 + Rete 4 + La 5 + Italia 2 + Iris + Top Crime + Mediaset Extra + Boing + Cartoonito + Tgcom24 + Premium Cinema + Premium Cinema Energy + Premium Cinema Emotion + Premium Cinema Comedy + Premium Crime + Joi + Mya + Premium Action + Studio Universal + BBC Knowledge + Discovery World + Premium Calcio + Disney Channel + Disney Junior + Cartoon Network + Fox Sports + Fox Sports Plus + Eurosport + Eurosport 2 + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/mediaset.it.ini b/config/siteini.pack/Italy/mediaset.it.ini new file mode 100644 index 0000000..107c77a --- /dev/null +++ b/config/siteini.pack/Italy/mediaset.it.ini @@ -0,0 +1,110 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: mediaset.it +* @MinSWversion: V1.1.1/52 +* none +* @Revision 2 - [21/04/2015] Francis De Paemeleere +* adding channel icon +* @Revision 1 - [29/09/2014] Francis De Paemeleere +* fix pre-6am shwo grabbing +* fix actor/dirctor grabbing + remove info from description +* @Revision 0 - [09/02/2014] Steve Wildmore +* creation +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=mediaset.it|timezone=Europe/Rome|maxdays=7|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen|ratingsystem=MPAA} +index_variable_element.modify {calculate(scope=urlindex format=date,yyyyMM)|'urldate'} +url_index{url|http://www.mediaset.it/guidatv/inc/canali/######/|urldate|_|channel|.sjson} +url_index.modify {replace|######|'index_variable_element'} +urldate.format {datestring|yyyyMMdd} + +* +index_showsplit.scrub {multi(separator="},")|{"events":|[|]|} +index_showsplit.modify {replace|}|} + +index_urlchannellogo.modify {addstart|http://www.mediaset.it/include/img/loghi/'config_site_id'.png} + +index_start.scrub {single|"startTime":"||"|"} +index_stop.scrub {single|"endTime":"||"|"} + +index_title.scrub {regex||"displayTitle"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_category.scrub {regex||"genere"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_category.scrub {regex||"sottogenere"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_temp_1.scrub {regex||"channel"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} + +* http://servizi.mediaset.it/Contenuti/guidaTv/programDetails.jsp?programId=201402072112_C5&jsoncallback=? +index_urlshow {url|servizi.mediaset.it/Contenuti/guidaTv/programDetails.jsp?programId=########|"startTime":"||"|"} + +index_temp_2.modify {calculate(format=date,yyyyMMdd)|'showdate'} +index_temp_2.modify {calculate('index_start' < "06:00" format=date,yyyyMMdd)|'showdate' 01:00 -} * shows before 6am, are called by the previous day +index_urlshow.modify {replace|########|'index_temp_2'} +index_urlshow.modify {addend|_'index_temp_1'&jsoncallback=?} +index_urlshow.modify {replace|:|} +index_urlshow.modify {addstart|http://} + +index_title.modify {remove(type=regex)|"\s*-\s*PRIMA TV\s*"} +index_title.modify {remove(type=regex)|"\s*\(\s*DI\s+[^)]*\)"} + +title.scrub {regex||"displayTitle"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +title.modify {remove(type=regex)|"\s*\(\s*DI\s+[^)]*\)"} +description.scrub {regex||"trama"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +temp_1.scrub {regex||"description"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +description.modify {addend| 'temp_1'} +description.modify {cleanup(style=jsondecode)} + +productiondate.scrub {regex||"anno"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +premiere.scrub {regex||"prima"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +premiere.modify {replace('title' ~ "PRIMA TV")|'premiere'|true} +title.modify {remove(type=regex)|"\s*-\s*PRIMA TV\s*"} + +director.scrub {regex||Regia:\s*(.*?)\s*-||} * director info form description +director.scrub {regex||"regia"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} * director info form json data +director.modify {replace|,|;} +director.modify {replace|;|\|} +director.modify {replace|.|. } +director.modify {replace| | } +director.modify {cleanup(style=name)} +director.modify {cleanup(removeduplicates=name)} + +actor.scrub {regex||Cast:(?:\s(.*?),)*\s*(.*?(?:\w{3,}))(?:\s+-\s+\|\.)||} * actor info form description +actor.scrub {regex||cast"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)||} * actor info form json data +actor.modify {replace|,|;} +actor.modify {replace|;|\|} +actor.modify {replace|.|. } +actor.modify {replace| | } +actor.modify {cleanup(style=name)} +actor.modify {cleanup(removeduplicates=name)} + +description.modify {remove(type=regex)|Regia:\s*.*? - } +description.modify {remove(type=regex)|(Cast:(?:\s(?:.*?),)*\s*.*?(?:\w{3,})(?:\s+-\s+\|\.))} + +* rating +rating.modify {addstart('description' ~ "VISIONE ADATTA A TUTTI")|G} +rating.modify {addstart('description' ~ "VISIONE CONSIGLIATA CON LA PRESENZA DI UN ADULTO")|PG} +rating.modify {addstart('description' ~ "VISIONE CONSIGLIATA AL SOLO PUBBLICO ADULTO")|R} +rating.modify {addstart('description' ~ "VIETATO AI MINORI DI 14 ANNI")|PG-13} +rating.modify {addstart('description' ~ "VIETATO AI MINORI DI 18 ANNI")|PG-17} + +description.modify {remove(type=regex)|\s*VISIONE ADATTA A TUTTI\s*\.\s*} +description.modify {remove(type=regex)|\s*VISIONE CONSIGLIATA CON LA PRESENZA DI UN ADULTO\s*\.\s*} +description.modify {remove(type=regex)|\s*VISIONE CONSIGLIATA AL SOLO PUBBLICO ADULTO\s*\.\s*} +description.modify {remove(type=regex)|\s*VIETATO AI MINORI DI 14 ANNI\s*\.\s*} +description.modify {remove(type=regex)|\s*VIETATO AI MINORI DI 18 ANNI\s*\.\s*} + +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.mediaset.it/guidatv/} +*index_site_channel.scrub {multi(exclude="tutte")|} +*index_site_id.scrub {multi|} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end + diff --git a/config/siteini.pack/Italy/mediasetpremium.it.channels.xml b/config/siteini.pack/Italy/mediasetpremium.it.channels.xml new file mode 100644 index 0000000..ced41a3 --- /dev/null +++ b/config/siteini.pack/Italy/mediasetpremium.it.channels.xml @@ -0,0 +1,30 @@ + + + + Premium Cinema HD + Premium Cinema +24 + Premium Cinema 2 HD + Premium Cinema 2 +24 + Premium Cinema Energy + Premium Cinema Emotion + Premium Cinema Comedy + Studio Universal + Premium Action HD + Premium Action +24 + Premium Crime HD + Premium Crime +24 + Premium Joi + Premium Stories + Premium Sport HD + Premium Calcio HD + Eurosport + Eurosport 2 + Discovery World + BBC Knowledge + Disney Channel + Disney Channel +1 + Disney Junior + Cartoon Network + PLAY + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/mediasetpremium.it.ini b/config/siteini.pack/Italy/mediasetpremium.it.ini new file mode 100644 index 0000000..7d85bf1 --- /dev/null +++ b/config/siteini.pack/Italy/mediasetpremium.it.ini @@ -0,0 +1,65 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: mediasetpremium.it +* @MinSWversion: V1.1.1/55.26 +* @Revision 1 - [18/10/2015] Jan van Straaten +* added rating conversion, plus one hour offset in the times!? +* @Revision 0 - [27/08/2015] Jan van Straaten +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=mediasetpremium.it|timezone=Europe/Rome?|maxdays=7|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=40|nopageoverlaps} + +urldate.format {datestring|yyyyMMdd} +url_index {url|http://www.mediasetpremium.it/guida_tv/json/|urldate|/|urldate|-|channel|.json} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +index_showsplit.scrub {single||||} *copies the index page +* get rid of the disturbing {} in an empty parentalControl : +index_showsplit.modify {replace|{}| } +index_showsplit.modify {substring(type=regex)|'index_showsplit' "\{(\"id\":.+?)\}"} + +index_start.scrub {regex||\"timeStart\":(\d{10}),||} +** a very strange fact: The times in the index are one hour behind!! +index_start.modify {calculate(format=date,yyyy/MM/ddTHH:mm)|0:1:00 +} + +*index_stop.scrub {regex||\"timeEnd\":(\d{10}),||} * there are errors in the sitedata + +index_title.scrub {regex||\"title\":\"(.+?)\",||} +* the next returns a number, 0, 1 or 2 : no iedee of the meaning of that +index_rating.scrub {regex||\"parentalControl\":(\d),||} +index_rating.modify {set("0")|G} +index_rating.modify {set("1")|PG} +index_rating.modify {set("3")|R} + +index_urlshow.scrub {regex||\"linkDetail\":\"(http://www.mediasetpremium.it/.+?\.html)||} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the detail pages + +title.scrub {regex||
    \s*?

    (.+?)

    ||} +*subtitle.modify {addstart|'index_title'} *test only +description.scrub {regex||
    \s*?(.+?)
    ||} +description.modify {cleanup(tags="<"">")} +category.scrub {regex||genere(.+?)||} +productiondate.scrub {regex||anno(\d{4})||} +actor.modify {substring('actor' "" type=regex)|'description' "el cast.+?:(.+?)\."} * alternative +temp_1.modify {addstart|'category'} +temp_1.modify {cleanup(style=upper)} * needed to as delimiter for the cast in temp_2 +temp_2.scrub {regex||

    (.+?)

    ||} * copy of the section that can contain the credits, category , country and productiondate +* get the credits out of temp_2 +director.modify {substring(type=regex)|'temp_2' "Regia:(.+?)\s-"} +director.modify {replace|,|\|} * make multi +actor.modify {substring('actor' "" type=regex)|'temp_2' ".+?Cast:(.+?)\.\s'temp_1'"} +actor.modify {replace|,|\|} * make multi +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index {url|http://www.mediasetpremium.it/inc/css/layout.css} +*index_site_id.scrub {regex||\r\n\d{1,2}\..+?\s{2,3}(\w{2})||} +*index_site_channel.scrub {regex||\r\n\d{1,2}\.\s+?(.+?)\s{2,3}||} +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/movietele.it.channels.xml b/config/siteini.pack/Italy/movietele.it.channels.xml new file mode 100644 index 0000000..00482b1 --- /dev/null +++ b/config/siteini.pack/Italy/movietele.it.channels.xml @@ -0,0 +1,119 @@ + + + + Canale 5 + Italia 1 + ReteQuattro + La5 + Mediaset Extra + Italia 2 + Iris + Top Crime + Joi + Mya + Premium Action + Premium Cinema + Premium Cinema Energy + Premium Cinema Emotion + Premium Cinema Comedy + Studio Universal + BBC Knowledge + Discovery World + Premium Crime + Premium Calcio + Premium Sport + Rai 1 + Rai 2 + Rai 3 + Rai 4 + Rai 5 + Rai Movie + Rai Premium + Rai Storia + Rai YoYo + Rai Gulp + Rai Sport 1 + Rai Sport 2 + Sky Uno + Sky Atlantic + FOX + Fox Life + Fox Crime + Fox Comedy + Fox Animation + Sky Arte + Sky 3D + Sky Cinema 1 + Sky Cinema Hits + Sky Cinema Family + Sky Cinema Passion + Sky Cinema Comedy + Sky Cinema Max + Sky Cinema Cult + Sky Cinema Classics + Sky Sport24 + Sky Sport 1 + Sky Sport MIX + Sky Sport 2 + Sky Sport 3 + Sky Sport Plus + Sky Sport F1 + Sky Sport MotoGP + Sky TG24 + Eurosport + Eurosport 2 + Fox Sports + Fox Sports 2 + Sportitalia + Easy Baby + Discovery Channel + National Geo + Discovery Science + Discovery Travel e Living + History Channel + Nat Geo Wild + Nat Geo People + Gambero Rosso + DeA Sapere + Animal Planet + DeAKids + Nick Junior + Nickelodeon + Cartoon Network + Boomerang + Disney Junior + Disney Channel + Disney XD + DeA Junior + Baby TV + CI Crime+Investigation + AXN + AXN Sci-Fi + Comedy Central + Lei + Classica + RTL 102.5 TV + Bike Channel + Juventus TV + Roma TV + MTV Next + La7 + TV8 + Deejay TV + Cielo + La7D + Real Time + QVC + Giallo + Boing + K2 Kids + Frisbee + Cartoonito + Super + LaEffe + DMAX + Focus + SuperTennis + TV2000 + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/movietele.it.ini b/config/siteini.pack/Italy/movietele.it.ini new file mode 100644 index 0000000..c19f0cb --- /dev/null +++ b/config/siteini.pack/Italy/movietele.it.ini @@ -0,0 +1,47 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: movietele.it +* @MinSWversion: V1.1.1/53 +* @Revision 2 - [11/06/2016] Blackbear199 +* rewrite +* @Revision 1 - [12/02/2014] Steve Wildmore +* minor site changes +* @Revision 0 - [19/01/2014] Steve Wildmore +* creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=movietele.it|timezone=UTC+01:00|maxdays=7|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen} +url_index{url|http://www.movietele.it/sitemap/ajax/guidatvday.php?canale=|channel|&giorno=|urldate|&ts=##datestring##190642} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|yyyy_MM_dd} +* +scope.range{(urlindex)|end} +index_temp_1.modify {calculate(format=date,yyyyMMdd)|'urldate} +url_index.modify {replace|##datestring##|'index_temp_1'} +end_scope +* +index_showsplit.scrub {multi|
    |||||||} +index_description.modify {remove|\\n...} +index_description.modify {remove|\\n} +index_description.modify {remove|\} +end_scope + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.movietele.it/guidatv} +*index_site_id.scrub {multi|
    } +*index_site_channel.scrub {multi|
    } +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/my.movies.it.channels.xml b/config/siteini.pack/Italy/my.movies.it.channels.xml new file mode 100644 index 0000000..2b8c612 --- /dev/null +++ b/config/siteini.pack/Italy/my.movies.it.channels.xml @@ -0,0 +1,102 @@ + + + + 7Gold + Anime Gold + AXN + Axn Sci-Fi + BBC Knowledge + BBC World News + Boing + Canale 5 + Cartoon Network + Cartoon Network + Sky Uno + Cielo + Comedy Central + Cult + Deejay TV + Discovery Channel + Discovery World + Disney Channel + Disney Channel + Diva Universal + Eurosport + Fantasy Channel + Fox + Fox Crime + Fox Life + Fox Retro + France 24 FR + France 24 UK + Frisbee + FX + Hiro + History Channel + Iris + Italia 1 + Joi + K2 + La5 + La7 + La7d + Lady Channel + Lei + Man-ga + Mediaset Extra + MGM Channel + MTV + MTV Music + MTV Music + Mya + National Geographic Channel + Nichelodeon + Odeon + Playhouse Disney + Playhouse Disney + Poker Italia 24 + Poker Italia 24 + Premium calcio + Premium Cinema + Premium Cinema Emotion + Premium Cinema Energy + QVC + Rai4 + Rai5 + RaiDue + Rai Gulp + Rai Movie + Rai News + Rai Premium + Rai Sport 1 + Rai Storia + RaiTre + RaiUno + Rai Yoyo + Real Time + Real Time + Rete4 + Sky Cinema 1 + Sky Cinema + 24 + Sky Cinema Classics + Sky Cinema Comedy + Sky Cinema Family + Sky Cinema Hits + Sky Cinema Max + Sky Cinema Passion + Sky Sport 1 + Sky Sport 2 + Sky Sport 3 + Sky Sport Extra + Sky Supercalcio + Sport Italia + Sport Italia 2 + Steel + Studio Universal + Super Tennis + Super Tennis + Tv 2000 + Virgin Radio TV + + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/my.movies.it.ini b/config/siteini.pack/Italy/my.movies.it.ini new file mode 100644 index 0000000..c172261 --- /dev/null +++ b/config/siteini.pack/Italy/my.movies.it.ini @@ -0,0 +1,48 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: my.movies.it +* @MinSWversion: V0 +* none +* @Revision 2 - [26/04/2011] Willy De Wilde +* changed to classic +* @Revision 1 - [] +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=my.movies.it|timezone=UTC+01:00|maxdays=3|cultureinfo=it-IT|charset=ISO-8859-1|titlematchfactor=90|episodesystem=onscreen} +url_index{url()|http://www.mymovies.it/tv/|channel|/|urldate|} +urldate.format {list||domani/|dopodomani/} +* +* +index_showsplit.scrub {multi()|
    |
    |
    } +index_date.scrub {single(force)|||} +index_start.scrub {single()|text-align:right;|Ore ||} +index_title.scrub {single()|

    ||

    } +index_temp_1.scrub {single(include=last)|||||Genere} +index_director.scrub {multi()|Regia di |">||Con } +*index_temp_2.scrub {multi()|Con |">||Genere} +* +* enable the next two lines to create a channel list (needs editting) +*index_site_channel.scrub {multi|Televisione Analogica Terrestre|/" title="|">|} +*index_site_id.scrub {multi|Televisione Analogica Terrestre| + + + Rai 1 + Rai 2 + Rai 3 + Rete4 + Canale5 + Italia1 + La7 + MTV + Deejay TV + Rai 4 + Iris + Rai 5 + Rai Movie + Rai Premium + Cielo + Tv 2000 + La7D + La5 + Real Time + QVC + Mediaset Extra + Mediaset Italia Due + RTL 102.5 TV + Boing + K2 + Rai Gulp + Rai Yoyo + Frisbee + Rai News + Coming Soon Television + Rai Storia + Rai Sport 1 + Rai Sport 2 + Poker Italia 24 + Sport Italia + Sport Italia 2 + MTV Music + PLAY.ME + Rete4 +1 + Canale5 +1 + Italia1 +1 + Deejay TV +2 + Super tennis + RTL 102.5 + Nuvolari + Rai HD + Rete4 HD + Canale5 HD + Italia1 HD + La7 HD + MTV HD + La7D HD + Radio Deejay + Rai Radio1 + FD Auditorium + Radio Capital + Rai Radio2 + Radio m2o + Rai Radio3 + FD Leggera + France 24 UK + Radio Mater + Radio Alex + France 24 FR + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/myblobbox.com.ini b/config/siteini.pack/Italy/myblobbox.com.ini new file mode 100644 index 0000000..8331e36 --- /dev/null +++ b/config/siteini.pack/Italy/myblobbox.com.ini @@ -0,0 +1,102 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: www.myblobbox.com +* @MinSWversion: V1.1.1/53.7 +* none +* @Revision 0 - [01/02/2014] Steve Wildmore +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=www.myblobbox.com|timezone=UTC+01:00|maxdays=9|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen} + +urldate.format {list|-1|0|1|2|3|4|5|6|7} +url_index{url|http://www.myblobbox.com/it/epg/api/channel/|channel|/offset/|urldate|/} +url_index.modify {replace|offset/-1|yesterday} + +index_variable_element.modify {clear} +index_variable_element.modify {addstart("")|'config_site_id'} + +* http://www.myblobbox.com/it/epg/#channel/1/offset/-1/tutto/ +* http://www.myblobbox.com/it/epg/api/channel/1/offset/1/ (offset 0 to 7) +* http://www.myblobbox.com/it/epg/api/channel/1/yesterday/ (offset -1) + +* Grouping format: +* d = day +* 1. ma = mattina (morning) +* 4. no = notte (night) +* 2. po = pomeriggio (afternoon) +* 3. se = sera (evening) + +* json file format: +* p = past +* c = channel +* t = title <-- use +* ty = type (category) <-- use +* i = info (details) <-- use +* h = hour (time) <-- use +* ty_id = type id +* ci = ??? +* o = online now + +index_date.scrub {single(force)|"d": |"|"|, "no"} + +scope.range {(splitindex)|end} + +* 4 sections in this order: "ma", "no", "po", "se" +* to be reordered as: "ma", "po", "se", "no" +* +index_showsplit.scrub {multi|"ma": |[|]|} +index_temp_1.modify {calculate(type=element format=F0)|'index_showsplit' #} * number of elements (+1) +index_temp_1.modify {calculate(format=F0)|'index_temp_1' 4 -} * index of last "no" element + +loop {('index_temp_1' > "0" max=36)|end} +index_temp_2.modify {substring(type=element)|'index_showsplit' 'index_temp_1' 1} * "no" element +index_temp_4.modify {calculate(format=F0)|'index_temp_1' 2 +} * pointer to "se" element +index_temp_3.modify {substring(type=element)|'index_showsplit' 'index_temp_4' 1} * "se" element +index_showsplit.modify {replace|'index_temp_3'|'index_temp_3'###} * mark end of "se" element +index_showsplit.modify {remove|'index_temp_2'} * remove element "no" from its position +index_showsplit.modify {replace|###|\|'index_temp_2'} * add element "no" at end of element "se" + +index_temp_2.modify {clear} +index_temp_3.modify {clear} +index_temp_1.modify {calculate(format=F0)|4 -} * decrease index to next "no" +end_loop + +index_showsplit.modify {replace|\}, \{|\|} +index_showsplit.modify {replace|\{|} +index_showsplit.modify {replace|\}|} +end_scope + +index_start.scrub {regex||"h"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_title.scrub {regex||"t"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} +index_category.scrub {regex||"ty"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||} + +* http://www.myblobbox.com/it/epg/channel/1/show/3926080/ +index_temp_2.scrub {regex||"i"\s*:\s*((?:[^\s,])*)\s*,||} * show number + +index_urlshow.modify {clear} +index_urlshow.modify {addstart('index_temp_2' not "")|http://www.myblobbox.com/it/epg/channel/} +index_urlshow.modify {addend('index_temp_2' not "")|'index_variable_element'/show/'index_temp_2'/} + +title.scrub {single|og:title|content='| />| />} +title.modify {cleanup} + +description.scrub {regex|||
    } +*index_site_channel.scrub {multi|
    ||
    } +*scope.range {(channellist)|end} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Italy/nuvolari.tv.channels.xml b/config/siteini.pack/Italy/nuvolari.tv.channels.xml new file mode 100644 index 0000000..968bcd9 --- /dev/null +++ b/config/siteini.pack/Italy/nuvolari.tv.channels.xml @@ -0,0 +1,6 @@ + + + + Nuvolari + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/nuvolari.tv.ini b/config/siteini.pack/Italy/nuvolari.tv.ini new file mode 100644 index 0000000..7eaee71 --- /dev/null +++ b/config/siteini.pack/Italy/nuvolari.tv.ini @@ -0,0 +1,41 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: nuvolari.tv +* @MinSWversion: V1.1.1/42 +* @Revision 1 - [17/02/2014] Francis De Paemeleere +* added .channels.xml auto generation +* @Revision 0 - [25/01/2014] Steve Wildmore +* creation +* @Remarks: Site changes after 1:30 AM so run after that time +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=nuvolari.tv|timezone=UTC+01:00|maxdays=7|cultureinfo=it-IT|charset=ISO-8859-1|titlematchfactor=90|episodesystem=onscreen} +url_index{url|http://www.nuvolari.tv/guida-tv/} + +urldate.format {datestring|dddd} * not used + +index_showsplit.scrub {multi|
    |
    |
    |} +index_showsplit.modify {cleanup(removeduplicates)} + +index_start.scrub {single|
    ||<|
    } +index_start.modify {cleanup(tags="<"">")} + +index_title.scrub {single|

    |||

    } +index_title.modify {cleanup(tags="<"">")} + +index_subtitle.scrub {single|

    ||

    |

    } +index_description.scrub {single|

    ||

    |
    } + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {multi|} +*scope.range {(channellist)|end} +*index_site_id.modify {clear} +*index_site_id.modify {addstart|nuvolari} +*index_site_channel.modify {addstart|Nuvolari} +*end_scope +** @auto_xml_channel_end \ No newline at end of file diff --git a/config/siteini.pack/Italy/programmi-tv.eu.channels.xml b/config/siteini.pack/Italy/programmi-tv.eu.channels.xml new file mode 100644 index 0000000..cc03634 --- /dev/null +++ b/config/siteini.pack/Italy/programmi-tv.eu.channels.xml @@ -0,0 +1,53 @@ + + + + Rai Uno + Rai Due + Rai Tre + Rete 4 + Canale 5 + Italia 1 + La7 + TV8 + DeeJay TV - NOVE + Rai 4 + Iris + Rai 5 + Rai Movie + Rai Premium + Cielo + Paramount Channel + TV2000 + La7d + La5 + Real Time + QVC + Mediaset Extra + Italia 2 + RTL 102.5 TV + HSE24 + Giallo + Top Crime + Boing + K2 + Rai Gulp + Rai Yoyo + Frisbee + Cartoonito + Super! + Rai News 24 + Fine Living + Sky TG 24 + Tgcom24 + DMax + Rai Storia + Focus + Rai Sport 1 + Rai Sport 2 + Super Tennis + MTV Music + La3 + Rai Scuola + Sportitalia + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/programmi-tv.eu.ini b/config/siteini.pack/Italy/programmi-tv.eu.ini new file mode 100644 index 0000000..5a4f31d --- /dev/null +++ b/config/siteini.pack/Italy/programmi-tv.eu.ini @@ -0,0 +1,33 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: programmi-tv.eu +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [28/04/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=programmi-tv.eu|timezone=Europe/Rome|maxdays=7|cultureinfo=fr-FR|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=FR|episodesystem=onscreen} +url_index{url|http://www.programmi-tv.eu/guidatv/|channel|/|urldate|/} +urldate.format {datestring|dd-MM-yyyy} +* +index_showsplit.scrub {multi||||
    } +* +index_start.scrub {single||||} +index_stop.scrub {single||||} +index_title.scrub {single||||} +index_description.scrub {single||||} +index_category.scrub {single|||
    } +* +index_showicon.scrub {single|||} +*index_site_channel.scrub {multi|

    ||

    |} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/rai.it.channels.xml b/config/siteini.pack/Italy/rai.it.channels.xml new file mode 100644 index 0000000..09aaed0 --- /dev/null +++ b/config/siteini.pack/Italy/rai.it.channels.xml @@ -0,0 +1,22 @@ + + + + Rai 1 + Rai 2 + Rai 3 + Rai 4 + Rai 5 + Rai Sport1 + Rai Sport2 + Rai Scuola + Rai Premium + Rai Yoyo + Rai Movie + Rai Gulp + Rai Storia + Euro News + Radio 1 + Radio 2 + Radio 3 + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/rai.it.ini b/config/siteini.pack/Italy/rai.it.ini new file mode 100644 index 0000000..3dc3e57 --- /dev/null +++ b/config/siteini.pack/Italy/rai.it.ini @@ -0,0 +1,98 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: rai.it +* @MinSWversion: V1.1.1/52 +* @Revision 1 - [13/04/2014] Jan van Straaten +* various adaptions to site changes +* @Revision 0 - [11/08/2011] Jan van Straaten +* none +* @Remarks: +* unstructured site rai.it makes it difficult to grab all epg data +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=rai.it|timezone=UTC+01:00|maxdays=6|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen} +*site {ratingsystem=IT|grabengine=|firstshow=0|firstday=0000000} +url_index{url|http://www.rai.it/dl/portale/html/palinsesti/guidatv/static/|channel|_|urldate|.html} +urldate.format {datestring|yyyy_MM_dd} +*subpage.format {number||1|} +index_showsplit.scrub {multi|
    |||} +index_urlshow {url(include="ContentItem" exclude="media")||} +* +index_start.scrub {single||||} +index_title.scrub {single(separator=" -"": " include=first)||">||} +index_subtitle.scrub {single(separator=" -"": " exclude="Ep.""ep.""Ep " include=last)||">||} +index_episode.scrub {single(separator=" -" include="Ep.""ep.""Ep ")||">||} +index_description.scrub {single|class="eventDescription">||
    |
    } +index_description.modify {cleanup(tags="<"">")} +index_temp_3.scrub {single||||} +index_description.modify {remove|'index_temp_3'} +index_description.modify {addend|'index_temp_3'} +* +*title.scrub {single||||} * this site has no consistent title in the detail page!! +subtitle.scrub {single|
    |

    |

    |

    } +description.scrub {single(separator=" />""\">" exclude="|

    |

    |

    } +description.scrub {single(separator=" />""\">" exclude="|

    |

    |

    } +category.scrub {single|
    |Genere: |
    |

    } +titleoriginal.scrub {single|
    |Titolo originale: |} +titleoriginal.scrub {single|
    |(|)|

    } +producer.scrub {single|
    |Produzione: |<} +director.scrub {single(separator="Cast" include=first)|
    |Regia: |<} +director.scrub {single|
    | di||

    } +actor.scrub {single|
    |Cast: |<} +actor.scrub {single(separator=",")|
    | con||

    } +writer.scrub {single(separator=",")|
    |Ideatore: |<} +productiondate.scrub {single|
    |Anno: |<|

    } +productiondate.scrub {single|
    |||

    } +* +*index_description.modify {addstart("")|nessun dettaglio} +*index_description.modify {remove('index_urlshow' not "")|'index_description'} +* +* the following extracts the episode from a title like .. Art alive Ep 42 .. and removes the Ep part from it: +index_title.modify {replace|ep.|ep. } * add space to ep. in case ep.52 (fails to extract the ep number without the space!) +index_title.modify {replace|Ep.|Ep. } +index_title.modify {replace| | } +index_title.modify {cleanup(style=name)} +index_temp_1.modify {clear} +index_temp_1.modify {calculate('index_title' ~ "Ep " format=F0)|'index_title' 1 *} * extract the Ep number +index_temp_1.modify {calculate('index_title' ~ "ep " format=F0)|'index_title' 1 *} * extract the Ep number +index_temp_1.modify {calculate('index_title' ~ "Ep." format=F0)|'index_title' 1 *} * extract the Ep number +index_temp_1.modify {calculate('index_title' ~ "ep." format=F0)|'index_title' 1 *} * extract the Ep number +index_temp_1.modify {calculate('index_title' ~ "EP." format=F0)|'index_title' 1 *} * extract the Ep number +index_episode.modify {replace('index_temp_1' not "")|'index_episode'|Ep. 'index_temp_1'} +index_title.modify {remove| Ep 'index_temp_1'} +index_title.modify {remove| Ep. 'index_temp_1'} +index_title.modify {remove| ep 'index_temp_1'} +index_title.modify {remove| ep. 'index_temp_1'} +index_title.modify {remove| EP. 'index_temp_1'} +* +* episode can contain subtitle like: Trambusto nel bosco Ep 25 +index_temp_2.modify {calculate(format=F0)|'index_episode' " " #} * count the words +index_temp_1.modify {calculate(format=F0)|'index_episode' 1 *} * extract the episode num +index_subtitle.modify {addstart('index_temp_2' > "3")|'index_episode'} +index_subtitle.modify {remove| Ep 'index_temp_1'} +index_subtitle.modify {remove| Ep. 'index_temp_1'} +index_subtitle.modify {remove| ep 'index_temp_1'} +index_subtitle.modify {remove| ep. 'index_temp_1'} +index_episode.modify {replace|'index_episode'|Ep. 'index_temp_1'} +* +index_temp_1.modify {replace|'index_temp_1'|'index_title'} +index_temp_1.modify {remove| 2a serie} +index_subtitle.modify {replace(~ 'index_temp_1')|'index_subtitle'|} * removes title without the 2a serie addition +index_subtitle.modify {remove|"} +index_subtitle.modify {cleanup(style=name)} +* +title.modify {addstart|'index_title'} * no reliable title in detail page!! +description.modify {remove|Titolo originale: 'titleoriginal'} +description.modify {remove|Genere: 'category'} +description.modify {remove|Produzione: 'producer'} +description.modify {remove|Regia: 'director'} +description.modify {remove|Cast: 'actor'} +description.modify {remove|Anno: 'productiondate'} +description.modify {cleanup} +description.modify {replace| | } +description.modify {remove| + + + TVS1 + TVS2 + TVS3 + TVKP + TVMB + TVMMC + RA1 + VAL202 + ARS + RASI + RAMB + RAKP + CAPO + RAMMR + SPORT202 + + \ No newline at end of file diff --git a/config/siteini.pack/Italy/rtvslo.it.ini b/config/siteini.pack/Italy/rtvslo.it.ini new file mode 100644 index 0000000..bda4177 --- /dev/null +++ b/config/siteini.pack/Italy/rtvslo.it.ini @@ -0,0 +1,68 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: rtvslo.si +* @MinSWversion: V1.56.15 +* none +* @Revision 3 - [12/03/2016] Willy De Wilde +* use of api site - Italian version +* @Revision 2 - [10/02/2014] Jan van Straaten +* site changes +* @Revision 1 - [5/12/2011] Jan van Straaten +* none +* @Remarks: +* a Slovenian site +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=rtvslo.si|timezone=Europe/Ljubljana|maxdays=14|cultureinfo=sl-SI|charset=UTF-8|titlematchfactor=90} +url_index{url()|http://api.rtvslo.si/spored/getProvys/|channel|/|urldate|} +*http://api.rtvslo.si/spored/getProvys/TVS1/2016-03-12 +urldate.format {datestring|yyyy-MM-dd} +scope.range {(splitindex)|end} +* split into index pages +index_showsplit.scrub {regex()||.+?||} +index_showsplit.modify {replace()|\||\n\n\|} +* split in shows, keep the page separators +index_showsplit.modify {replace()|" format=F0)|100 +} * the amount to add to the sort number +* get the SORT_NUMBER +index_temp_2.modify {substring(type=regex)|'index_temp_1' "SORT_NUMBER=\"(\d+?)\""} +index_temp_3.modify {calculate(format=F0)|'index_temp_2' 'index_temp_9' +} * the new sort number +* reinsert sort number +index_temp_1.modify {replace(type=regex)|"SORT_NUMBER=\"(\d+?)\""|'index_temp_3'} +* build new index_showsplit +index_temp_8.modify {addend('index_temp_1' not ~ "")|'index_temp_1'####} +end_loop +index_temp_8.modify {replace|####|\|} * make multi +index_showsplit.modify {set()|'index_temp_8'} +* sort by integer value +index_showsplit.modify {sort(ascending,integer)} +sort_by.scrub {multi (target="index_showsplit")|SORT_NUMBER="||"} +end_scope +* +index_start.scrub {single|BILLEDSTART=|"|"|} +index_start.modify {substring(type=char)|'index_start' 0 5} +index_title.scrub {single()|||} +*index_temp_1.scrub {single()||<ITA>|</ITA>|</ORIGTITLE>} +*index_temp_1.scrub {single()|<ORIGTITLE>|<ITA>|</ITA>|</ORIGTITLE>} +*index_title.modify {addstart ('index_title' = "") | ('index_temp_1')} +*index_category.scrub {single()|<PROGTYPE>|<NAME>|</NAME>|</PROGTYPE>} +index_description.scrub {multi (exclude="*****")|<SYNOPSIS_ALL>|<ITA>|</ITA>|<SYNOPSIS_ALL>} +index_description.modify {cleanup(removeduplicates)} +index_actor.scrub {multi (separator=",")|<CASTING>|<ITA>|</ITA>|</CASTING>} +index_director.scrub {multi (separator=",")|<DIRECTOR>|<ITA>|</ITA>|</DIRECTOR>} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://4d.rtvslo.si/spored-4d/|urldate|} +*index_site_channel.scrub {multi|<li class="mega-menu-column">|class="|"|</ol>} +*index_site_channel.modify {cleanup(style=UPPER)} +*index_site_id.scrub {multi|<li class="mega-menu-column">|class="|"|</ol>} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/staseraintv.com.channels.xml b/config/siteini.pack/Italy/staseraintv.com.channels.xml new file mode 100644 index 0000000..edfd99e --- /dev/null +++ b/config/siteini.pack/Italy/staseraintv.com.channels.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site generator-info-name="WebGrab+Plus/w MDB & REX Postprocess -- version V1.56.24 -- Jan van Straaten" site="staseraintv.com"> + <channels> + <channel update="i" site="staseraintv.com" site_id="rai1" xmltv_id="Rai 1">Rai 1</channel> + <channel update="i" site="staseraintv.com" site_id="rai2" xmltv_id="Rai 2">Rai 2</channel> + <channel update="i" site="staseraintv.com" site_id="rai3" xmltv_id="Rai 3">Rai 3</channel> + <channel update="i" site="staseraintv.com" site_id="rai4" xmltv_id="Rai 4">Rai 4</channel> + <channel update="i" site="staseraintv.com" site_id="canale5" xmltv_id="Canale 5">Canale 5</channel> + <channel update="i" site="staseraintv.com" site_id="italia1" xmltv_id="Italia 1">Italia 1</channel> + <channel update="i" site="staseraintv.com" site_id="rete4" xmltv_id="Rete 4">Rete 4</channel> + <channel update="i" site="staseraintv.com" site_id="raimovie" xmltv_id="Rai Movie">Rai Movie</channel> + <channel update="i" site="staseraintv.com" site_id="paramount_channel" xmltv_id="Paramount Channel">Paramount Channel</channel> + <channel update="i" site="staseraintv.com" site_id="iris" xmltv_id="Iris">Iris</channel> + <channel update="i" site="staseraintv.com" site_id="tv8" xmltv_id="TV8">TV8</channel> + <channel update="i" site="staseraintv.com" site_id="italia2" xmltv_id="Italia 2">Italia 2</channel> + <channel update="i" site="staseraintv.com" site_id="la5" xmltv_id="La 5">La 5</channel> + <channel update="i" site="staseraintv.com" site_id="cielo" xmltv_id="Cielo">Cielo</channel> + <channel update="i" site="staseraintv.com" site_id="la7" xmltv_id="La7">La7</channel> + <channel update="i" site="staseraintv.com" site_id="la7d" xmltv_id="La7 D">La7 D</channel> + <channel update="i" site="staseraintv.com" site_id="topcrime" xmltv_id="TOP CRIME">TOP CRIME</channel> + <channel update="i" site="staseraintv.com" site_id="giallotv" xmltv_id="GIALLO TV">GIALLO TV</channel> + <channel update="i" site="staseraintv.com" site_id="rai5" xmltv_id="Rai 5">Rai 5</channel> + <channel update="i" site="staseraintv.com" site_id="rai_premium" xmltv_id="Rai Premium">Rai Premium</channel> + <channel update="i" site="staseraintv.com" site_id="mediaset_extra" xmltv_id="Mediaset Extra">Mediaset Extra</channel> + <channel update="i" site="staseraintv.com" site_id="nove" xmltv_id="NOVE">NOVE</channel> + <channel update="i" site="staseraintv.com" site_id="italia7_gold" xmltv_id="Italia 7 Gold">Italia 7 Gold</channel> + <channel update="i" site="staseraintv.com" site_id="tv2000" xmltv_id="TV2000">TV2000</channel> + <channel update="i" site="staseraintv.com" site_id="la1" xmltv_id="La1">La1</channel> + <channel update="i" site="staseraintv.com" site_id="la2" xmltv_id="La2">La2</channel> + <channel update="i" site="staseraintv.com" site_id="sky_tg24" xmltv_id="SKY TG24">SKY TG24</channel> + <channel update="i" site="staseraintv.com" site_id="rai_sport_1" xmltv_id="Rai Sport 1">Rai Sport 1</channel> + <channel update="i" site="staseraintv.com" site_id="rai_sport_2" xmltv_id="Rai Sport 2">Rai Sport 2</channel> + <channel update="i" site="staseraintv.com" site_id="supertennis" xmltv_id="SuperTennis">SuperTennis</channel> + <channel update="i" site="staseraintv.com" site_id="euro_sport" xmltv_id="Euro Sport">Euro Sport</channel> + <channel update="i" site="staseraintv.com" site_id="sportitalia" xmltv_id="SportItalia">SportItalia</channel> + <channel update="i" site="staseraintv.com" site_id="rai_gulp" xmltv_id="Rai Gulp">Rai Gulp</channel> + <channel update="i" site="staseraintv.com" site_id="rai_yoyo" xmltv_id="Rai YoYo">Rai YoYo</channel> + <channel update="i" site="staseraintv.com" site_id="boing" xmltv_id="Boing">Boing</channel> + <channel update="i" site="staseraintv.com" site_id="cartoonito" xmltv_id="Cartoonito">Cartoonito</channel> + <channel update="i" site="staseraintv.com" site_id="frisbee" xmltv_id="Frisbee">Frisbee</channel> + <channel update="i" site="staseraintv.com" site_id="k2" xmltv_id="K2">K2</channel> + <channel update="i" site="staseraintv.com" site_id="super" xmltv_id="Super">Super</channel> + <channel update="i" site="staseraintv.com" site_id="disney_channel" xmltv_id="Disney Channel">Disney Channel</channel> + <channel update="i" site="staseraintv.com" site_id="laeffe" xmltv_id="LaEffe">LaEffe</channel> + <channel update="i" site="staseraintv.com" site_id="rai_storia" xmltv_id="Rai Storia">Rai Storia</channel> + <channel update="i" site="staseraintv.com" site_id="focustv" xmltv_id="Focus TV">Focus TV</channel> + <channel update="i" site="staseraintv.com" site_id="realtime" xmltv_id="RealTime">RealTime</channel> + <channel update="i" site="staseraintv.com" site_id="dmax" xmltv_id="DMAX">DMAX</channel> + <channel update="i" site="staseraintv.com" site_id="fineliving" xmltv_id="Fine Living">Fine Living</channel> + <channel update="i" site="staseraintv.com" site_id="discovery_channel" xmltv_id="Discovery Channel">Discovery Channel</channel> + <channel update="i" site="staseraintv.com" site_id="rai_scuola" xmltv_id="Rai Scuola">Rai Scuola</channel> + <channel update="i" site="staseraintv.com" site_id="sky_cinema1" xmltv_id="Sky Cinema 1">Sky Cinema 1</channel> + <channel update="i" site="staseraintv.com" site_id="sky_cinema_family" xmltv_id="SKY Cinema Family">SKY Cinema Family</channel> + <channel update="i" site="staseraintv.com" site_id="sky_cinema_passion" xmltv_id="Sky Cinema Passion">Sky Cinema Passion</channel> + <channel update="i" site="staseraintv.com" site_id="cult_network" xmltv_id="CULT">CULT</channel> + <channel update="i" site="staseraintv.com" site_id="sky_cinema_max" xmltv_id="Sky Cinema MAX">Sky Cinema MAX</channel> + <channel update="i" site="staseraintv.com" site_id="fox" xmltv_id="Fox">Fox</channel> + <channel update="i" site="staseraintv.com" site_id="premium_cinema" xmltv_id="Premium Cinema">Premium Cinema</channel> + <channel update="i" site="staseraintv.com" site_id="joi" xmltv_id="Joi">Joi</channel> + <channel update="i" site="staseraintv.com" site_id="premium_action" xmltv_id="Premium Action">Premium Action</channel> + <channel update="i" site="staseraintv.com" site_id="mya" xmltv_id="Mya">Mya</channel> + </channels> +</site> \ No newline at end of file diff --git a/config/siteini.pack/Italy/staseraintv.com.ini b/config/siteini.pack/Italy/staseraintv.com.ini new file mode 100644 index 0000000..e30d5e5 --- /dev/null +++ b/config/siteini.pack/Italy/staseraintv.com.ini @@ -0,0 +1,56 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: staseraintv.com +* @MinSWversion: V1.1.1/54 +* @Revision 1 - [01/06/2016] Blackbear199 +* - showsplit fix +* @Revision 0 - [25/09/2015] Francis De Paemeleere +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=staseraintv.com|timezone=Europe/Rome|maxdays=2|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|nopageoverlaps} + +urldate.format {list|stasera|domani|{datestring|dddd_dd_MMMM_yyy}} +url_index{url|http://www.staseraintv.com/programmi_|urldate|_|channel|.html} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages + + +scope.range {(urlindex)|end} +url_index.modify {replace|ì|i} +end_scope + +index_showsplit.scrub {multi(separator="<br>" exclude=last)|<div class="listingbox"|normal;">|</h4>|</div>} + +index_start.scrub {regex||^\s*([0-2]\d\:[0-5]\d)||} +index_start.modify {replace(type=regex)|24:|00:} +index_title.scrub {regex||^[^-]*-\s*(.*?)$||} + + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*------------------------------------------------------------------------------ +* channels page - some may not have any listings.enable only 1 +*------------------------------------------------------------------------------ +*url_index{url|http://www.staseraintv.com/canali_digitale_terrestre.html} +*index_site_id.scrub {regex||<!-- CANALE -->(.*?)</tr||} +*scope.range {(channellist)|end} +*index_site_channel.modify {addstart|'index_site_id'} +*index_site_channel.modify {substring(type=regex)|.*?</td>.*?<td>([^<]*)</td>.*/lista-canali/scheda_.*?.html} +*index_site_id.modify {substring(type=regex) |.*?</td>.*?<td>[^<]*</td>.*/lista-canali/scheda_(.*?).html} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +*end_scope +*-------------------------------------------------------------------------------- +* active channels - channels that have listings.enable only 1 +*-------------------------------------------------------------------------------- +*url_index{url|http://www.staseraintv.com/index|subpage|.html} +*subpage.format{list||1|2|3|4|5|6|7|8|9} +*index_site_id.scrub {multi|onClick="window.location.href='/programmi_stasera_||.html'">|.html'">} +*index_site_channel.scrub {multi|<div class="listingprevbox"|">|<p|<br>} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} + +** @auto_xml_channel_end diff --git a/config/siteini.pack/Italy/tv.zam.it.channels.xml b/config/siteini.pack/Italy/tv.zam.it.channels.xml new file mode 100644 index 0000000..3a169b0 --- /dev/null +++ b/config/siteini.pack/Italy/tv.zam.it.channels.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site generator-info-name="WebGrab+Plus/w MDB & REX Postprocess -- version 1.1.1/53.6 -- Jan van Straaten" site="tv.zam.it"> + <channels> + <channel update="i" site="tv.zam.it" site_id="10" xmltv_id="Rai 1">Rai 1</channel> + <channel update="i" site="tv.zam.it" site_id="21" xmltv_id="Rai 2">Rai 2</channel> + <channel update="i" site="tv.zam.it" site_id="23" xmltv_id="Rai 3">Rai 3</channel> + <channel update="i" site="tv.zam.it" site_id="1" xmltv_id="Canale 5">Canale 5</channel> + <channel update="i" site="tv.zam.it" site_id="3" xmltv_id="Italia 1">Italia 1</channel> + <channel update="i" site="tv.zam.it" site_id="7" xmltv_id="Rete 4">Rete 4</channel> + <channel update="i" site="tv.zam.it" site_id="2" xmltv_id="La7">La7</channel> + <channel update="i" site="tv.zam.it" site_id="36" xmltv_id="Mtv">Mtv</channel> + <channel update="i" site="tv.zam.it" site_id="106" xmltv_id="Deejay Tv">Deejay Tv</channel> + <channel update="i" site="tv.zam.it" site_id="4" xmltv_id="Rai 4">Rai 4</channel> + <channel update="i" site="tv.zam.it" site_id="5" xmltv_id="Iris">Iris</channel> + <channel update="i" site="tv.zam.it" site_id="6" xmltv_id="Cielo">Cielo</channel> + <channel update="i" site="tv.zam.it" site_id="9" xmltv_id="Boing">Boing</channel> + <channel update="i" site="tv.zam.it" site_id="12" xmltv_id="Rai Storia">Rai Storia</channel> + <channel update="i" site="tv.zam.it" site_id="13" xmltv_id="RaiGulp">RaiGulp</channel> + <channel update="i" site="tv.zam.it" site_id="14" xmltv_id="Raisport 1">Raisport 1</channel> + <channel update="i" site="tv.zam.it" site_id="132" xmltv_id="Rai 5">Rai 5</channel> + <channel update="i" site="tv.zam.it" site_id="133" xmltv_id="La5">La5</channel> + <channel update="i" site="tv.zam.it" site_id="134" xmltv_id="Rai Movie">Rai Movie</channel> + <channel update="i" site="tv.zam.it" site_id="135" xmltv_id="Mediaset Extra">Mediaset Extra</channel> + <channel update="i" site="tv.zam.it" site_id="136" xmltv_id="La7d">La7d</channel> + <channel update="i" site="tv.zam.it" site_id="137" xmltv_id="Rai premium">Rai premium</channel> + <channel update="i" site="tv.zam.it" site_id="138" xmltv_id="Italia 2">Italia 2</channel> + <channel update="i" site="tv.zam.it" site_id="164" xmltv_id="Realtime">Realtime</channel> + <channel update="i" site="tv.zam.it" site_id="166" xmltv_id="Dmax">Dmax</channel> + <channel update="i" site="tv.zam.it" site_id="173" xmltv_id="Rai News">Rai News</channel> + <channel update="i" site="tv.zam.it" site_id="174" xmltv_id="Rai YoYo">Rai YoYo</channel> + <channel update="i" site="tv.zam.it" site_id="452" xmltv_id="Premium Cinema">Premium Cinema</channel> + <channel update="i" site="tv.zam.it" site_id="176" xmltv_id="DeaSuper">DeaSuper</channel> + <channel update="i" site="tv.zam.it" site_id="178" xmltv_id="K2">K2</channel> + <channel update="i" site="tv.zam.it" site_id="179" xmltv_id="Frisbee">Frisbee</channel> + <channel update="i" site="tv.zam.it" site_id="180" xmltv_id="Super Tennis">Super Tennis</channel> + <channel update="i" site="tv.zam.it" site_id="181" xmltv_id="Tv 2000">Tv 2000</channel> + <channel update="i" site="tv.zam.it" site_id="183" xmltv_id="Sport 3">Sport 3</channel> + <channel update="i" site="tv.zam.it" site_id="451" xmltv_id="Top Crime">Top Crime</channel> + <channel update="i" site="tv.zam.it" site_id="463" xmltv_id="Rsi La 1">Rsi La 1</channel> + <channel update="i" site="tv.zam.it" site_id="196" xmltv_id="Cartoonito">Cartoonito</channel> + <channel update="i" site="tv.zam.it" site_id="377" xmltv_id="Focus">Focus</channel> + <channel update="i" site="tv.zam.it" site_id="378" xmltv_id="Giallo">Giallo</channel> + <channel update="i" site="tv.zam.it" site_id="410" xmltv_id="Raisport 2">Raisport 2</channel> + <channel update="i" site="tv.zam.it" site_id="411" xmltv_id="Rai Scuola">Rai Scuola</channel> + <channel update="i" site="tv.zam.it" site_id="453" xmltv_id="Premium Energy">Premium Energy</channel> + <channel update="i" site="tv.zam.it" site_id="454" xmltv_id="Premium Emotion">Premium Emotion</channel> + <channel update="i" site="tv.zam.it" site_id="455" xmltv_id="Premium Comedy">Premium Comedy</channel> + <channel update="i" site="tv.zam.it" site_id="456" xmltv_id="Premium Crime">Premium Crime</channel> + <channel update="i" site="tv.zam.it" site_id="457" xmltv_id="Premium Joi">Premium Joi</channel> + <channel update="i" site="tv.zam.it" site_id="458" xmltv_id="Premium Mya">Premium Mya</channel> + <channel update="i" site="tv.zam.it" site_id="459" xmltv_id="Premium Action">Premium Action</channel> + <channel update="i" site="tv.zam.it" site_id="460" xmltv_id="Alice">Alice</channel> + <channel update="i" site="tv.zam.it" site_id="461" xmltv_id="Sport 1">Sport 1</channel> + <channel update="i" site="tv.zam.it" site_id="462" xmltv_id="Sport 2">Sport 2</channel> + <channel update="i" site="tv.zam.it" site_id="464" xmltv_id="Rsi La 2">Rsi La 2</channel> + </channels> +</site> \ No newline at end of file diff --git a/config/siteini.pack/Italy/tv.zam.it.ini b/config/siteini.pack/Italy/tv.zam.it.ini new file mode 100644 index 0000000..4bc8213 --- /dev/null +++ b/config/siteini.pack/Italy/tv.zam.it.ini @@ -0,0 +1,112 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: tv.zam.it +* @MinSWversion: V1.1.1/53.6 +* none +* @Revision 6 - [05/01/2014] Steve Wildmore +* fix channels.xml generation +* @Revision 5 - [04/01/2014] Steve Wildmore +* fully new, site change +* @Revision 4 - [24/07/2012] Jan van Straaten +* fully new, site change +* @Revision 3 - [01/04/2011] Willy De Wilde +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=tv.zam.it|timezone=UTC+01:00|maxdays=9|cultureinfo=it-IT|charset=ISO-8859-1|titlematchfactor=90|episodesystem=onscreen} +url_index{url|http://tv.zam.it/programmitv_giorno.php?canale=|channel|&data=|urldate|} +urldate.format {datestring|yyyy-MM-dd} +* +*index_showsplit.scrub {multi(debug exclude="<<< Programmi")|</script>\n</td></tr>|<tr|</a></td></tr>|<script type='text/javascript'>} +index_showsplit.scrub {regex||Tv_square(.*?)tv_square_foot||} +index_showsplit.modify {substring(type=regex)|(<tr[^>]*><td class="gen".*?</tr>)} +index_start.scrub {single|width="1%"|<b>|</b>|</b>} +index_title.scrub {single|<a href="programmitv|">|</a>|</a>} +index_category.scrub {single|<span style="color:green";>|(|)|</span></td>} +*index_description.scrub {single(separator="<a href=" include=first)|</span>|<br />|</td>|<td width="1%">} +index_temp_1.scrub {single(separator="<a href=" include=first)|</span>|<br />|</td>|<td width="1%">} * index_description + +index_urlshow {url|http://tv.zam.it/programmitv_giorno.php?scheda=|<a href="programmitv_giorno.php?scheda=||" |class="gen"} +* detail http://tv.zam.it/programmitv_giorno.php?scheda=1157 + +* disable the next two lines to make it slower but more precise (if no index_description then skip urlshow) +* when enabled reduces to about the 50% the grabbing time +index_urlshow.modify {remove('index_temp_1' "")|'index_urlshow'} +index_description.modify {addstart('index_temp_1' "")|Senza ulteriori dettagli...} + +* title decoding +title.scrub {single|<!-- google_ad_section_start -->|<title>||} +title.modify {cleanup} + +* description decoding +description.scrub {single|
    Descrizione:||
    Cast:|
    ||
    |
    |
    |} * variant2 of urlshow description +temp_1.modify {replace|Descrizione:|
    |
    |
    Cast:} +category.modify {cleanup(tags="s); ""align="left">")} +category.modify {remove|Genere } + +* director decoding +director.scrub {single|Regia:|| - |
    } +director.modify {cleanup} + +* actors decoding +actor.scrub {single(separator=", ")|Cast:|Con |. |

    |
    } +* +index_start.scrub {regex||

    (\d{2}:\d{2})||} +index_title.scrub {single|template=detail">|||} +* +index_urlshow {url|http://hikaritv.eonet.jp/program/||">} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +* +title.scrub {single||||} +description.scrub {single|【番組概要】|||} +actor.scrub {single|【出演】|||} +category.scrub {single|search&category=sg&arg=20">|||} +* +scope.range{(showdetails)|end} +title.modify {remove(type=regex)|<.+?>} +*title.modify {remove(type=regex)|\[.+?\]} +description.modify {remove(type=regex)|<.+?>} +* +actor.modify {remove(type=regex)|(.+?)} +actor.modify {substring(type=regex)|"\[[^\[]*"} +actor.modify {remove(type=regex)|\[.+?\]} +* +title.modify {remove|[SS]} +title.modify {remove|(字)} +title.modify {remove|[字]} +title.modify {remove|(} +title.modify {remove|)} +* +temp_1.modify {substring(type=regex)|'title' "シーズン\d+"} *season +temp_2.modify {substring(type=regex)|'title' "#\d+"} *episode +title.modify {remove|'temp_1'} +title.modify {remove|'temp_2'} +temp_1.modify {replace|シーズン|S} +temp_2.modify {replace|#|E} +episode.modify {addstart('temp_1' not "")|'temp_1'} +episode.modify {addend('temp_2' not "")|'temp_2'} +* +description.modify {remove(type=regex)|^.*◇.+?◇} +* +category.modify {replace|/|\|} +end_scope + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*site {url=eonet.jp|cultureinfo=ja-JP|charset=UTF-8} +*url_index{url|http://hikaritv.eonet.jp/039/json/channel_genre/003.json} +*url_index.headers {accept=application/json, text/javascript, */*} +*index_site_id.scrub {multi|{"||":|":} +*index_site_channel.scrub {multi|: "||"}|"}} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Japan/skyperfect.co.jp.channels.xml b/config/siteini.pack/Japan/skyperfect.co.jp.channels.xml new file mode 100644 index 0000000..bcfde6a --- /dev/null +++ b/config/siteini.pack/Japan/skyperfect.co.jp.channels.xml @@ -0,0 +1,74 @@ + + + + BS200(BS10) スターチャンネル1 + BS201 スターチャンネル2 + BS202 スターチャンネル3 + CS218 東映チャンネル + CS219 衛星劇場 + CS223 映画・チャンネルNECO + CS227 ザ・シネマ + CS240 ムービープラスHD + BS252 イマジカBS・映画 + BS255 BS日本映画専門チャンネル + BS242 J SPORTS 1 + BS243 J SPORTS 2 + BS244 J SPORTS 3 + BS245 J SPORTS 4 + CS250 スカイA + CS254 GAORA SPORTS + CS257 日テレジータス + CS262 ゴルフネットワークHD + BS241 BSスカパー + BS238 FOXスポーツ&エンターテイメント + BS256 ディズニー・チャンネル ディズニー映画・アニメ + CS296 TBSチャンネル1 最新ドラマ・音楽・映画 + CS297 TBSチャンネル2 名作ドラマ・スポーツ・アニメ + CS298 テレ朝チャンネル1 ドラマ・バラエティ・アニメ + CS299 テレ朝チャンネル2 ニュース・情報・スポーツ + CS300 日テレプラス ドラマ・アニメ・スポーツ + CS305 チャンネル銀河 歴史ドラマ・サスペンス・日本のうた + CS307 フジテレビONE スポーツ・バラエティ + CS308 フジテレビTWO ドラマ・アニメ + CS309 フジテレビNEXT ライブ・プレミアム + CS800 スカチャン0 + CS801 スカチャン1 + CS802 スカチャン2 + CS805 スカチャン3 + CS321 100%ヒッツ!スペースシャワーTV プラス + CS322 スペースシャワーTV + CS323 MTV HD + CS325 MUSIC ON! TV(エムオン!)HD + CS326 ミュージック・エア + CS329 歌謡ポップスチャンネル + CS310 スーパー!ドラマTV HD + CS311 AXN 海外ドラマ + CS312 FOX + CS314 女性チャンネル♪LaLa TV(HD) + CS316 AXNミステリー + CS290 TAKARAZUKA SKY STAGE + CS292 時代劇専門チャンネルHD + CS293 ファミリー劇場HD + CS294 ホームドラマチャンネル 韓流・時代劇・国内ドラマ + BS236 BSアニマックス + CS330 キッズステーション テレビアニメ・劇場版・OVA + CS331 海外アニメ!カートゥーン ネットワーク + CS333 アニメシアターX(AT-X) + CS340 ディスカバリーチャンネル + CS341 アニマルプラネット + CS342 ヒストリーチャンネル 日本・世界の歴史&エンタメ + CS343 ナショナル ジオグラフィック チャンネル + CS349 日テレNEWS24 + CS351 TBSニュースバード + CS353 BBCワールドニュース + CS354 CNNj + BS251 BS釣りビジョン + CS362 旅チャンネル + CS339 ディズニージュニア お子さま向けディズニー番組 + CS363 囲碁・将棋チャンネル + BS234 グリーンチャンネル + CS055 ショップチャンネル + CS161 QVC(キューヴィーシー + CS100 スカパー!プロモ100 + + \ No newline at end of file diff --git a/config/siteini.pack/Japan/skyperfect.co.jp.ini b/config/siteini.pack/Japan/skyperfect.co.jp.ini new file mode 100644 index 0000000..3455302 --- /dev/null +++ b/config/siteini.pack/Japan/skyperfect.co.jp.ini @@ -0,0 +1,67 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: skyperfect.co.jp +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [01/05/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=skyperfect.co.jp|timezone=Asia/Tokyo|maxdays=7|cultureinfo=ja-JP|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=JP|episodesystem=onscreen} +url_index{url|http://bangumi.skyperfectv.co.jp/api/makeJsonForDayChannel.php?service=e2&channel=|channel|&date=|urldate|} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +urldate.format {datestring|yyMMdd} +* +index_showsplit.scrub {multi|

    |||
    } +*index_urlchannellogo {url|} +* +index_date.scrub {regex||

    [^>]*(\d{2}\/\d{2})||} +index_start.scrub {regex||

    [^>]*(\d{2}:\d{2})~||} +index_stop.scrub {regex||

    [^>]*\d{2}:\d{2}~(\d{2}:\d{2})||} +index_title.scrub {single|

    |">||

    } +* +index_urlshow {url|http://bangumi.skyperfectv.co.jp|

    |href="|">||

    } +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +* +title.scrub {single|

    ||

    |
  • } +description.scrub {multi(include="ストーリー""エピソード内容""↓↓↓↓↓""番組内容")|

    ||

    |

    } +actor.scrub {single(separator="・")|出演:||

    |

    } +category.scrub {multi(include=first)|
    |
  • |
  • |} +productiondate.scrub {multi(include="制作""製作年")|

    ||

    |

    } +country.scrub {single|製作国|

    |

    |
    } +* +scope.range{(showdetails)|end} +title.modify {remove(type=regex)|\[.+?\]} +subtitle.modify {substring(type=regex)|'title' "「.+?」"} +subtitle.modify {clear(~ "シーズン")} +title.modify {remove('subtitle' not "")|'subtitle'} +subtitle.modify {remove|「} +subtitle.modify {remove|」} +title.modify {remove|「} +title.modify {remove|」} +description.modify {remove(type=regex)|^.*<\/h2>} +description.modify {cleanup(tags="<"">")} +category.modify {cleanup(tags="<"">")} +category.modify {replace|/|\|} +episode.modify {substring(type=regex)|'title' "シーズン.*"} +temp_1.modify {substring(type=regex)|'title' "S\d+#\d+"} *alternate episode format +episode.modify {addstart('temp_1' not "")|'temp_1'} +title.modify {remove('episode' not "")|'episode'} +episode.modify {replace|シーズン|S} +episode.modify {replace|#|E} +episode.modify {remove| } +productiondate.modify {cleanup(tags="<"">")} +end_scope +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://www.skyperfectv.co.jp/channel/list.html} +*index_site_id.scrub {multi||/">} +*index_site_channel.scrub {multi|

    ||

    |

    } +*index_site_channel.modify {cleanup(tags="<"">")} +*index_site_channel.modify {cleanup} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Kazakhstan/galamtv.kz.channels.xml b/config/siteini.pack/Kazakhstan/galamtv.kz.channels.xml new file mode 100644 index 0000000..d872085 --- /dev/null +++ b/config/siteini.pack/Kazakhstan/galamtv.kz.channels.xml @@ -0,0 +1,26 @@ + + + + OTAU TV Channel + Казахстан + Хабар + 24 KZ + Білім және Мәдениет + Мир + 7 Канал + 31 канал + CTB + Алматы + ОҢ-ТВ + Жетiсу + KazakhTV + 7 Kazakhstan + Туран ТВ + Новое Телевидение + Балапан + Gakku TV + MuzZone + KazSport + Асыл Арна + + \ No newline at end of file diff --git a/config/siteini.pack/Kazakhstan/galamtv.kz.ini b/config/siteini.pack/Kazakhstan/galamtv.kz.ini new file mode 100644 index 0000000..8fa0e9b --- /dev/null +++ b/config/siteini.pack/Kazakhstan/galamtv.kz.ini @@ -0,0 +1,30 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: galamtv.kz +* @MinSWversion: 1.1.1/54 +* @Revision 0 - [20/05/2016] Blackbear199 +* - creation +* @Remarks: +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=galamtv.kz|timezone=UTC+06:00|maxdays=2.1|cultureinfo=ru-RU|charset=UTF-8|titlematchfactor=90} +site {ratingsystem=RU|episodesystem=onscreen|allowlastpageoverflow} +url_index.headers {customheader=Accept-Encoding=gzip,deflate} +url_index{url|http://galamtv.kz/channel/|channel|/} +urldate.format {daycounter|0} *not used +* +index_showsplit.scrub {multi|
    ||
    |

    } +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|http://galamtv.kz/channel/} +*index_site_id.scrub {multi|
    |} +*index_site_channel.scrub {multi|
    |||

    |||} +* +index_urlshow.modify {addstart|https://comspace.viasat.dk/Services/Robot.aspx/GetProgramInfo} +* +scope.range{(showdetails)|end} +index_temp_1.scrub {single|data-program="||"|"} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +index_urlshow.headers {method=POST} +index_urlshow.headers {accept=application/json, text/javascript, */*; q=0.01} +index_urlshow.headers {contenttype=application/json; charset=utf-8} +index_urlshow.headers {postdata={"programId":'index_temp_1',"programDate":"'index_start'"}} +end_scope +* +temp_1.scrub {single||||} +temp_1.modify {cleanup} +temp_1.modify {remove|\} +* +title.modify {substring(type=regex)|'temp_1' "\"programTitle\":\"(.+?)\""} +description.modify {substring(type=regex)|'temp_1' "\"longDescription\":\"(.+?)\""} +* +director.modify {substring(type=regex)|'temp_1' "Director:(.+?)\."} +director.modify {substring(type=regex)|"(?:,?([^,]*))*"} +* +actor.modify {substring(type=regex)|'temp_1' "Actor:(.+?)\.\""} +actor.modify {substring(type=regex)|"(?:,?([^,]*))*"} +actor.format {xmltv|"actor (role)"} +* +productiondate.modify {substring(type=regex)|'temp_1' "\"Produktionsår: (\d+)\""} +* +temp_2.modify {substring(type=regex)|'temp_1' "\"season\":\"Sæson: (\d+)\""} +temp_2.modify {addstart('temp_2' not "")|S} +episode.modify {substring(type=regex)|'temp_1' "\"episode\":\"Afsnit: (\d+)"} +episode.modify {addstart('episode' not "")|E} +episode.modify {addstart('temp_2' not "")|'temp_2'} +* +showicon.modify {substring(type=regex)|'temp_1' "\"movieImage\":\"(.+?)\""} +* +index_title.modify {remove(type=regex)|<.+?>} + +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*url_index{url|https://comspace.viasat.dk/Customize/} +*index_site_id.scrub {multi|
    |
  • } +*index_site_channel.scrub {multi|
    |} +*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} +** @auto_xml_channel_end diff --git a/config/siteini.pack/Egypt/elcinema.ar.com.channels.xml b/config/siteini.pack/Egypt/elcinema.ar.com.channels.xml new file mode 100644 index 0000000..77b3631 --- /dev/null +++ b/config/siteini.pack/Egypt/elcinema.ar.com.channels.xml @@ -0,0 +1,84 @@ + + + + Rotana Classic + MBC 2 + Future TV + OSN Yahala Dra... + OSN Movies Kids + OSN Movies Action + FX + OSN Premier +2 + OSN Movies Comedy + MBC MAX + ART Aflam 1 + Star Movies + Orbit Cinema 1 + Rotana Movies + Fox Movies + OSN Premier + ART Aflam 2 + OSN Movies + Al Nahar Drama + Al Nahar TV + Mehwar + Sada El Balad D... + Nile Drama + Sada El Balad +2 + MBC Action + Sama Dubai + MBC + MBC Egypt + MBC MASR 2 + MBC 4 + ONTV + CBC + Rotana Cinema + Sada El Balad + OSN First Comed... + OSN First + OSN First +2 + OSN Movies Drama + OSN Movies Dram... + Orbit Cinema 2 + Alhayat Series + Alhayat 2 + ART Stories 2 + ART More Stories + Dubai Drama + CBC Drama + LBC Europe + Al Nahar Drama +2 + Dream 1 + El Zafra + ART Stories + LBC Drama + ONTV PLUS + E Entertainment + OSN Movies 2 + OSN Ya Hala + MBC Drama + Dubai Zaman + ART Cinema + Al Safwa + Osn Ya Hala Cinema + Dubai TV + Animal Planet HD + Alhayat TV + ITV Choice + Al Nahar +2 + OSN Yahala Shab... + OSN First HBO + Orbit Series +2 + Fan + OSN First Comedy + OSN Movies Fest... + LBC International + Orbit Series + Disney channel + CBC +2 + TLC + AMC + Fox + + \ No newline at end of file diff --git a/config/siteini.pack/Egypt/elcinema.ar.com.ini b/config/siteini.pack/Egypt/elcinema.ar.com.ini new file mode 100644 index 0000000..e8035f5 --- /dev/null +++ b/config/siteini.pack/Egypt/elcinema.ar.com.ini @@ -0,0 +1,121 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: elcinema.ar +* @MinSWversion: V1.1.1/55.27 +* @Revision 4 - [13/06/2016] Blackbear199 +* - add productiondate +* @Revision 3 - [09/05/2016] Blackbear199 +* - rewrite +* @Revision 2 - [17/10/2015] Jan van Straaten +* - added firstshow=1, some small changes in titleoriginal +* @Revision 1 - [13/11/2014] Jan van Straaten +* - update to site changes +* @Revision 0 - [16/01/2014] Willy de Wilde +* - creation +* @Remarks: Arabic language version +* @header_end +**------------------------------------------------------------------------------------------------ +site {url=elcinema.com|timezone=Africa/Cairo|maxdays=7.1|cultureinfo=ar-IQ|charset=UTF-8|titlematchfactor=0|loadcookie=elcinema.com_cookies.txt} +* +url_index{url|http://www.elcinema.com/tvguide/ch|channel|/schedule/|urldate|/#selectors} +urldate.format {datestring|yyyy/MM/dd} +* +index_showsplit.scrub {multi(debug)|
    ||
  • |} +index_start.modify {remove(type=regex)|} +* +index_start.modify {replace|صباحاً|am} *am arabic +index_start.modify {replace|مساءً|pm} *pm arabic +* +index_start.modify {replace|صباحا|am} *Pm arabic +index_start.modify {replace|مساءا|pm} *Am arabic +* +index_start.modify {cleanup} +* +index_duration.scrub {single|[||دقيقة]|دقيقة]} +index_duration.modify {calculate(format=F0)} +* +index_title.scrub {multi(includeblock=1)|
      |
    • |
    • |
    } +index_title.modify {remove(type=regex)|<.+?>} +* +index_urlshow {url(include="work")|http://www.elcinema.com|
    |">} +index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} +* +end_scope +* +*temp_9.scrub {single(debug)||||} +title.scrub {single(separator=" - " include=2)|
  • الرئيسية
  • |
  • ||
  • } +title.modify {remove(type=regex)|<.+?>} +subtitle.scrub {single|
    |||} +subtitle.modify {clear('subtitle' 'title')} +titleoriginal.scrub {single(lang=ar)|
    |||
    } +productiondate.modify {substring(type=regex)|'titleoriginal' "\((.+?)\)"} +titleoriginal.modify {remove|('productiondate')} +titleoriginal.modify {clear('titleoriginal' ~ 'title')} +* +description.scrub {single|ملخص القصة:|

    ||

    } +description.modify {remove(type=regex)|} +description.modify {remove(type=regex)|<.+?>} +description.modify {cleanup} +* +category.scrub {multi|id="jump-here-genre"|
  • |
  • |} +category.modify {remove(type=regex)|<.+?>} +category.modify {cleanup(removeduplicates)} +category.modify {cleanup} +* +actor.scrub {multi(separator="
    ")|طاقم العمل:|
  • |<\li>|} +actor.modify {remove(type=regex)|<.+?>} +actor.modify {remove(type=regex)|\(.+?\)} +actor.modify {cleanup} +* +director.scrub {multi(separator="")|ﺇﺧﺮاﺝ:|
  • |<\li>|} +director.modify {remove(type=regex)|<.+?>} +director.modify {remove(type=regex)|\(.+?\)} +director.modify {remove(type=regex)|\(\)} +director.modify {cleanup} +* +writer.scrub {multi(separator="")|ﺗﺄﻟﻴﻒ:|
  • |<\li>|} +writer.modify {remove(type=regex)|<.+?>} +writer.modify {remove(type=regex)|\(.+?\)} +writer.modify {remove(type=regex)|\(\)} +writer.modify {cleanup} +* +productiondate.scrub {single|
  • بلد الإنتاج:
  • ||
  • |
  • } +country.modify {remove|||} +* +index_urlshow {url|http://www.enorme.tv|href="||"|"} +index_urlchannellogo {url(scope=datelogo)|http://www.enorme.tv|} +* +index_start.scrub {single||||} +*index_start.modify {calculate(format=F0)| 1000/} +index_title.scrub {single||||} +index_category.scrub {single||||} +* +title.scrub {single|

    ||

    |} +description.scrub {single|||<|<} +* +** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) +** +** @auto_xml_channel_start +*index_site_id.scrub {|} +*index_site_id.modify {set|enorme-tv} +*index_site_channel.modify {set|Enorme TV} +** @auto_xml_channel_end diff --git a/config/siteini.pack/France/fr.tv.yahoo.com.channels.xml b/config/siteini.pack/France/fr.tv.yahoo.com.channels.xml new file mode 100644 index 0000000..3475029 --- /dev/null +++ b/config/siteini.pack/France/fr.tv.yahoo.com.channels.xml @@ -0,0 +1,89 @@ + + + + 13e Rue + AB 1 + Action + Animaux + Arte + BFM TV + Canal J + Canal+ + Canal+ Cinéma + Canal+ Décalé + Canal+ Family + Canal+ Sport + Cartoon Network + Chasse et pêche + Ciné FX + Ciné Polar + Cinecinema Classic + Cinecinema Club + Cinecinema Emotion + Cinecinema Famiz + Cinecinema Frisson + Cinecinema Premier + Cinecinema Star + Comédie + Cuisine.Tv + Direct 8 + Direct Star + Discovery Channel + Disney Channel + Disney Cinémagic + E ! Entertainment + Encyclopedia + Equidia + Escales + ESPN Classic + Eurosport + Eurosport 2 + France 2 + France 24 + France 3 + France 4 + France 5 + France Ô + Gulli + Histoire + i Télé + Jimmy + June + La Chaîne parlementaire + LCI - La Chaîne Info + M6 + MCM + Mezzo + Motors TV + MTV + MTV Rocks + National Geographic + NRJ 12 + NT 1 + Paris Première + Pink TV + Planète + Planète Thalassa + RTL 9 + Série club + Seasons + Sport+ + Stylia + Syfy Universal + TéléToon TPS + Téva + TCM + TF1 + TF6 + TMC + Toute l'histoire + TPS Star + TV5MONDE + TvBreizh + Ushuaia TV + Vivolta + Voyage + W9 + XXL + + \ No newline at end of file diff --git a/config/siteini.pack/France/fr.tv.yahoo.com.ini b/config/siteini.pack/France/fr.tv.yahoo.com.ini new file mode 100644 index 0000000..83f004e --- /dev/null +++ b/config/siteini.pack/France/fr.tv.yahoo.com.ini @@ -0,0 +1,35 @@ +**------------------------------------------------------------------------------------------------ +* @header_start +* WebGrab+Plus ini for grabbing EPG data from TvGuide websites +* @Site: fr.tv.yahoo.com +* @MinSWversion: V0 +* none +* @Revision 1 - [20/04/2011] Willy De Wilde +* none +* @Remarks: +* none +* @header_end +**------------------------------------------------------------------------------------------------ + +site {url=fr.tv.yahoo.com|timezone=UTC+01:00|maxdays=12|cultureinfo=fr-FR|charset=UTF-8|titlematchfactor=90|firstshow=0} +url_index{url()|http://fr.tv.yahoo.com/programme-tv/|channel|/|urldate|/} +urldate.format {datestring|yyyy-MM-dd} +* +index_urlshow {url()|http://fr.tv.yahoo.com|
    ||
  • |
    } +index_showsplit.modify {substring(type=regex)|"(
    )"} +* +index_start.scrub {regex||

    (\d{1,2}:\d{2})||} +index_title.scrub {single||||} +* +*index_title.modify {remove|(E)} +*index_titleoriginal.modify {substring(type=regex)|'index_title' "[^>]*\((.+?)\)"} +*index_title.modify {remove|('index_titleoriginal')} +* +index_description.scrub {single|

    ||
    |