Files
epg/siteini.pack/International/shoofeetv.com.ini
freearhey a597b11307 Init
2021-03-09 22:46:37 +03:00

124 lines
6.7 KiB
INI
Executable File

**------------------------------------------------------------------------------------------------
* @header_start
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
* @Site: shoofeetv.com
* @MinSWversion: 1.1.1/55.27
* @Revision 1 - [09/10/2015] Jan van Straaten
* - solves the problem that the index shows are not in the regular ascending time order
* @Revision 0 - [25/05/2015] Francis De Paemeleere
* - creation
* @Remarks:
* @header_end
**------------------------------------------------------------------------------------------------
site {url=shoofeetv.com|timezone=Africa/Algiers|maxdays=2|cultureinfo=en-GB|charset=UTF-8|titlematchfactor=90|nopageoverlaps|keepindexpage|episodesystem=onscreen}
urldate.format {list|today|tomorrow}
subpage.format{list(step=1 count=55)|0}
url_index{url()|http://www.shoofeetv.com/en/guide/getGuide?section=|urldate|&page=|subpage}
url_index.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the index pages
scope.range {(datelogo)|end}
index_variable_element.modify {clear}
index_variable_element.modify {addstart|'config_site_id'}
end_scope
index_urlchannellogo.scrub {regex||^.*?id=\"tvg-channel-'index_variable_element'\".*?<img [^>]*src=\"([^\"]*)\"||}
scope.range {(datelogo)|end}
index_urlchannellogo.modify {addstart(not="")|http://www.shoofeetv.com}
end_scope
* the index file is composed as follows
* each day:
* all channels are present , indicated by data-channel-id="1144" This id is same as config_site_id
* in each channel the prime time shows are listed first (6:30pm - last show before midnight , start has a pm indicator)
* then all the other shows (the first starts just after midnight has am indicator
* a clear difference between the days is the value of data-id , for the second day at least 5000 (?) more than for the first day
* e.g. for channel-id="2" the first days data-id ranges from 1 to 28, the second day from 8443 to 8466
scope.range {(splitindex)|end}
index_showsplit.scrub {regex()||<div [^>]*data-channel-id=\"'index_variable_element'\"[^>]*>.*?</div>||} * all shows for this channel
index_temp_1.modify {set|'index_showsplit'}
index_showsplit.modify {clear}
index_temp_5.modify {set|0}
index_temp_4.modify {set|1} * start value loop condition
loop {('index_temp_4' "1" max=100)|end}
* the next line always uses index 0 (the first, because we remove it further on, so in effect index 0 is always the next in line
index_temp_2.modify {substring(type=element)|'index_temp_1' 0 1} * indexshow
index_temp_3.modify {substring(type=regex)|'index_temp_2' "data-id=\"(\d{1,})\""} * data-id
index_temp_4.modify {calculate(format=F0)|'index_temp_3' 'index_temp_5' -} * difference
index_temp_5.modify {clear}
index_temp_5.modify {set|'index_temp_3'} *saves value of data-id for next loop
index_temp_6.modify {addend('index_temp_4' "1")|****'index_temp_2'} * all indexshows of one day added together
* remove the show from the index, that will leave all shows of the nexr day in the end
index_temp_1.modify {remove(type=element 'index_temp_4' "1")|0 1} * this will contain all next day shows at the end of the loop
end_loop
*index_temp_1.modify {replace(debug)|\||\|\n\n} * test
index_temp_6.modify {replace()|****|\|} *make multi
* sort on starttime of the first day
loop {(each 'index_temp_2' in 'index_temp_6' max=100)|end}
index_temp_3.modify {substring(type=regex)|'index_temp_2' "<em>(\d{2}:\d{2}.+?)\s-"} * start time am pm format
index_temp_3.modify {calculate(format=time,HH:mm)} * time converted into 24h format
* this 'converted' time can be used in sort (am/pm time cannot)
* add the 'converted' starttime to the beginning:
index_temp_4.modify {addend()|****'index_temp_3'##'index_temp_2'}
end_loop
index_temp_4.modify {replace()|****|\|} *make multi needed for sorting
* sort on start time
index_temp_4.modify {sort(ascending,string)} * this now contains all shows of day one in the right order
sort_by.modify {substring(target="index_temp_4" type=regex)|"(\d{2}:\d{2})##"}
*
index_temp_4.modify {replace|\||****} * make single to allow later adding in index_showsplit
* sort on starttime of the second day
* prepar by adding the converted starttime as with the first day
loop {(each 'index_temp_2' in 'index_temp_1' max=100)|end}
index_temp_3.modify {substring(type=regex)|'index_temp_2' "<em>(\d{2}:\d{2}.+?)\s-"} * start time am pm format
index_temp_3.modify {calculate(format=time,HH:mm)} * time converted into 24h format
index_temp_5.modify {addend()|****'index_temp_3'##'index_temp_2'}
end_loop
index_temp_5.modify {replace()|****|\|} *make multi, needed for sorting
* sort on start time
index_temp_5.modify {sort(ascending,string)} * this now contains all shows of day two in the right order
sort_by.modify {substring(target="index_temp_5" type=regex)|"(\d{2}:\d{2})##"}
index_temp_5.modify {replace|\||****} * make single to allow adding
* add the two days together
index_showsplit.modify {addstart()|'index_temp_4''index_temp_5'}
index_showsplit.modify {replace()|****|\|} * make multi
* all done with sorting of the index_shows !!
end_scope
scope.range {(indexshowdetails)|end}
index_start.scrub {single|<em>||-|-}
index_stop.scrub {single|<em>|-|</em>|</em>}
index_title.scrub {single()|<h2>||</h2>|</h2>}
index_urlshow.scrub {regex()||data-id="(\d*)"||}
index_urlshow.modify {addstart(not="")|http://www.shoofeetv.com/en/guide/getProgram?id=}
index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate} * to speedup the downloading of the
end_scope
*detail pages
title.scrub {single|<h3>||</h3>|</h3>}
description.scrub {single|<div class="tvg-details-time">|</div>|</p>|</p>}
showicon.scrub {regex||class=\"tvg-details-thumbnail\".*?src=\"([^\"]*)\"||}
episode.scrub {regex||class=\"tvg-details-epnum\"[^>]*>([^<]*)<||}
description.modify {remove(type=regex)|"<[^>]*>"}
showicon.modify {addstart(not~"http://")|http://www.shoofeetv.com}
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
**
** @auto_xml_channel_start
*index_site_id.scrub {regex||id=\"tvg-channel-\d*\"[^>]*>.*?</li>||}
*scope.range {(channellist)|end}
*index_site_channel.modify {addstart|'index_site_id'}
*index_site_channel.modify {substring(type=regex)|id=\"tvg-channel-\d*\"[^>]*>(.*?)</li>}
*index_site_channel.modify {remove(type=regex)|<[^>]*>}
*index_site_channel.modify {remove(type=regex)|^\s*}
*index_site_channel.modify {remove(type=regex)|\s*$}
*index_site_id.modify {substring(type=regex)|id=\"tvg-channel-(\d*)\"}
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
*end_scope
** @auto_xml_channel_end