30-12-2017, 18:32
За да функционират нормално DVR приложенията, в EPG следва да има информация и за епизодите на сериалите в xmltv_ns формат. През WebGrab++ е възможно да постигнете това, но ще са необходими няколко стъпки:
1. Извличаме във временна променлива данните за сезона. Препоръчително е да използваме регулярен израз, чрез който да отсеем само цифровата част, за да не стават грешки.
2. Правим същото за текущите спизоди.
3. Правим същото и за филмите, които са разделени на няколко части и в ТВ програмата фигурират като първа/втора/n-та част...
4. Обединяваме ги в обща променлива с някакъв разделител между тях (аз ползвам тире).
5. Подаваме систематизираните данни на WG++, като използваме посоченият pattern и допълнителното условие, четвъртата променлива да не съдържа само тиретата т.е. да има някакви данни изобщо.
По този начин каквато и част от наличните данни да имате за конкретното предаване, тези няколко реда ще я систематизират и подадат по подходящ начин, така, че да получите верен резултат. Например в сайтът имате "АБВ /1 и 2 епизод/" - тогава ще получите <episode-num system="xmltv_ns">.1.</episode-num> т.е. алгоритъма възприема само втори епизод, което е ОК, защото ако ТВ канала излъчва и останалите на двойки (3 и 4; 5 и 6...), DVR софтуера пак ще ги различава един от друг (въпреки, че според него, ще ги записва през един).
6. Последният ред търси за наличие на /п/ (може и друго да е във вашия случай) - индикатор за повторение на предаването. Може да поставите също и индикатор за премиера, ако източникът на разписанието маркира тези излъчвания по някакъв начин: index_premiere.modify {set('index_description' ~ "премиера")|true}
Код:
index_temp_1.scrub {regex||(\d+) сезон||}
index_temp_2.scrub {regex||(\d+) епизод||}
index_temp_3.scrub {regex||(\d+) част||}
index_temp_4.modify {set|'index_temp_1'-'index_temp_2'-'index_temp_3'}
index_episode.modify {set(pattern="'S1'-'E1'-'P1'" 'index_temp_4' not == "--")|'index_temp_4'}
index_previousshown.modify {set('index_description' ~ "/п/")|true}
2. Правим същото за текущите спизоди.
3. Правим същото и за филмите, които са разделени на няколко части и в ТВ програмата фигурират като първа/втора/n-та част...
4. Обединяваме ги в обща променлива с някакъв разделител между тях (аз ползвам тире).
5. Подаваме систематизираните данни на WG++, като използваме посоченият pattern и допълнителното условие, четвъртата променлива да не съдържа само тиретата т.е. да има някакви данни изобщо.
По този начин каквато и част от наличните данни да имате за конкретното предаване, тези няколко реда ще я систематизират и подадат по подходящ начин, така, че да получите верен резултат. Например в сайтът имате "АБВ /1 и 2 епизод/" - тогава ще получите <episode-num system="xmltv_ns">.1.</episode-num> т.е. алгоритъма възприема само втори епизод, което е ОК, защото ако ТВ канала излъчва и останалите на двойки (3 и 4; 5 и 6...), DVR софтуера пак ще ги различава един от друг (въпреки, че според него, ще ги записва през един).
6. Последният ред търси за наличие на /п/ (може и друго да е във вашия случай) - индикатор за повторение на предаването. Може да поставите също и индикатор за премиера, ако източникът на разписанието маркира тези излъчвания по някакъв начин: index_premiere.modify {set('index_description' ~ "премиера")|true}
![[Изображение: notrobosmall.jpg]](https://i.ibb.co/jz6pqnw/notrobosmall.jpg)