Files
epg/siteini.pack/Canada/tvtv.ca.ini
freearhey a597b11307 Init
2021-03-09 22:46:37 +03:00

103 lines
5.3 KiB
INI
Executable File

**------------------------------------------------------------------------------------------------
* @header_start
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
* @Site: tvtv.ca
* @MinSWversion: V2.1
* @Revision 3 - [22/04/2020] WGT*add element (see note below!!)
* @Revision 2 - [18/01/2020] WGT* ATTENTION !! need in folder \WebGrab+Plus\robots\tvtv.ca.robots to be read-only and with only 2 lines:
* User-agent: *
* User-agent: WebGrab+Plus
* @Revision 1 - [07/09/2018] r00ty
* Initial work on tvtv.us (and tvtv.ca separately)
* @Remarks:
* mostly json and on single page
* @header_end
**------------------------------------------------------------------------------------------------
site {url=tvtv.ca|timezone=UTC|maxdays=7|cultureinfo=en-US|charset=UTF-8|episodesystem=onscreen|ratingsystem=CA}
*
scope.range{(urlindex)|end}
global_temp_1.modify{substring(type=regex)|'config_site_id' "\/(.*?)$"}
global_temp_2.modify{substring(type=regex)|'config_site_id' "^(.*?)\/"}
url_index.modify{replace|##prov##|'global_temp_2'}
url_index.modify{replace|##chan##|'global_temp_1'}
end_scope
url_index {url|https://tvtv.ca/tvm/t/tv/v4/lineups/##prov##/listings/grid?detail=%27brief%27&start=|urldate|T00:00:00.000Z&end=|urldate|T23:59:00.000Z&startchan=##chan##&endchan=##chan##}
**
url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages
urldate.format {datestring|yyyy-MM-dd}
**
url_index.headers {accept=application/json, text/javascript, */*}
**
index_showsplit.scrub {regex||"listings"\:\[\s*(\{.*?"showHost".*?\},?\s*)+.*?||}
index_showsplit.modify {cleanup(style=jsondecode)}
**
index_variable_element.modify {set|'config_site_id'}
global_temp_3.scrub {regex||\{\s*"channel":\{.*?"logoFilename":"(.*?)"\,?.*?"listings".*]||}
index_urlchannellogo.modify {addstart|https://tvtv.ca/tvm/i/image/station/100x100/'global_temp_3'}
**
scope.range{(indexshowdetails)|end}
index_start.scrub {single|"listDateTime"|:"|",|",}
index_description.scrub {single|"description"|:"|",|",}
index_title.scrub {single|"showName"|:"|",|",}
index_subtitle.scrub {single|"episodeTitle"|:"|",|",}
index_category.scrub {single|"showType"|:"|",|",,}
index_rating.scrub {single|"rating"|:"|",|",}
index_title.modify {replace("Movie")|'index_title'|'index_subtitle'}
index_subtitle.modify {remove('index_title')|'index_subtitle'}
index_director.scrub{single(separator=",")|"director":"||",|",}
index_actor.scrub {single(separator=",")|"cast":"||",|",}
index_productiondate.scrub{single|"year":"||",|",}
index_showicon.scrub {url|https://cdn.tvpassport.com/image/show/480x720/|"poster":"||",|",}
**
** Some special handling for sports
index_temp_3.scrub {single|"team1"|:"|",|",}
index_temp_4.scrub {single|"team2"|:"|",|",}
index_temp_5.scrub {single|"location"|:"|",|",}
index_temp_6.scrub {single|"league"|:"|",|",}
** Show ID only for secondary lookup per show
index_temp_7.scrub {single|"showID"|:|,}
index_temp_8.modify {addstart('index_temp_3' not "")|'index_temp_3'}
index_temp_8.modify {addend('index_temp_8' not "")| vs. 'index_temp_4'.}
index_description.modify {addstart('index_temp_6' not "")|'index_temp_6' }
index_description.modify {addend('index_temp_8' not "")| 'index_temp_8'}
index_description.modify {addend('index_temp_5' not "")| 'index_temp_5'}
index_subtitle.modify {addstart('index_subtitle' "")|'index_temp_8'}
**
** Split multiple categories
index_category.modify {replace|,|\|}
end_scope
**
** If you would like episode numbers, then uncomment the following lines. It will mean an extra web action per show (much slower)
*index_urlshow.modify {addstart|https://tvtv.ca/tvm/t/tv/v4/episodes/'index_temp_7'}
*scope.range{(showdetails)|end}
*title.scrub{single|"seriesName"|:"|",|",}
*temp_1.scrub {single|"seasonNumber"|:|,}
*temp_2.scrub {single('temp_1' not "")|"seasonSeqNo"|:|,}
*temp_1.modify {replace|0|}
*temp_2.modify {replace|0|}
*episode.modify {addstart('temp_2' not "")|S'temp_1'E'temp_2'}
*end_scope
** End of episode number section
**
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
**
** Note, the 36625D is the line-up for Toronto Bell Fibre. You can get your own lineup by visiting http://tvtv.ca enter your location.
** It should then load a URL like: https://tvtv.ca/on/toronto/lu36625D for which you just take everything after "lu" as your lineup ID
** Then you can add a line like the following (replacing the site_id value with your own linup:
** <channel update="i" site="tvtv.ca" site_id="36625D" xmltv_id="tvtv Toronto">tvtv Toronto</channel>
** It will then generate a channel file for your line-up
**
** @auto_xml_channel_start
*url_index{url|https://tvtv.ca/tvm/t/tv/v4/lineups/|channel|}
*index_temp_9.scrub{regex||"lineupID":"(.*?)","||}
*index_site_channel.scrub {regex||"name":"(.*?)","callsign":"||}
*index_site_id.scrub {regex||{"number":"(.*?)","channelNumber"||}
*index_site_channel.modify {replace|\'|}
*index_site_channel.modify {cleanup(style=jsondecode)}
*index_site_id.modify {addstart|'index_temp_9'/}
*scope.range {(channellist)|end}
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
*end_scope
** @auto_xml_channel_end