Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5
"Скрейпване" на данни за епизодите
#1
За да функционират нормално DVR приложенията, в EPG следва да има информация и за епизодите на сериалите в xmltv_ns формат. През WebGrab++ е възможно да постигнете това, но ще са необходими няколко стъпки:
Код:
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}
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}
[Изображение: notrobosmall.jpg]
Отговори


Съобщения в темата
"Скрейпване" на данни за епизодите - от Majide - 30-12-2017, 18:32

Отваряне на: