85 lines
5.4 KiB
INI
Executable File
85 lines
5.4 KiB
INI
Executable File
**------------------------------------------------------------------------------------------------
|
|
* @header_start
|
|
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
|
|
* @Site: tvspielfilm.de
|
|
* @MinSWversion: V1.1.1/45
|
|
* none
|
|
* @Revision 5 - [05/01/2015] Thomas Wunderlich
|
|
* - adapted to site changes: detail title, actors, starrating
|
|
* - improved scraping of description, especially for short programs
|
|
* @Revision 4 - [13/03/2013] Francis De Paemeleere
|
|
* - fix scope typo
|
|
* @Revision 3 - [13/02/2013] Francis De Paemeleere
|
|
* - adapt to site changes
|
|
* - fully automatic .channel.xml generation
|
|
* @Revision 2 - [01/11/2012] Willy De Wilde/Jan van Straaten
|
|
* - subpage added
|
|
* @Revision 1 - []
|
|
* @Remarks:
|
|
* @header_end
|
|
**------------------------------------------------------------------------------------------------
|
|
*
|
|
site {url=tvspielfilm.de|timezone=UTC+01:00|maxdays=12|cultureinfo=de-DE|charset=UTF-8|titlematchfactor=90}
|
|
*site {grabengine=wget}
|
|
site {episodesystem=onscreen}
|
|
url_index{url()|http://www.tvspielfilm.de/tv-programm/sendungen/?page=|subpage|&order=time&date=|urldate|&time=day&channel=|channel|}
|
|
urldate.format {datestring|yyyy-MM-dd}
|
|
subpage.format {number||1|keine passenden Sendungen gefunden}
|
|
index_showsplit.scrub {multi()|<table class="info-table"|<td class="programm-col1">|</tr>|</table>}
|
|
index_urlshow {url()||<td class="col-3" >|<strong><a href="|" |</strong>}
|
|
*
|
|
index_start.scrub {single(separator=" - " include=first)|<td class="col-2">|<strong>|</strong>|</td>}
|
|
index_stop.scrub {single(separator=" - " include=last)|<td class="col-2">|<strong>|</strong>|</td>}
|
|
index_title.scrub {single()|<strong><a|">|</a>|</strong>}
|
|
index_category.scrub {multi|<td class="col-4">|<span>|</span>|</td>}
|
|
*
|
|
title.scrub {single()|<div class="social-box">|<h1 class="clear">|</h1>|</h1>}
|
|
title.scrub {single()|<h1 class="film-title">|">|</a>|</h1>}
|
|
*subtitle.scrub {single(separator="," include=first)|<div class="film-info|<p>|</p>|</div>}
|
|
description.scrub {single()|<div class="row">|<span class="genre">|</span>|</div>}
|
|
description.scrub {single()|<div class="description-text">|<h3>|</h3>|</div>}
|
|
description.scrub {single()|<div class="description-text">|<p>|</p>|</div>}
|
|
presenter.scrub {multi (separator="," ";")|Moderation: ||<br/>|</p>}
|
|
director.scrub {multi ()|<dt>Regie</dt>|">|</a>|</dl>}
|
|
*actor.scrub {multi()|Darsteller:</p>|">|</a>|</dl>} * seems not to work any more
|
|
actor.scrub {multi()|ul class="actors">|title="|">|</ul>}
|
|
episode.scrub {multi(separator="<br/>" include=Folge)|<div class="social-box">|<p|</p>|</div>}
|
|
productiondate.scrub {single ()|<dt>Jahr:</dt>|<dd>|</dd>|</dd>}
|
|
*starrating.scrub {single|class="ratingView rate||">|</div>} * seems not to work any more
|
|
starrating.scrub {single|<ul class="community-rating">|class="active|">|</ul>}
|
|
*
|
|
* operations:
|
|
*index_category.modify {remove|</span>} * should not be needed
|
|
title.modify{remove|<br>}
|
|
title.modify{remove|</a>}
|
|
subtitle.modify{remove|'index_category'}
|
|
description.modify {remove|(Senderinfo)}
|
|
description.modify {cleanup}
|
|
description.modify {addstart("")|Keine Details verfügbar}
|
|
starrating.modify {addend(not "")|/5}
|
|
episode.modify {cleanup}
|
|
*
|
|
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
|
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
|
|
** @auto_xml_channel_start
|
|
*index_site_channel.scrub {multi()|>alle Sender</option>|">|</option>|</select>}
|
|
*index_site_id.scrub {multi()|>alle Sender</option>|<option value="|"|</select>}
|
|
** remove all spacing channels (all starting with g:)
|
|
*scope.range {(channellist)|end}
|
|
*index_temp_1.modify {calculate(type=element format=F0)|'index_site_id' #} * how many channels are there
|
|
*index_temp_6.modify {addstart|'index_site_id'} * copy site_id in temp
|
|
*index_temp_5.modify {addstart|'index_site_channel'} * copy site_channel in temp
|
|
*index_site_id.modify {clear} * remove all site_id
|
|
*index_site_channel.modify {clear} * remove all site_channel
|
|
*loop {('index_temp_1' > "0" max=1000)|end}
|
|
*index_temp_1.modify {calculate(format=F0)|1 -} * decrease the loop counter
|
|
*index_temp_2.modify {substring(type=element)|'index_temp_6' 'index_temp_1' 1} * site_id to work on
|
|
*index_temp_4.modify {substring(type=element)|'index_temp_5' 'index_temp_1' 1} * site_channel to work on
|
|
*index_temp_3.modify {calculate(type=string format=F0)|'index_temp_2' "g:" @} * index of g:
|
|
*index_site_id.modify {addstart('index_temp_3' = "-1")|#_#'index_temp_2'} * fill site_id , add a placeholder #_# as separator (only if it is a valid site_id)
|
|
*index_site_channel.modify {addstart('index_temp_3' = "-1")|#_#'index_temp_4'} * fill site_channel , add a placeholder #_# as separator (only if it is a valid site_id)
|
|
*end_loop
|
|
*index_site_id.modify {replace|#_#|\|} * site_id make multi
|
|
*index_site_channel.modify {replace|#_#|\|} * site_channel make multi
|
|
*end_scope
|
|
** @auto_xml_channel_end |