Files
epg/siteini.pack/International/yo.tv.ini
freearhey a597b11307 Init
2021-03-09 22:46:37 +03:00

303 lines
16 KiB
INI
Executable File

**------------------------------------------------------------------------------------------------
* @header_start
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
* @Site: yo.tv
* @MinSWversion: V2.0
* @Revision 9 - [04/10/2017] Netuddki
* - Fixed an issue with Episode scrubbing (Season 7 Episode 7 of 0)
* @Revision 8 - [25/03/2017] Netuddki
* - Merged two different inis by Blackbear and Netuddki
* @Revision 7 - [28/03/2017] Netuddki
* - Added option for onscreen OR xmltv_ns episode system
* - Changed "Rating" to "Starrating"
* @Revision 6 - [23/05/2017] Blackbear199
* - improved details for some shows that details page returns a error(uses a subdetail page)
* @Revision 5 - [18/12/2016] Blackbear199
* - update season/episode to webgrab 56.25+ version
* - added channels.xml creation for country's that do not use zip/postal code(use region name).example uk.
* @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}
site {ratingsystem=US}
*
*site {episodesystem=onscreen} *Enable for Onscreen Episode System
site {episodesystem=xmltv_ns} *Enable for xmltv_ns Episode System
*
url_index{url |http://##COUNTRY##.yo.tv/api/GS?cid=##CHANNEL_ID##,&offset=,&day=|urldate|}
url_index.headers {customheader=Accept-Encoding=gzip,deflate}
urldate.format {daycounter|0}
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
index_showsplit.scrub {multi|["|<a|</a>|"]}
*index_showsplit.modify {(debug)} for debug
index_start.scrub {single |data-time=|'|'|data-flags}
index_title.scrub {single (separator=": " include=first)|<h2||</h2>|</h2>}
index_title.modify {remove(type=regex)|^[^>]*>}
index_title.modify {cleanup (tags="<span""</span>")}
index_title.modify {cleanup (tags="<"">")}
index_subtitle.scrub {single (separator=": " exclude=first)|<h2||</h2>|</h2>}
index_subtitle.modify {remove(type=regex)|^[^>]*>}
index_subtitle.modify {cleanup (tags="<"">")} *NEW
index_temp_3.scrub {regex ||\((\d{4})\).<\/h2>\s<h3>||} *for productiondate
index_title.modify {remove(type=regex)|(.\(\d{4}\)$)}
index_subtitle.modify {remove(type=regex)|(.\(\d{4}\)$)}
*
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'}
*
title.scrub {single (separator=": " include=first)|bg-title" >||</div>|</div>}
title.modify {remove (type=regex)|(.\(\d{4}\)$)}
*title.modify {addstart("")|'index_title'}
subtitle.scrub {single (separator=": " exclude=first)|<h2|>||</h2>}
subtitle.modify {remove (type=regex)|(\s\(\d{4}\))}
subtitle.modify {remove | </h2}
*
temp_1.scrub {regex||<span class="episode" >Season\s([1-9]+)||}
temp_1.modify {addstart(not "")|S}
temp_2.scrub {regex||<span class="episode" >Season\s[1-9]+\sEpisode\s([1-9]+)||}
temp_2.modify {addstart(not "")|E}
temp_2.modify {addstart('temp_1' not "")|'temp_1'}
temp_3.scrub {regex||<span class="episode" >Season\s[1-9]+\sEpisode\s[1-9]+\sof\s([1-9]+)||}
temp_3.modify {addstart(not "")|Et}
temp_3.modify {addstart('temp_2' not "")|'temp_2'}
episode.modify {set(pattern="S'S1'E'E1'Et'Et1'""S'S1'E'E1'""S'S1'""E'E1'")|'temp_3'}
*
subtitle.scrub {single |prog box">|<span >| </span></span>|<h3>}
subtitle.modify {cleanup (tags="<"">")}
subtitle.modify {remove (type=regex)|(.Episode.*)}
subtitle.modify {remove (type=regex)|(Rating.*)}
productiondate.modify {addstart |'index_temp_3'}
*starrating.scrub {single |Rating:</span> ||</span>|</div></a></div></li><li}
*description.scrub {single |prog box"|<h3>||</h3>}
*description.modify {remove |</h3>}
category.scrub {multi |Genre</h2>|<div >|</div>|<div class="}
category.scrub {single |prog box">|><h2 class='|'>|<span}
category.modify {cleanup(style=name)}
*********general credits*********
*actor.scrub {regex ||<ul class="cast">(?:.*?)(?:<li><div>(.*?)</div></li>(?:.*?))*</ul>||}
*actor.modify {replace |</div><div class="partname">|[}
*actor.modify {addend (notnull)|]}
*actor.modify {remove | [Actor]}
***************
*specific credits
actor.scrub {multi |id="cast-box" >|<div>| </div><div class|castoverlay" >}
temp_4.scrub {multi |Crew</h2>|<li><div>|</div></li>|</ul>} *debug for more credits
temp_4.modify {replace |</div><div class="partname">|[}
temp_4.modify {addend (notnull)|]}
director.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Director\])"} *spa, eng
director.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Réalisateur\])"} *french
composer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Compositor\])"} *spa, port
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Produtora\])"} *port
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Produtor\])"} *port
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Productor\])"} *spa
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Productor ejecutivo\])"} *spa
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Compañías productores\])"} *spa
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Executive Producer\])"} *eng
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Production Company\])"} *eng
producer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Société de production\])"} *french
commentator.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Reporter\])"} *eng
commentator.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Jornalista\])"} *port
commentator.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Journaliste\])"} *french
writer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Writer\])"} *eng
writer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Autor\])"} *port
writer.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Escritor\])"} *spa
presenter.modify {substring (type=regex)|'temp_4' "(.*?)\s(?:\[Apresentador\])"} *port
showicon.scrub {single |og:image"|content="https:|"| />}
showicon.modify {addstart (notnull)|https:}
*
index_urlsubdetail {url|http://canada.yo.tv/api/program/|href='/engage/||/|/}
index_ursubdetail.headers {contenttype=application/x-www-form-urlencoded; charset=utf-8}
index_urlsubdetail.headers {customheader=Accept-Encoding=gzip,deflate}
subdetail_title.scrub {single|</i>||<span|<span}
subdetail_subtitle.scrub {single|<span class="episode" >|<span >|</span>|</span>}
subdetail_description.scrub {single|<h3>||</h3>|</h3>}
temp_5.scrub {regex||<span class="episode" >(.*?)<span >||}
subdetail_episode.modify {addstart('episode' "")|'temp_5'}
subdetail_starrating.scrub {single|Rating:</span>||</span>|</span>}
subdetail_showicon.scrub {single|<img src='||'|'}
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### 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|<ul data-filter="true" data-role="listview">|<li>|</li>|</ul>}
*index_site_id.scrub {multi|<ul data-filter="true" data-role="listview">|href="|"|</ul>}
*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 - ZIP CODE (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:([^,]*)"}
*index_temp_1.modify {replace| |%20}
*url_index.modify {replace|##ZIPCODE##|'index_temp_1'}
*end_scope
*url_index{url|http://##COUNTRY##.yo.tv/settings/postcodeheadends/##ZIPCODE##}
*index_site_id.scrub {multi|<a data-ajax="false" href="/settings/Headend/||">|">}
*index_site_channel.scrub {multi|<a data-ajax="false" href="/settings/Headend/|">|</a>|</ul>}
*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 - PROVIDER ID(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=""<h2>")|<div id="channelbar" >|<li>|</li>|</ul>}
*index_site_channel.modify {remove |alt=}
*index_site_channel.modify {remove |"}
*index_site_channel.modify {remove |<h2>}
*index_site_channel.modify {remove |</h2>}
*index_site_id.scrub{multi|<div id="content" >|<li id="|"|<div id="tooltip"}
*scope.range {(channellist)|end}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"}
*index_temp_2.modify {substring(type=regex)|'config_site_id' "PROVIDER_ID:([^,]*)"}
*index_site_id.modify {addstart|COUNTRY:'index_temp_1',PROVIDER_ID:'index_temp_2',CHANNEL_ID:}
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
end_scope
** @auto_xml_channelprovider_end
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
**
** @auto_xml_channel_start
*scope.range {(urlindex)|end}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"}
*url_index.modify {replace|##COUNTRY##|'index_temp_1'}
*end_scope
*url_index{url|http://##COUNTRY##.yo.tv/settings/headend/}
*index_site_channel.scrub {multi(separator=" " include="alt=""<h2>")|<div id="channelbar" >|<li>|</li>|</ul>}
*index_site_channel.modify {remove|alt=}
*index_site_channel.modify {remove|"}
*index_site_channel.modify {remove|<h2>}
*index_site_channel.modify {remove|</h2>}
*index_site_id.scrub{multi|<div id="content" >|<li id="|"}
*scope.range {(channellist)|end}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"}
*index_site_id.modify {addstart|COUNTRY:'index_temp_1',CHANNEL_ID:}
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
*end_scope
** @auto_xml_channel_end
*------------------------------------------------------------------------------------------------------------------
*
* use these sections in rare cases when no zip/postal code can be used,example country:uk
* it gives a region name,then provider for that region,then the channel list is displayed.
*
*------------------------------------------------------------------------------------------------------------------
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### PROVIDER FILE CREATION - REGION NAME (only to create the xxx_provider.xml file)
**
*
* use when site give's no option to enter zip code(only city) - example uk
* <channel update="i" site="yo.tv" site_id="COUNTRY:uk,ZIPCODE:" xmltv_id="United Kingdom">United Kingdom</channel>
*
** @auto_xml_provider_start
*scope.range {(urlindex)|end}
*index_variable_element.modify {substring(type=regex)|'config_site_id' "COUNTRY:([^,]*)"}
*url_index.modify {replace|##COUNTRY##|'index_variable_element'}
*end_scope
*url_index{url|http://##COUNTRY##.yo.tv/Settings/systems}
*index_site_id.scrub {regex||<li><a data-ajax="false" href="/settings/Headend(?:City)?/-*(\d+)">||}
*index_site_id.modify {addstart|'index_variable_element'##}
*index_site_channel.scrub {regex||<li><a data-ajax="false" href="/settings/Headend(?:City)/-*\d+">([^<]*)</a>||}
** @auto_xml_provider_end
* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### PROVIDER FILE CREATION - CITY NAME (only to create the xxx_provider.xml file)
**
*
* use with PROVIDER FILE CREATION - REGION NAME Thats created in above step. example uk created above
* <channel update="i" site="yo.tv" site_id="uk##193244663" xmltv_id="East-ITV Anglia">East-ITV Anglia</channel>
*
** @auto_xml_provider_start
*scope.range {(urlindex)|end}
*index_variable_element.modify {substring(type=regex)|'config_site_id' "^(.*)##"}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "##(.*)$"}
*url_index.modify {replace|#_#COUNTRY#_#|'index_variable_element'}
*url_index.modify {replace|##REGION##|'index_temp_1'}
*end_scope
*url_index{url|http://#_#COUNTRY#_#.yo.tv/settings/HeadendCity/##REGION##}
*index_site_id.scrub {regex||<li><a data-ajax="false" href="/settings/Headend/(\d+)">||}
*index_site_id.modify {addstart|'index_variable_element'##}
*index_site_channel.scrub {regex||<li><a data-ajax="false" href="/settings/Headend/\d+">([^<]*)</a>||}
** @auto_xml_provider_end
* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### CHANNELS XML CREATION - CITY NAME (only to create the xxx_provider.xml file)
** <channel update="i" site="yo.tv" site_id="COUNTRY:us,ZIPCODE:" xmltv_id="United States">United States</channel>
*
* use with CITY NAME CREATED ABOVE - example uk East=ITV Angila provider SKY
* <channel update="i" site="yo.tv" site_id="uk##31" xmltv_id="Sky">Sky</channel>
*
*scope.range {(urlindex)|end}
*index_variable_element.modify {substring(type=regex)|'config_site_id' "^(.*)##"}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "##(.*)$"}
*url_index.modify {replace|#_#COUNTRY#_#|'index_variable_element'}
*url_index.modify {replace|##CITY##|'index_temp_1'}
*end_scope
*url_index{url|http://#_#COUNTRY#_#.yo.tv/settings/Headend/##CITY##}
*index_variable_element.modify {set|COUNTRY:'index_variable_element',
*index_site_id.scrub {multi|<div id="content" >|<li id="|">|</div>}
*index_site_channel.scrub {multi|<div id="channelbar" >|alt="|"|</div>}
*scope.range {(channellist)|end}
*index_temp_1.modify {substring(type=regex)|'config_site_id' "^(.*)##"}
*index_site_id.modify {addstart|COUNTRY:'index_temp_1',CHANNEL_ID:}
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
*end_scope
** @auto_xml_provider_end