**------------------------------------------------------------------------------------------------ * @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|["||"]} *index_showsplit.modify {(debug)} for debug index_start.scrub {single |data-time=|'|'|data-flags} index_title.scrub {single (separator=": " include=first)||} index_title.modify {remove(type=regex)|^[^>]*>} index_title.modify {cleanup (tags="")} index_title.modify {cleanup (tags="<"">")} index_subtitle.scrub {single (separator=": " exclude=first)||} index_subtitle.modify {remove(type=regex)|^[^>]*>} 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}\)$)} * 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" >|||} title.modify {remove (type=regex)|(.\(\d{4}\)$)} *title.modify {addstart("")|'index_title'} subtitle.scrub {single (separator=": " exclude=first)|||

} subtitle.modify {remove (type=regex)|(\s\(\d{4}\))} subtitle.modify {remove | Season\s([1-9]+)||} temp_1.modify {addstart(not "")|S} temp_2.scrub {regex||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||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">|| |

} 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: |||||

} *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_4.scrub {multi |Crew|
  • |
  • |} *debug for more credits temp_4.modify {replace |
    |[} 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||||||} subdetail_description.scrub {single|

    ||

    |} temp_5.scrub {regex||(.*?)||} subdetail_episode.modify {addstart('episode' "")|'temp_5'} subdetail_starrating.scrub {single|Rating:|||} subdetail_showicon.scrub {single||
  • |
  • |} *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 - 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||">} index_site_channel.scrub {multi|||} 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=""

    ")|
    |
  • |
  • |} *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|
    |
  • United Kingdom * ** @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||
  • ||} *index_site_id.modify {addstart|'index_variable_element'##} *index_site_channel.scrub {regex||
  • ([^<]*)||} ** @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 * East-ITV Anglia * ** @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||
  • ||} *index_site_id.modify {addstart|'index_variable_element'##} *index_site_channel.scrub {regex||
  • ([^<]*)||} ** @auto_xml_provider_end * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ** ##### CHANNELS XML CREATION - CITY NAME (only to create the xxx_provider.xml file) ** United States * * use with CITY NAME CREATED ABOVE - example uk East=ITV Angila provider SKY * Sky * *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|
    |
  • |
  • } *index_site_channel.scrub {multi|
    |alt="|"|
    } *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