**------------------------------------------------------------------------------------------------ * @header_start * WebGrab+Plus ini for grabbing EPG data from TvGuide websites * @Site: siliconhill.com.au * @MinSWversion: V1.1.1/26 * none * @Revision 0 - [08/10/2012] Jan van Straaten * none * @Remarks: * Sydney area * uses a GZIP compressed xmltv feed * MediaPortal version, 'all' elements combined in description, episode converted to 'onscreen' * @header_end **------------------------------------------------------------------------------------------------ site {url=siliconhill.com.au|timezone=UTC+10:00|maxdays=7.1|cultureinfo=en-AU|charset=ISO-8859-1|titlematchfactor=90|keepindexpage} site {compression=gzip|ratingsystem=ABA|episodesystem=onscreen|subtitlestype=teletext} url_index{url|http://www.siliconhill.com.au/shepherd/Sydney/fta/output.xmltv.gz} *http://www.siliconhill.com.au/shepherd/Sydney/fta/output.xmltv.gz urldate.format {daycounter|0} index_variable_element.modify {addstart|'config_site_id'} index_showsplit.scrub {multi(include='index_variable_element')||} * index_start.scrub {single|start="||"|>} index_stop.scrub {single|stop="||"|>} *start="20120922004200" stop="20120922021200" index_title.scrub {single(separator=": " include=first)|||} index_subtitle.scrub {single|||} index_description.scrub {single|||} index_actor.scrub {multi||||} index_director.scrub {multi||||} index_writer.scrub {multi||||} index_producer.scrub {multi||||} index_presenter.scrub {multi||||} index_productiondate.scrub {single||||} index_category.scrub {multi|||} index_rating.scrub {single|||} index_starrating.scrub {single|||} index_episode.scrub {single|||} index_subtitles.scrub {single|} index_previousshown.scrub {single||/>} index_videoaspect.scrub {single|} index_videoquality.scrub {single|} * *operations scope.range {(indexshowdetails)|end} ** date component: 20121009 index_temp_2.modify {substring(type=char)|'index_start' 0 8} index_temp_3.modify {calculate(format=date,yyyyMMdd)|now} * index_start.modify {substring(type=char)|8 4} index_temp_1.modify {substring(type=char)|'index_start' 0 2} * the hours index_start.modify {substring(type=char)|2 2} * the minutes index_start.modify {addstart()|'index_temp_1':} index_stop.modify {substring(type=char)|8 4} index_temp_1.modify {substring(type=char)|'index_stop' 0 2} * the hours index_stop.modify {substring(type=char)|2 2} * the minutes index_stop.modify {addstart()|'index_temp_1':} * * clear if before date now: index_start.modify {clear('index_temp_2' < 'index_temp_3')} index_stop.modify {clear('index_temp_2' < 'index_temp_3')} * index_description.modify {cleanup} index_subtitles.modify {replace("teletext")|teletext|true} index_previousshown.modify {replace(~ "shown")|'index_previousshown'|true} index_videoquality.modify {replace(~ "yes")|'index_videoquality'|colour} index_episode.modify {remove| } * * MP version optionally combine detail elements with description * convert episode from 2.3.0 to Season 3 Episode 4 Part 1 index_temp_6.modify {addstart('index_episode' not "")|.'index_episode'} * copy of episode, extra . to get the season with the loop index_temp_5.modify {addstart|Part } * first indicator index_episode.modify {clear} loop {(max=2)|end} index_temp_1.modify {calculate('index_temp_6' not "" type=char format=F0)|'index_temp_6' "." -@} * last index-of . index_temp_4.modify {calculate('index_temp_1' not "-1" format=F0)|'index_temp_1' 1 +} * the index-of the value index_temp_2.modify {substring('index_temp_1' not "-1" type=char)|'index_temp_6' 'index_temp_4'} * the 'part' value, xmltv_ns norm index_temp_3.modify {calculate('index_temp_2' not "" format=F0)|'index_temp_2' 1 +} * part value, onscreen norm index_episode.modify {addstart('index_temp_2' not "")|'index_temp_5''index_temp_3' } * build the episode, onscreen norm index_temp_5.modify {replace(~ "Episode")|'index_temp_5'|Season } * change the indicator index_temp_5.modify {replace(~ "Part")|'index_temp_5'|Episode } * change the indicator index_temp_6.modify {substring('index_temp_1' > "-1" type=char)|'index_temp_6' 0 'index_temp_1'} end_loop * index_description.modify {addend('index_episode' not "")|\n'index_episode'} index_episode.modify {clear} index_description.modify {addend('index_category' not "" separator=", ")|\nCategory: 'index_category'.} index_category.modify {clear} index_description.modify {addend('index_director' not "" separator=", ")|\nDirector: 'index_director'.} index_director.modify {clear} index_description.modify {addend('index_actor' not "" separator=", ")|\nActors: 'index_actor'.} index_actor.modify {clear} index_description.modify {addend('index_producer' not "" separator=", ")|\nProducer: 'index_producer'.} index_producer.modify {clear} index_description.modify {addend('index_presenter' not "" separator=", ")|\nPresenter: 'index_presenter'.} index_presenter.modify {clear} index_description.modify {addend('index_productiondate' not "")|\nProductiondate: 'index_productiondate'.} index_productiondate.modify {clear} index_description.modify {addend('index_rating' not "" separator=", ")|\nRating: 'index_rating'.} index_rating.modify {clear} index_description.modify {addend('index_starrating' not "")|\nStarrating: 'index_starrating'.} index_starrating.modify {clear} * clear only? index_videoquality.modify {clear} index_videoaspect.modify {clear} index_previousshown.modify {clear} index_subtitles.modify {clear} end_scope * * the following creates a channel list file when enabled: * *index_site_id.scrub {multi||} *index_site_channel.scrub {multi|||}