mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-11 17:40:07 -04:00
wip
This commit is contained in:
parent
a597b11307
commit
0059725443
17 changed files with 168 additions and 1873 deletions
16
guides/ru/WebGrab++.config.xml
Executable file
16
guides/ru/WebGrab++.config.xml
Executable file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<settings>
|
||||
|
||||
<filename>guide.xml</filename>
|
||||
<mode></mode>
|
||||
<postprocess grab="y" run="n">rex</postprocess>
|
||||
<user-agent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 Edg/79.0.309.71</user-agent>
|
||||
<logging>off</logging>
|
||||
<retry time-out="5">4</retry>
|
||||
<timespan>0</timespan>
|
||||
<update>f</update>
|
||||
|
||||
<channel update="i" site="tv.yandex.ru" site_id="213##323" xmltv_id="2x2.ru">2x2</channel>
|
||||
<channel update="i" site="tv.yandex.ru" site_id="213##920" xmltv_id="ParamountComedy.ru">Paramount Comedy</channel>
|
||||
|
||||
</settings>
|
171
guides/ru/rex/rex.config.xml
Executable file
171
guides/ru/rex/rex.config.xml
Executable file
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Configuration file for the REX (Re-arrange and Edit Xmltv) postprocessor of WebGrab+Plus
|
||||
by Jan van Straaten
|
||||
Version 4 Januari 2020 Postprocess V2.0.9
|
||||
- added xmltv attributes processing for the elements to expand in 'Content and Values' section
|
||||
- added all Webgrab+Plus xmltv elements are now supported
|
||||
WebGrab+Plus Version V3.0.0 or higher
|
||||
Version 3 April 2019 Postprocess v2.0.8
|
||||
- added optional 'source_file' variable in >filename
|
||||
- added optional operations of the elements to expand in 'Content and Values' section
|
||||
WebGrab+Plus Version V2.1.9 or higher-->
|
||||
|
||||
<!--This configuration file can be made fully functional, change the settings to your own needs as explained and save it in the rex sub-folder of the
|
||||
WebGrab+Plus homefolder as rex.config.xl-->
|
||||
|
||||
<!-- Introduction:
|
||||
The purpose of this post-processor is to re-arrange and edit the xmltv file created by the grabber section of WebGrab+Plus.
|
||||
This can be useful or necessary if the EPG viewer of the PVR/Media-Centre used, or the xmltv importer it uses, does not support all the xmltv elements
|
||||
in the xmltv file created by WG++ or simply because of some users wishes.
|
||||
It can:
|
||||
- Move the content of xmltv elements to other xmltv elements
|
||||
- Merge the content of several xmltv elements
|
||||
- Add comments/prefix/postfix text
|
||||
- Remove or create xmltv elements
|
||||
E.g.: If the PVR doesn't support import of credit elements (actors, directors etc.) it can add the content of them to the description and remove the
|
||||
original credit elements which are useless.
|
||||
Or, it can move the episode data to the beginning or end of the subtitle element
|
||||
Etc. ..
|
||||
This file (rex.config.xml), is stored in the REX postprocess home folder. By default, that is a subfolder named rex of the WebGrab+Plus home folder
|
||||
(default C:\Users\username\AppData\Local\WebGrab+Plus)
|
||||
Remark: This post-processor is only fully effective if the xmltv input has a 'clean' xmltv structure in which the data is properly allocated to the elements.
|
||||
If that is the case depends on the EPG source site and the design of the SiteIni file . Some of the (e.g. customized) SiteIni files produce xmltv data that
|
||||
targets certain PVR/Media-Centre requirements already. In these cases this postprocessor is less effective/useful.-->
|
||||
|
||||
<settings>
|
||||
<!--xmltv file :
|
||||
The xmltv target file in which the updated data will be merged with the grabbed EPG.
|
||||
Because of the incremental nature of the grabbing process this file must be different (name and/or path) from the target file of the grabbing as <filename>,
|
||||
specified in WebGrab++.config.xml . Specify path (obtional) + filename. Path can be specified absolute, like
|
||||
<filename>C:\Users\username\AppData\Local\WebGrab+Plus\rex\guide.xml</filename> or relative to the path of this config file (rex.config.xml),
|
||||
like (if guide.xml is in the same folder as the config file) : <filename>guide.xml</filename> !!
|
||||
It may contain a variable 'source_file' that will take the value of the xmltv source file (without .xml) plus text elements:
|
||||
e.g <filename>final_'source_file'_1.xml</filename> will result in final_guide_1.xml if source_file is guide.xml-->
|
||||
<filename>guide.xml</filename>
|
||||
|
||||
<!-- Configuration of the elements:-->
|
||||
<![CDATA[
|
||||
1. Content and Values:
|
||||
This is best explained in a step by step fashion:
|
||||
Suppose you want to move the actors to the end of the description. You then specify:
|
||||
<desc>'description'\n'actor'</desc>
|
||||
The result is the existing 'description', followed by, on a newline, the actor(s) separated by the standard WG++ element separator |.
|
||||
The result:
|
||||
<desc>This is the original description.
|
||||
Michael Douglas|Kim Basinger</desc>
|
||||
|
||||
You probably don't like the | as separator between the actors, so you specify another separator like this:
|
||||
<desc>'description'\n'actor(, )'</desc>
|
||||
The result:
|
||||
<desc>This is the original description.
|
||||
Michael Douglas, Kim Basinger</desc>
|
||||
|
||||
You can make this prettier by adding some text to the actors addition:
|
||||
<desc>'description'\nActors: 'actor(, )'.</desc>
|
||||
The result:
|
||||
<desc>This is the original description.
|
||||
Actors: Michael Douglas, Kim Basinger.</desc>
|
||||
|
||||
A small problem: Suppose the source xmltv show doesn't have any actors, then the result would be not so pretty:
|
||||
<desc>This is the original description.
|
||||
Actors: .</desc>
|
||||
|
||||
To avoid that, the added text can be linked to the element it must be added to, like this:
|
||||
<desc>'description'{\nActors: 'actor(, )'.}</desc>
|
||||
Result with actors:
|
||||
<desc>This is the original description.
|
||||
Actors: Michael Douglas, Kim Basinger.</desc>
|
||||
And without actors:
|
||||
<desc>This is the original description.</desc>
|
||||
|
||||
An example with some more elements:
|
||||
<desc>'description'{\n\tYear of production: 'productiondate'.}{\n\tProducer: 'producer(, )'.}{\n\tActors: 'actor(, )'.}</desc>
|
||||
Result:
|
||||
<desc>This is the original description.
|
||||
Year of production: 2002.
|
||||
Producer: Steven Spielberg.
|
||||
Actors: Michael Douglas, Kim Basinger.</desc>
|
||||
|
||||
And another one:
|
||||
<sub-title>{Episode: 'episode'\t}'subtitle'</sub-title>
|
||||
Result:
|
||||
<sub-title>Episode: 3.2/12.1 The original subtitle</sub-title>
|
||||
|
||||
You can also remove elements (but not the title!) from the xmltv listing by specifying an empty element, like this:
|
||||
<actor></actor> or simply <actor />
|
||||
This will remove all <actor> elements
|
||||
And this:
|
||||
<credits />
|
||||
Will remove the <credits> element, including all its child elements like <actor> , <producer> etc.
|
||||
|
||||
Additional options :
|
||||
|
||||
** Operations : optionally to do certain operations on the element value to expand e.g:
|
||||
These operations must be specified within the ' ' characters that specify the elementname, enclosed by [] and separated by a , e.g.
|
||||
<desc>{Summary: 'description[cleanup(style=upper), max_chars=500]'}{\nActors: 'actor(, )'}</desc>
|
||||
supported operations :
|
||||
- cleanup with style and tags arguments,
|
||||
- max_chars, max_words and max_sentences to limit the content data of the expanded element.
|
||||
|
||||
** Xmltv Attributes in content to expand: If the source xmltv element has an attribute, like lang="en" or role="rolename" (in actor) or system="US",
|
||||
it is possible to add it to the expanded content by add /a (for attribute value only) or /a+ (for attributename and value) to the element name.
|
||||
This /a or /a+ addition must be added directly after the element name, like 'actor/a' or combined with a custom separator, 'actor/a(, )'
|
||||
or combined with an operation 'country/a(/)[cleanup(style=lower)]'
|
||||
Example (assuming the actors role values are provided in the source xmltv file):
|
||||
<desc>'description'{\n\tYear of production: 'productiondate',}{ Rating: 'rating/a+'.}{\n\tProducer: 'producer(, )'.}{\n\tActors: 'actor/a+(, )'.}</desc>
|
||||
|
||||
Result:
|
||||
<desc>This is the original description.
|
||||
Year of production: 2002, Rating TV-14(system=US).
|
||||
Producer: Steven Spielberg.
|
||||
Actors: Michael Douglas(role=The carpenter), Kim Basinger(role=Mary).</desc>
|
||||
|
||||
Summary of Content/Values:
|
||||
1. Syntax
|
||||
<xmltv-element-name optional-attribute="attribute-value">content</xmltv-element-name>
|
||||
- the content of the xmltv-target elements can be specified by means of a mixture of text and element-values.
|
||||
- content can be left empty to remove the xmltv element (except the element <title>)
|
||||
- the element-values must be entered by their (wg++) element-name enclosed by ' '
|
||||
- optionally, element values can be processed by means of certain operations,
|
||||
E.g. 'description[cleanup(style=upper), max_sentences=2]'
|
||||
- optionally, element xmltv attribute values can be added to the content by adding /a (only attribute value) or /a+ (value + attributename) to the 'elementname'
|
||||
- multiple value elements (like actor) will be converted to single value elements if the xmltv-target element is a single value element, like <desc>.
|
||||
The individual values will be listed with a (standard WG++ internal element separator character) | as separator unless another separator is specified as follows:
|
||||
'element-name(separator-string)' e.g. 'actor(, )' or with attribute 'actor/a(, )'
|
||||
- text and element-names can be linked together by enclosing them by {}. This will ensure that, when the element in it is empty, everything between the {} is
|
||||
ignored. E.g. {\nProduced in : ('productiondate')}
|
||||
- the text in the xmltv-target elements may contain the following simple formatting :
|
||||
- \n or \r to force a newline
|
||||
- \t to add a tab
|
||||
|
||||
2. The allowed xmltv-target elements (the ones in the target file specified above) are :
|
||||
- IMPORTANT! : any of the next listed xmltv-target elements that is specified in this allocation specification, replaces the existing xmltv element and
|
||||
its content!
|
||||
2.1 'Full' function , these can be added, changed and removed
|
||||
<title> <sub-title> <desc> <star-rating> <director> <actor> <category> <episode> <icon>
|
||||
<review> (=optional new xmltv element)
|
||||
2.2 'Remove/Keep' only, cannot be added, changed, only removed or kept as 'is'
|
||||
<date> <producer> <writer> <presenter> <composer> <commentator> <rating> <aspect> <quality> <url> <country>
|
||||
|
||||
3. Supported element-names (from the existing xmltv listing, name definitions as in Appendix E of the documentation) to be used as content to expand:
|
||||
'title' 'description' 'starrating' 'subtitle' 'productiondate' 'category' 'director' 'actor' 'presenter' 'writer' 'composer' 'producer' 'commentator' 'rating'
|
||||
'episode' 'showicon' 'review' 'subtitles' 'premiere' 'previously-shown' 'aspect' 'quality' 'country' 'url'
|
||||
|
||||
4. Attributes
|
||||
- for each of the xmltv-elements the following attribute can be specified
|
||||
(if not specified, the existing one, if present in the xmltv, will be used) :
|
||||
- lang for <title> and <desc> , default : no attribute
|
||||
- system for <star-rating> , default : no attribute
|
||||
- type for <review> , default: type="text"
|
||||
- Existing xmltv attribute values can be added to expanded content. (see above)
|
||||
]]>
|
||||
<!-- examples-->
|
||||
<sub-title>{Episode: 'episode' }'subtitle'</sub-title>
|
||||
<desc>'description[max_words=100]'{\n\t¤ Produced in: 'productiondate'. }{¤ Category: 'category(, )'. }{\n\t¤ Actors: 'actor/a+(, )'}{\n\t¤ Director: 'director(, )'}{\n\t¤ Presenter: 'presenter(, )'}</desc>
|
||||
<credits></credits>
|
||||
<episode-num></episode-num>
|
||||
<date></date>
|
||||
<category></category>
|
||||
<review>{Ratings: 'rating(, )'.}</review>
|
||||
<rating></rating>
|
||||
</settings>
|
152
guides/ru/siteini.pack/tv.yandex.ru.ini
Executable file
152
guides/ru/siteini.pack/tv.yandex.ru.ini
Executable file
|
@ -0,0 +1,152 @@
|
|||
**------------------------------------------------------------------------------------------------
|
||||
* @header_start
|
||||
* WebGrab+Plus ini for grabbing EPG data from TvGuide websites
|
||||
* @Site: tv.yandex.ru
|
||||
* @MinSWversion: V1.57
|
||||
* @Revision 7 - [18/02/2019] EgiszZ
|
||||
* - ini fixes based on new web site design (title)
|
||||
* @Revision 6 - [14/10/2018] FlyGoneCrazy
|
||||
* - ini fixes based on new web site design
|
||||
* @Revision 5 - [08/11/2017] Blackbear199
|
||||
* - added UA and TR to channels.xml creation
|
||||
* @Revision 4 - [30/10/2017] Blackbear199
|
||||
* - site changes
|
||||
* @Revision 3 - [05/04/2017] Blackbear199
|
||||
* - site changes
|
||||
* @Revision 2 - [28/07/2016] Blackbear199
|
||||
* - title match fix
|
||||
* @Revision 1 - [25/07/2016] Blackbear199
|
||||
* - added subtitle
|
||||
* - added country
|
||||
* - added urlchannellogo
|
||||
* - added showicon
|
||||
* - rewrote season/episode to version 56.25+ format.
|
||||
* - set desired output,onscreen(S5 E9/10) or xmltv_ns(4.8/9.) on site{...} line.default onscreen.
|
||||
* @Revision 0 - [02/03/2016] Blackbear199
|
||||
* - creation
|
||||
* @Remarks: your_remarks
|
||||
* @header_end
|
||||
**------------------------------------------------------------------------------------------------
|
||||
|
||||
*site {loadcookie=cookie_file.txt}
|
||||
site {url=tv.yandex.ru|timezone=Europe/Moscow|maxdays=6|cultureinfo=ru-RU|charset=UTF-8|titlematchfactor=90}
|
||||
site {ratingsystem=RU|episodesystem=onscreen}
|
||||
*
|
||||
url_index{url|https://tv.yandex.ru/##region##/channels/##channel##?date=|urldate|&period=all-day}
|
||||
url_index.headers {customheader=Accept-Encoding=gzip,deflate}
|
||||
urldate.format {datestring|yyyy-MM-dd}
|
||||
*
|
||||
scope.range{(urlindex)|end}
|
||||
global_temp_1.modify {substring(type=regex)|'config_site_id' "^(\d+)##"}
|
||||
global_temp_2.modify {substring(type=regex)|'config_site_id' "##(\d+)$"}
|
||||
url_index.modify {replace|##region##|'global_temp_1'}
|
||||
url_index.modify {replace|##channel##|'global_temp_2'}
|
||||
end_scope
|
||||
*
|
||||
index_urlchannellogo {url(scope=datelogo)|https:|<img class="image__img" src="||"/>|/>}
|
||||
*
|
||||
index_showsplit.scrub {multi|"events":[{||}]}|}]}}
|
||||
index_showsplit.modify {replace|\},\{|\|}
|
||||
*
|
||||
index_urlshow {url|https://tv.yandex.ru|"url":"||",|",}
|
||||
index_urlshow.headers {customheader=Accept-Encoding=gzip,deflate}
|
||||
*
|
||||
index_temp_1.scrub {regex||"start":"\d{4}-\d{2}-\d{2}T\d{1,2}:\d{2}:\d{2}([-+]\d{2}:\d{2})"||}
|
||||
index_start.scrub {regex||"start":"(\d{4}-\d{2}-\d{2}T\d{1,2}:\d{2}:\d{2})[-+]\d{2}:\d{2}"||}
|
||||
index_stop.scrub {regex||"finish":"(\d{4}-\d{2}-\d{2}T\d{1,2}:\d{2}:\d{2})[-+]\d{2}:\d{2}"||}
|
||||
*index_title.scrub {(debug)single||||}
|
||||
index_title.scrub {regex||"finish":"[^"]*"(?:,"liveId":\d*,"yacFamilyId":\d*)?,"title":"(.*?)","||}
|
||||
index_title.scrub {regex||"finish":"[^"]*"(?:,"yacFamilyId":\d*)?,"title":"(.*?)","||}
|
||||
*index_title.scrub {single|,"title":"||"|"}
|
||||
*index_title.scrub {(debug)single|<h1 class="program-header__title" itemprop="name">||</h1>|</h1>}
|
||||
index_subtitle.scrub {single|"episodeTitle":"||","|","}
|
||||
*
|
||||
scope.range{(indexshowdetails)|end}
|
||||
index_start.modify {calculate(format=date,unix)}
|
||||
index_stop.modify {calculate(format=date,unix)}
|
||||
index_temp_2.modify {substring(type=char)|'index_temp_1' 0 1}
|
||||
index_temp_1.modify {remove(type=char)|0 1}
|
||||
index_temp_1.modify {calculate(format=F0)|3600 *}
|
||||
index_start.modify {calculate('index_temp_2' "-" format=F0)|'index_start' 'index_temp_1' +}
|
||||
index_start.modify {calculate('index_temp_2' "+" format=F0)|'index_start' 'index_temp_1' -}
|
||||
index_stop.modify {calculate('index_temp_2' "-" format=F0)|'index_stop' 'index_temp_1' +}
|
||||
index_stop.modify {calculate('index_temp_2' "+" format=F0)|'index_stop' 'index_temp_1' -}
|
||||
index_title.modify {cleanup(style=jsondecode)}
|
||||
index_title.modify {replace(type=regex)|(.*)(","title":")|}
|
||||
index_subtitle.modify {clear('index_title')}
|
||||
index_subtitle.modify {substring(type=regex)|"\s-\s\"(.*?)\""}
|
||||
*
|
||||
index_episode.modify {substring(type=regex pattern="Сезон 'S1'. 'E1'/'Et1'""Сезон 'S1'. 'E1'""'E1'/'Et1'""'E1'")|'index_title' "\s((?:Сезон\s\d+\.\s)?(?:\d+-я\s[и-]\s)?\d+-я\sсери[ия])"}
|
||||
*index_episode.modify {replace|-я и |/}
|
||||
*index_episode.modify {replace|-я - |/}
|
||||
*index_episode.modify {remove(type=regex)|-я сери[ия]}
|
||||
index_title.modify {remove(type=regex)|\.*\s(?:Сезон \d+\.\s)?(?:\d+-я\s[и-]\s)?\d+-я\sсери[ия](?:\s-*\s*\".*?\")?}
|
||||
*
|
||||
*index_subtitle.modify {substring(type=regex)|"\s-\s\"(.*?)\""}
|
||||
index_category.scrub {single|"type":{|"name":"|"|}}
|
||||
end_scope
|
||||
*
|
||||
title.modify {addstart|'index_title'} *index_title and details title often different
|
||||
title.modify {replace(type=regex)|(.*)(","title":")|}
|
||||
*description.scrub {(debug)||||}
|
||||
description.scrub {single|<meta name="description" content="||" />|" />}
|
||||
*description.scrub {(debug)regex||"description":"(.+?)","countries"||}
|
||||
*description.modify {replace(type=regex)|(","(.*))|}
|
||||
description.modify {cleanup}
|
||||
*director.scrub {multi|Режиссёр</div>|<i itemProp="name">|</i>|</div>}
|
||||
director.scrub {multi|Режиссёр|<i itemProp="name">|</i>|</div>}
|
||||
*director.scrub {(debug)regex||Режиссёр(.+?)</div>||}
|
||||
*actor.scrub {(debug)multi||||}
|
||||
*actor.scrub {multi|В ролях|<span class="program-persons__name" itemprop="name">|</span>|</div></div></div>}
|
||||
actor.scrub {regex||\{"id":\d+,"name":"(.+?)","role":"actor","||}
|
||||
actor.modify {replace(type=regex)|(.*)(,"name":")|}
|
||||
*actor.scrub {(debug)multi|"name":"||","role":"actor","|","role":"actor","}
|
||||
*actor.modify {(debug)regex||"name":"(.+?)","role":"actor","||}
|
||||
*presenter.scrub {multi|Ведущие</div>|<span>|</span>|</div>}
|
||||
presenter.scrub {multi|Ведущий</h3>|itemProp="presenter">|</span>|</div>}
|
||||
rating.scrub {single|<span class="program-header__age">||</span>|</span>}
|
||||
rating.modify {cleanup(tags="<"">")}
|
||||
*rating.scrub {single|class="program-statistics__value">||</div>|</div>}
|
||||
*starrating.scrub {single|Рейтинг КиноПоиска</div>|">|</div>|</div>}
|
||||
starrating.scrub {single|class="program-statistics__value">||</div>|</div>}
|
||||
productiondate.scrub {single|Страна и год</h3>|class="program-details__text">|</div></div>|</div></div>}
|
||||
productiondate.modify {replace(type=regex)|(.*)(, )|}
|
||||
country.scrub {single|Страна и год</h3>|class="program-details__text">|</div></div>|</div></div>}
|
||||
country.modify {replace(type=regex)|(, \d{4})|}
|
||||
showicon.scrub {single|<div class="program-header__trailer" style="background-image:url('||')">|')">}
|
||||
showicon.modify {addstart(not "")|https:}
|
||||
*
|
||||
** _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
** ##### CHANNEL FILE CREATION (only to create the xxx-channel.xml file)
|
||||
**
|
||||
** @auto_xml_channel_start
|
||||
*url_index{url|https://tv.yandex.ru/ajax?params=%5B%7B%22name%22%3A%22i-tv-region%22%2C%22method%22%3A%22get%22%2C%22args%22%3A%7B%22params%22%3A%22%7B%5C%22type%5C%22%3A%5C%22regional%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5C%22schedules%2Cchannels%2Cfinish%2Cchannel%2Cid%2Ctitle%2Cfavourite%5C%22%2C%5C%22lang%5C%22%3A%5C%22ru%5C%22%7D%22%2C%22cacheKey%22%3A%22channels%3Fparams%3D%7B%5C%22type%5C%22%3A%5C%22regional%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5B%5C%22schedules%5C%22%2C%5C%22channels%5C%22%2C%5C%22finish%5C%22%2C%5C%22channel%5C%22%2C%5C%22id%5C%22%2C%5C%22title%5C%22%2C%5C%22favourite%5C%22%5D%7D%22%2C%22userRegion%22%3A%22|subpage|%22%2C%22resource%22%3A%22channels%22%2C%22ncrd%22%3A1469479392374%7D%7D%2C%7B%22name%22%3A%22i-tv-region%22%2C%22method%22%3A%22get%22%2C%22args%22%3A%7B%22params%22%3A%22%7B%5C%22type%5C%22%3A%5C%22local%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5C%22schedules%2Cchannels%2Cfinish%2Cchannel%2Cid%2Ctitle%2Cfavourite%5C%22%2C%5C%22lang%5C%22%3A%5C%22ru%5C%22%7D%22%2C%22cacheKey%22%3A%22channels%3Fparams%3D%7B%5C%22type%5C%22%3A%5C%22local%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5B%5C%22schedules%5C%22%2C%5C%22channels%5C%22%2C%5C%22finish%5C%22%2C%5C%22channel%5C%22%2C%5C%22id%5C%22%2C%5C%22title%5C%22%2C%5C%22favourite%5C%22%5D%7D%22%2C%22userRegion%22%3A%22|subpage|%22%2C%22resource%22%3A%22channels%22%2C%22ncrd%22%3A1469479392374%7D%7D%2C%7B%22name%22%3A%22i-tv-region%22%2C%22method%22%3A%22get%22%2C%22args%22%3A%7B%22params%22%3A%22%7B%5C%22type%5C%22%3A%5C%22satelite%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5C%22schedules%2Cchannels%2Cfinish%2Cchannel%2Cid%2Ctitle%2Cfavourite%5C%22%2C%5C%22lang%5C%22%3A%5C%22ru%5C%22%7D%22%2C%22cacheKey%22%3A%22channels%3Fparams%3D%7B%5C%22type%5C%22%3A%5C%22satelite%5C%22%2C%5C%22packageIds%5C%22%3A%5B%5D%2C%5C%22limit%5C%22%3A500%2C%5C%22fields%5C%22%3A%5B%5C%22schedules%5C%22%2C%5C%22channels%5C%22%2C%5C%22finish%5C%22%2C%5C%22channel%5C%22%2C%5C%22id%5C%22%2C%5C%22title%5C%22%2C%5C%22favourite%5C%22%5D%7D%22%2C%22userRegion%22%3A%22|subpage|%22%2C%22resource%22%3A%22channels%22%2C%22ncrd%22%3A1469479392374%7D%7D%5D&sk=42a26daf72c9b3c34a81c144d6a754f0&userRegion=|subpage|&resource=null&ncrd=}
|
||||
*subpage.format {list|187|213|983}
|
||||
*index_site_id.scrub {|}
|
||||
*index_temp_9.scrub {regex||^.*$||}
|
||||
*index_temp_9.modify {replace|]\}"\}]|\|}
|
||||
*index_temp_9.modify {remove(type=element)|-1 1}
|
||||
*scope.range{(channellist)|end}
|
||||
*index_temp_4.modify {set|187\|213\|983}
|
||||
*index_temp_3.modify {set|0}
|
||||
*loop{(each "index_temp_8" in 'index_temp_9')|end}
|
||||
*index_temp_7.modify {substring(type=element)|'index_temp_4' 'index_temp_3' 1}
|
||||
*index_temp_6.modify {substring(type=regex)|'index_temp_8' ":(\d+)\}}
|
||||
*index_temp_5.modify {substring(type=regex)|'index_temp_8' "\\\"title\\\":\\\"(.+?)\\\","}
|
||||
*index_temp_6.modify {addstart|'index_temp_7'##}
|
||||
*index_temp_5.modify {addstart('index_temp_7' "187")|UA-}
|
||||
*index_temp_5.modify {addstart('index_temp_7' "213")|RU-}
|
||||
*index_temp_5.modify {addstart('index_temp_7' "983")|TR-}
|
||||
*index_temp_6.modify {replace|\||#_#}
|
||||
*index_temp_5.modify {replace|\||#_#}
|
||||
*index_site_id.modify {addend|'index_temp_6'#_#}
|
||||
*index_site_channel.modify {addend|'index_temp_5'#_#}
|
||||
*index_temp_3.modify {calculate(format=F0)|1 +}
|
||||
*end_loop
|
||||
*index_site_id.modify {replace|#_#|\|}
|
||||
*index_site_channel.modify {replace|#_#|\|}
|
||||
*index_site_id.modify {remove(type=element)|-1 1}
|
||||
*index_site_channel.modify {remove(type=element)|-1 1}
|
||||
*index_site_id.modify {cleanup(removeduplicates=equal,100 link="index_site_channel")}
|
||||
*end_scope
|
||||
** @auto_xml_channel_end
|
Loading…
Add table
Add a link
Reference in a new issue