102 lines
4.0 KiB
INI
Executable File
102 lines
4.0 KiB
INI
Executable File
**------------------------------------------------------------------------------------------------
|
|
* @header_start
|
|
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
|
|
* @Site: www.myblobbox.com
|
|
* @MinSWversion: V1.1.1/53.7
|
|
* none
|
|
* @Revision 0 - [01/02/2014] Steve Wildmore
|
|
* none
|
|
* @Remarks:
|
|
* none
|
|
* @header_end
|
|
**------------------------------------------------------------------------------------------------
|
|
|
|
site {url=www.myblobbox.com|timezone=UTC+01:00|maxdays=9|cultureinfo=it-IT|charset=UTF-8|titlematchfactor=90|episodesystem=onscreen}
|
|
|
|
urldate.format {list|-1|0|1|2|3|4|5|6|7}
|
|
url_index{url|http://www.myblobbox.com/it/epg/api/channel/|channel|/offset/|urldate|/}
|
|
url_index.modify {replace|offset/-1|yesterday}
|
|
|
|
index_variable_element.modify {clear}
|
|
index_variable_element.modify {addstart("")|'config_site_id'}
|
|
|
|
* http://www.myblobbox.com/it/epg/#channel/1/offset/-1/tutto/
|
|
* http://www.myblobbox.com/it/epg/api/channel/1/offset/1/ (offset 0 to 7)
|
|
* http://www.myblobbox.com/it/epg/api/channel/1/yesterday/ (offset -1)
|
|
|
|
* Grouping format:
|
|
* d = day
|
|
* 1. ma = mattina (morning)
|
|
* 4. no = notte (night)
|
|
* 2. po = pomeriggio (afternoon)
|
|
* 3. se = sera (evening)
|
|
|
|
* json file format:
|
|
* p = past
|
|
* c = channel
|
|
* t = title <-- use
|
|
* ty = type (category) <-- use
|
|
* i = info (details) <-- use
|
|
* h = hour (time) <-- use
|
|
* ty_id = type id
|
|
* ci = ???
|
|
* o = online now
|
|
|
|
index_date.scrub {single(force)|"d": |"|"|, "no"}
|
|
|
|
scope.range {(splitindex)|end}
|
|
|
|
* 4 sections in this order: "ma", "no", "po", "se"
|
|
* to be reordered as: "ma", "po", "se", "no"
|
|
*
|
|
index_showsplit.scrub {multi|"ma": |[|]|}
|
|
index_temp_1.modify {calculate(type=element format=F0)|'index_showsplit' #} * number of elements (+1)
|
|
index_temp_1.modify {calculate(format=F0)|'index_temp_1' 4 -} * index of last "no" element
|
|
|
|
loop {('index_temp_1' > "0" max=36)|end}
|
|
index_temp_2.modify {substring(type=element)|'index_showsplit' 'index_temp_1' 1} * "no" element
|
|
index_temp_4.modify {calculate(format=F0)|'index_temp_1' 2 +} * pointer to "se" element
|
|
index_temp_3.modify {substring(type=element)|'index_showsplit' 'index_temp_4' 1} * "se" element
|
|
index_showsplit.modify {replace|'index_temp_3'|'index_temp_3'###} * mark end of "se" element
|
|
index_showsplit.modify {remove|'index_temp_2'} * remove element "no" from its position
|
|
index_showsplit.modify {replace|###|\|'index_temp_2'} * add element "no" at end of element "se"
|
|
|
|
index_temp_2.modify {clear}
|
|
index_temp_3.modify {clear}
|
|
index_temp_1.modify {calculate(format=F0)|4 -} * decrease index to next "no"
|
|
end_loop
|
|
|
|
index_showsplit.modify {replace|\}, \{|\|}
|
|
index_showsplit.modify {replace|\{|}
|
|
index_showsplit.modify {replace|\}|}
|
|
end_scope
|
|
|
|
index_start.scrub {regex||"h"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||}
|
|
index_title.scrub {regex||"t"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||}
|
|
index_category.scrub {regex||"ty"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"||}
|
|
|
|
* http://www.myblobbox.com/it/epg/channel/1/show/3926080/
|
|
index_temp_2.scrub {regex||"i"\s*:\s*((?:[^\s,])*)\s*,||} * show number
|
|
|
|
index_urlshow.modify {clear}
|
|
index_urlshow.modify {addstart('index_temp_2' not "")|http://www.myblobbox.com/it/epg/channel/}
|
|
index_urlshow.modify {addend('index_temp_2' not "")|'index_variable_element'/show/'index_temp_2'/}
|
|
|
|
title.scrub {single|og:title|content='| />| />}
|
|
title.modify {cleanup}
|
|
|
|
description.scrub {regex||<meta name="description"\s*value=\s*'([^'\\]*(?:\\.[^'\\]*)*)'||}
|
|
description.modify {replace|\\'|\'}
|
|
|
|
|
|
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
|
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
|
|
**
|
|
** @auto_xml_channel_start
|
|
*url_index{url|http://www.myblobbox.com/it/epg}
|
|
*index_site_id.scrub {multi|<div id=channels|channelid="|">|<div id=downscroller>}
|
|
*index_site_channel.scrub {multi|<div id=channels|return false;">|</a>|<div id=downscroller>}
|
|
*scope.range {(channellist)|end}
|
|
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
|
|
*end_scope
|
|
** @auto_xml_channel_end |