**------------------------------------------------------------------------------------------------ * @header_start * WebGrab+Plus ini for grabbing EPG data from TvGuide websites * @Site: tvgids.nl * @MinSWversion: V2.0.0 * none * @Revision 16 - [07/06/2017] Jan van Straaten * added episode and subtitle * @Revision 15 - [29/06/2016] Blackbear199 * fix wrong description when artikel_id present on index page * @Revision 14 - [21/06/2016] Blackbear199 * adapted for site changes * @Revision 13 - [31/07/2015] Jan van Straaten * adapted for site changes * @Revision 12 - [19/03/2015] Francis De Paemeleere * added showicon + enabled details again (was disabled? before) * add .channels.xml generation * @Revision 11 - [21/04/2014] Jan van Straaten * removes duplicates in index * @Revision 10 - [09/03/2014] Jan van Straaten * changed subtitle due to site changes * @Revision 9 - [28/03/2013] Jan van Straaten * adapted for a small site change that effected most detail elements * @Revision 8 - [22/01/2013] Jan van Straaten * changes in description and subtitle * @Revision 7 - [12/03/2012] Jan van Straaten * added writer , improved subtitle , added video quality * @Revision 6 - [] * Adapted for renewed site, new index_ section * @Revision 5 - [] * Small corection in director, catch Film op 2 as film serie * @Revision 4 - [] * Adapted for V.1.0.5 * @Revision 3 - [] * Adapted for site changes * @Revision 2 - [] * improved index_date.scrub, missing be * @Revision 1 - [] * Added index_site_channel and index_site_id * @Remarks: * none * @header_end **------------------------------------------------------------------------------------------------ site {url=tvgids.nl|timezone=Europe/Amsterdam|maxdays=4|cultureinfo=nl-NL|charset=ISO-8859-1|titlematchfactor=90|ratingsystem=KIJKWIJZER|episodesystem=onscreen} site {loadcookie=tvgids.nl.cookies.txt} url_index{url|http://www.tvgids.nl/json/lists/programs.php?channels=|channel|&day=|urldate} url_index.headers {customheader=Accept-Encoding=gzip,deflate} urldate.format {daycounter|0} * scope.range {(splitindex)|end} index_showsplit.scrub {multi|{"db_|||} index_temp_1.modify {substring(type=regex)|'index_showsplit' "id\":\"(\d{8})"} * extracts the showd index_temp_1.modify {cleanup(removeduplicates span=2 link="index_showsplit")} * removes adjacent duplicates end_scope * scope.range {(indexshowdetails)|end} index_start.scrub {single|datum_start":"||"|"} index_stop.scrub {single|datum_end":"||"|"} index_title.scrub {single(separator=": " include=first)|"titel":"||"|"} index_subtitle.scrub {single(separator=": " exclude=first)|"titel":"||"|"} index_category.scrub {single(separator="\/")|"genre":"||"|soort} index_category.scrub {single(separator="\/")|"soort":"||"|kijkwijzer} index_title.modify {cleanup} index_subtitle.modify {cleanup} * *some shows have a article id,if present we need to use it * index_temp_1.scrub {single|id":"||"|"} *use if no article id index_temp_1.modify {addstart(not "")|programma/} *programm/id#('index_temp_1') * index_temp_2.scrub {single|"artikel_id":"||"|"} *use if present index_temp_2.modify {addstart(not "")|artikel/} *artikel/id#('index_temp_2') * index_urlshow.modify {addstart|http://www.tvgids.nl/##url##/} index_urlshow.modify {replace('index_temp_2' not "")|##url##|'index_temp_2'} index_urlshow.modify {replace('index_temp_2' "")|##url##|'index_temp_1'} index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * end_scope * scope.range {(showdetails)|end} *temp_9.scrub {single()||||} title.scrub {single(separator=": " include=first)|
|

|

|
} description.scrub {single|} director.scrub {single(separator=", ")|
  • Regisseur:|programma_detail_info">||
  • } actor.scrub {single(separator=", ")|
  • Acteurs:|programma_detail_info">||
  • } writer.scrub {single(separator=", ")|
  • Scenario schrijver:|programma_detail_info">||
  • } composer.scrub {single(separator=", ")|
  • Componist:|programma_detail_info">||
  • } rating.scrub {multi()|Kijkwijzer: |alt="|" />|} * presenter.scrub {single(separator=", ")|>In het kort|Presentatie:||} writer.scrub {single(separator=", ")|>In het kort|Scenario schrijver:||} rating.scrub {multi(exclude="style=")|Uitzendtijd:|" alt="|" />|
    In het kort|Jaar van premiere:||} temp_2.scrub {single|>In het kort|Bijzonderheden:||} showicon.scrub {single|
    ||
    |
    } * episode and subtitle temp_4.scrub {regex()||Aflevering:\s(.+?)||} * episode * subtitle *temp_1.modify {set|4 de wilden} episode.modify {substring(type=regex)|'temp_4' "(\d{1,3}(?:\W\d{1,3}){0,1})"} episode.modify {set(not "")| E'episode'} subtitle.modify {remove(type=regex)|'temp_4' "(\d{1,3}(?:\W\d{1,3}){0,1})"} temp_3.scrub {regex()||Seizoen:\s(\d{1,2}(?:\W\d{1,2}){0,1})||} * season temp_3.modify {set(not "")|S'temp_3'} episode.modify {set|'temp_3''episode'} episode.modify {cleanup} * title.modify {cleanup(tags="""")} title.modify {cleanup} title.modify {set(not 'index_title')|'index_title'} description.modify {replace||: } description.modify {cleanup} videoaspect.modify {addstart('temp_2' ~ "breedbeeld")|16:9} videoquality.modify {addstart('temp_2' ~ "HD")|HD} subtitles.modify {replace(~ "teletekst")|'subtitles'|true} showicon.modify {substring(type=regex)|]*src="([^"]*)"} * * convert to short ratings : rating.modify {replace(null)|Voor alle leeftijden|Alle} rating.modify {replace(null)|Afgeraden voor kinderen jonger dan 6 jaar|6+} rating.modify {replace(null)|Afgeraden voor kinderen jonger dan 9 jaar|9+} rating.modify {replace(null)|Afgeraden voor kinderen jonger dan 12 jaar|12+} rating.modify {replace(null)|Niet voor personen tot 16 jaar|16+} rating.modify {replace(null)|Grof taalgebruik|Grof} rating.modify {replace(null)|drugs- en/of alcoholmisbruik|Drugs} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/alle_transp.png|alle.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/6_transp.png|6.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/9_transp.png|9.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/12_transp.png|12.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/16_transp.png|16.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/geweld_transp.png|geweld.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/grof_transp.png|grof.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/angst_transp.png|angst.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/discriminatie_transp.png|discriminatie.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/drugs_transp.png|drugs.png} ratingicon.modify {replace(null)|http://tvgidsassets.nl/img/kijkwijzer/seks_transp.png|seks.png} end_scope ** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file) ** ** @auto_xml_channel_start url_index{url|http://www.tvgids.nl/json/lists/channels.php} {"id":"4","name":"RTL 4","name_short":"RTL 4"} index_site_channel.scrub {regex||"name":"(.+?)"||} index_site_id.scrub {regex||{"id":"(\d{1,3})"||} *index_site_channel.scrub {regex||{[^}]*"id":\s*"[^"\\]*(?:\\.[^"\\]*)*","name":\s*"([^"\\]*(?:\\.[^"\\]*)*)"[^}]*}||} *index_site_id.scrub {regex||{[^}]*"id":\s*"([^"\\]*(?:\\.[^"\\]*)*)","name":\s*"[^"\\]*(?:\\.[^"\\]*)*"[^}]*}||} scope.range {(channellist)|end} index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")} end_scope ** @auto_xml_channel_end