171 lines
8.8 KiB
INI
Executable File
171 lines
8.8 KiB
INI
Executable File
**------------------------------------------------------------------------------------------------
|
|
* @header_start
|
|
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
|
|
* @Site: tvguide.co.uk
|
|
* @MinSWversion: V1.57
|
|
* none
|
|
* @Revision 17 - [23/03/2017] CyberJacob
|
|
* Added stop time, premiere, rating, previously shown, and audio description
|
|
* @Revision 16 - [18/03/2017] Netuddki
|
|
* Added option for xmltv-ns OR onscreen Episode System
|
|
* @Revision 15 - [16/11/2016] Blackbear199
|
|
* showsplit fix
|
|
* added channel logo,show image
|
|
* @Revision 14 - [28/07/2016] Blackbear199
|
|
* rewrite details page scrubs(url change).
|
|
* @Revision 13 - [05/02/2015] Francis De Paemeleere
|
|
* change to xmltv_ns episode system
|
|
* @Revision 12 - [02/12/2014] Francis De Paemeleere
|
|
* remove user specific modifications
|
|
* removed duplicate shows issue
|
|
* add showicon
|
|
* @Revision 11 - [30/11/2014] Ruby
|
|
* Description scrub modification + new Detailpage layout: index_urlshow modification + remake details scrub
|
|
* @Revision 10 - [08/09/2014] Jan van Straaten
|
|
* complete remake: Single channel index page now available, loadcookie not required anymore
|
|
* @Revision 9 - [04/04/2014] Willy De Wilde
|
|
* additional separator in start
|
|
* @Revision 8 - [20/03/2014] Willy De Wilde
|
|
* Website change
|
|
* @Revision 7 - [24/02/2014] Willy De Wilde
|
|
* Use of main page - channel pages do not grab anymore
|
|
* @Revision 6 - [16/12/2013] Francis De Paemeleere
|
|
* adapted to site changes in the indexdetail pages
|
|
* @Revision 5 - [17/11/2013] Jan van Straaten
|
|
* adapted to site changes in the showdetail pages
|
|
* @Revision 4 - [15/01/2013] Francis De Paemeleere
|
|
* added new auto_xml_channel
|
|
* @Revision 3 - [30/11/2011] Jan van Straaten
|
|
* make producer multi value
|
|
* @Revision 2 - []
|
|
* correction in description, adapted for 1.0.7
|
|
* @Revision 1 - []
|
|
* added producer, writer, episode , improved description, adapted for 1.0.5
|
|
* @Remarks:
|
|
* none
|
|
* @header_end
|
|
**------------------------------------------------------------------------------------------------
|
|
|
|
site {url=tvguide.co.uk|timezone=Europe/London|maxdays=7|cultureinfo=en-US|charset=UTF-8|titlematchfactor=90|allowlastpageoverflow}
|
|
*site {retry=<retry channel-delay="0" index-delay="0" show-delay="1" time-out="20">4</retry>} *Only if you get too many timeouts
|
|
*
|
|
*site {ratingsystem=GB|episodesystem=onscreen|} *Enable for Onscreen Episode System
|
|
site {ratingsystem=GB|episodesystem=xmltv_ns|} *Enable for xmltv_ns Episode System
|
|
*
|
|
*
|
|
url_index{url|http://my.tvguide.co.uk/channellisting.asp?ch=|channel|&cTime=|urldate|%206:00:00%20AM}
|
|
url_index.headers {customheader=Accept-Encoding=gzip,deflate}
|
|
urldate.format {datestring|MM/dd/yyyy}
|
|
|
|
index_showsplit.scrub {multi|<td height="133" align="left" valign="top" width="523">||</td></tr>|</td></tr>}
|
|
scope.range {(splitindex)|end}
|
|
index_showsplit.modify {cleanup(removeduplicates=equal span=1)}
|
|
end_scope
|
|
|
|
index_variable_element.modify {set|'config_site_id'}
|
|
index_urlchannellogo.modify {addstart|http://my.tvguide.co.uk/channel_logos/'index_variable_element'.png}
|
|
|
|
scope.range{(indexshowdetails)|end}
|
|
*
|
|
index_start.scrub {single(pattern="h:mm tt")|<span class="season">||</span>|</span>}
|
|
index_start.modify {replace|am| am}
|
|
index_start.modify {replace|pm| pm}
|
|
*
|
|
detail_stop.scrub {regex(pattern="h:mm tt")||(?:<\/div>\n.*<br>\n.*\d?\d:\d\d\w\w-)(\d?\d:\d\d\w\w)}
|
|
detail_stop.modify {replace|am| am}
|
|
detail_stop.modify {replace|pm| pm}
|
|
*
|
|
index_title.scrub {single|<span class="programmeheading" >||</span>|</span>}
|
|
index_title.modify {remove(type=regex)|\s\(\d{4}\)}
|
|
index_title.modify {cleanup}
|
|
***Productiondate:
|
|
index_productiondate.scrub {single|<span class="programmeheading" >|(|)|</span><br>} * in title
|
|
***Category:
|
|
index_category.scrub {single(separator="/")|Category </span>|<span class="programmetext">|</span>|</a><br>}
|
|
index_category.modify {remove|Factual Topics}
|
|
index_category.modify {remove|Folkloric}
|
|
index_category.modify {remove|Environment}
|
|
index_category.modify {remove|reserved}
|
|
*
|
|
***Episode:
|
|
index_temp_1.scrub {regex||<b><span class="season">(.*?)</span></b>||}
|
|
index_temp_1.modify {cleanup (tags="<"">")}
|
|
index_episode.modify {set(pattern="Season 'S1' Episode 'E1' of 'Et1'""Season 'S1'")|'index_temp_1'}
|
|
*
|
|
***Subtitle:
|
|
index_subtitle.scrub {single|<span class="tvchannel">||</span>|</span>}
|
|
index_subtitle.modify {remove|Category}
|
|
index_subtitle.modify {remove(type=regex)|\.$}
|
|
***Description:
|
|
index_description.scrub {regex||<span class=\"programmetext\">(.*?)</span></a><br>||}
|
|
index_description.modify {substring(type=element)|0 1}
|
|
index_description.modify {addend(not"")|.}
|
|
***Starrtaing:
|
|
index_starrating.scrub {single|Rating<br>|">|</span>|}
|
|
index_starrating.modify {addend(not"")|/10}
|
|
***Subtitles:
|
|
index_subtitles.scrub {regex||<span class='tvchannel'>\(Subtitles\)</span>||}
|
|
index_subtitles.modify {substring(type=element)|0 1} * more than one, keep only one
|
|
index_subtitles.modify {replace(not "")|'index_subtitles'|true}
|
|
***Premiere
|
|
index_premiere.scrub {regex||<span class='tvchannel'>\(Premiere\)</span>||}
|
|
index_premiere.modify {substring(type=element)|0 1} * more than one, keep only one
|
|
index_premiere.modify {replace(not "")|'index_premiere'|true}
|
|
***Showicon:
|
|
index_showicon.scrub {regex||<table [^>]*background-image[^>]*url\(([^)]*[^\/])\)||}
|
|
***Rating:
|
|
detail_rating.scrub {single|<span class="LHS-attribute">Certificate : ||</span>|}
|
|
***Previously Shown:
|
|
index_previousshown.scrub {regex||<span class='tvchannel'>\(Repeat\)</span>||}
|
|
index_previousshown.modify {substring(type=element)|0 1} * more than one, keep only one
|
|
index_previousshown.modify {replace(not "")|'index_previousshown'|true}
|
|
***Audio Description:
|
|
audiodescription.scrub {regex||<span class='tvchannel'>\(Audio Described\)</span>||}
|
|
audiodescription.modify {substring(type=element)|0 1} * more than one, keep only one
|
|
audiodescription.modify {replace(not "")|'audiodescription'|true}
|
|
*
|
|
index_urlshow {url||<a href="||"|"}
|
|
index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate}
|
|
end_scope
|
|
*
|
|
scope.range{(showdetails)|end}
|
|
title.scrub {single|<h1>||</h1>|</h1>}
|
|
title.modify {cleanup(tags="<"">")}
|
|
title.modify {remove(type=regex)|\s\(\d{4}\)}
|
|
title.modify {remove(type=string)|Premiere. }
|
|
title.modify {cleanup}
|
|
*
|
|
director.scrub {multi(separator=", ")|Director: </span>|<span class="actor">|<br>|</span>}
|
|
producer.scrub {multi(separator=", ")|Producer: </span>|<span class="actor">|<br>|</span>}
|
|
writer.scrub {multi(separator=", ")|Writer: </span>|<span class="actor">|<br>|</span>}
|
|
*
|
|
presenter.scrub {multi(includeblock="Presenter")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>} ***Presenter used for Co-Host**
|
|
presenter.scrub {multi(includeblock="Co-host")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
*
|
|
commentator.scrub {multi(includeblock="Contributor")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>} ****Commentator used for Guest, Contributor, Contestant, Panellist, Performer***
|
|
commentator.scrub {multi(includeblock="Guest")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
commentator.scrub {multi(includeblock="Contestant")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
commentator.scrub {multi(includeblock="Panellist")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
commentator.scrub {multi(includeblock="Performer")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
*
|
|
composer.scrub {multi(includeblock="Narrator")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>} ***Composer used for Reporter, Narrator, Anchor***
|
|
composer.scrub {multi(includeblock="Reporter")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
composer.scrub {multi(includeblock="Anchor")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
*
|
|
actor.scrub {multi(excludeblock="Narrator""Presenter""Contributor""Guest""Contestant""Panellist""Performer""Reporter""Anchor""Co-host")|<div class="cast-entry">|<span class="actor" itemprop="name">|</span>|</div>}
|
|
*
|
|
showicon.scrub {single|<div id="headerImage"|transparent;background-image:url(|)|</div>}
|
|
***Description: duplicate of index page
|
|
*description.scrub {single| <span class="programmetext">||</span>|</span>}
|
|
*description.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.tvguide.co.uk/}
|
|
*index_site_channel.scrub {multi(exclude="?TV")|<select name="channelid">|>|</option|</select}
|
|
*index_site_id.scrub {multi(exclude="953")|<select name="channelid">|<option value=|>|</select}
|
|
** @auto_xml_channel_end
|