**------------------------------------------------------------------------------------------------ * @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=4} *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||||} 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")||||} index_start.modify {replace|am| am} index_start.modify {replace|pm| pm} * detail_stop.scrub {regex(pattern="h:mm tt")||(?:<\/div>\n.*
\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||||} index_title.modify {remove(type=regex)|\s\(\d{4}\)} index_title.modify {cleanup} ***Productiondate: index_productiondate.scrub {single||(|)|
} * in title ***Category: index_category.scrub {single(separator="/")|Category |||
} 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||(.*?)||} 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||||} index_subtitle.modify {remove|Category} index_subtitle.modify {remove(type=regex)|\.$} ***Description: index_description.scrub {regex||(.*?)
||} index_description.modify {substring(type=element)|0 1} index_description.modify {addend(not"")|.} ***Starrtaing: index_starrating.scrub {single|Rating
|">||} index_starrating.modify {addend(not"")|/10} ***Subtitles: index_subtitles.scrub {regex||\(Subtitles\)||} 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||\(Premiere\)||} 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||]*background-image[^>]*url\(([^)]*[^\/])\)||} ***Rating: detail_rating.scrub {single|Certificate : |||} ***Previously Shown: index_previousshown.scrub {regex||\(Repeat\)||} 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||\(Audio Described\)||} audiodescription.modify {substring(type=element)|0 1} * more than one, keep only one audiodescription.modify {replace(not "")|'audiodescription'|true} * index_urlshow {url|||||} 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: ||
|
} producer.scrub {multi(separator=", ")|Producer: ||
|
} writer.scrub {multi(separator=", ")|Writer: ||
|
} * presenter.scrub {multi(includeblock="Presenter")|
|||
} ***Presenter used for Co-Host** presenter.scrub {multi(includeblock="Co-host")|
|||
} * commentator.scrub {multi(includeblock="Contributor")|
|||
} ****Commentator used for Guest, Contributor, Contestant, Panellist, Performer*** commentator.scrub {multi(includeblock="Guest")|
|||
} commentator.scrub {multi(includeblock="Contestant")|
|||
} commentator.scrub {multi(includeblock="Panellist")|
|||
} commentator.scrub {multi(includeblock="Performer")|
|||
} * composer.scrub {multi(includeblock="Narrator")|
|||
} ***Composer used for Reporter, Narrator, Anchor*** composer.scrub {multi(includeblock="Reporter")|
|||
} composer.scrub {multi(includeblock="Anchor")|
|||
} * actor.scrub {multi(excludeblock="Narrator""Presenter""Contributor""Guest""Contestant""Panellist""Performer""Reporter""Anchor""Co-host")|
|||
} * showicon.scrub {single|
} ***Description: duplicate of index page *description.scrub {single| |||} *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")|