Plasma/Public Transport/CreateServiceProviders/uk: Difference between revisions
(Created page with "Category:Плазма/uk
Category:Віджети/uk
Category:Захоплення/uk") |
No edit summary |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== Створення нового запису джерела даних == | == Створення нового запису джерела даних == | ||
Назви файлів мають починатися з коду країни, потім слід використати символ підкреслювання і вказати скорочену назву джерела (звичайно ж, не слід забувати про суфікс назви). | |||
Початком назви файла може бути код країни, "international" або "unknown", потім має бути "_" і скорочена назва джерела даних. Приклади: "de_db", "ch_sbb", "sk_atlas", "international_flightstats". Назва файла XML має завершуватися суфіксом ".xml". | |||
=== Файл XML === | === Файл XML === | ||
Файл XML має посилатися на файл скрипту, який слід використати і у якому має міститися «шаблон адреси», до якого програма додаватиме назву зупинки та інші вказівки щодо надання даних. | |||
=== Файл скрипту === | === Файл скрипту === | ||
У файлі скрипту має бути принаймні одна функція, що називається "parseTimetable" і приймає один аргумент. Через цей аргумент функції має передаватися код HTML повністю. Обробку коду виконує сам скрипт. Нижче наведено список функцій, які використовують рушій даних PublicTransport для обробки документа скриптом: | |||
*'''parseTimetable( html )''' ( | *'''parseTimetable( html )''' (використовується для обробки документів щодо відправлення-прибуття) | ||
*'''parseJourneys( html )''' ( | *'''parseJourneys( html )''' (використовується для обробки документів маршрутів) | ||
*'''parsePossibleStops( html )''' ( | *'''parsePossibleStops( html )''' (використовується для обробки документів пропозицій щодо зупинок) | ||
Line 25: | Line 25: | ||
Передбачено допоміжний об’єкт з назвою "helper", який можна використовувати у скрипті. Частиною об’єкта є такі функції: | Передбачено допоміжний об’єкт з назвою "helper", який можна використовувати у скрипті. Частиною об’єкта є такі функції: | ||
*'''trim( | *'''trim( рядок )''' (вилучає « » з початку та кінця вказаного рядка) | ||
*'''stripTags( | *'''stripTags( рядок )''' (вилучає всі теґи з вказаного рядка, тобто вилучає <...> або </...>) | ||
*'''camelCase( | *'''camelCase( рядок )''' (змінює регістр літер так, щоб перший символ кожного зі слід був великою літерою, а решта символів – малими літерами) | ||
*'''extractBlock( | *'''extractBlock( рядок, рядок_початку, рядок_кінця )''' (повертає рядок між першим входженням рядок_початку і першим входженням рядок_кінця або порожній рядок, якщо у рядку не вдасться знайти підрядків рядок_початку і рядок_кінця. Наприклад, ''extractBlock("<b>Текст жирним</b>", "<b>", "</b>")'' поверне ''"Текст жирним"'') | ||
*'''matchTime( | *'''matchTime( рядок, форматування )''' (пошук рядка часу у вказаному форматі, наприклад, "hh:mm" повертає список з двох цілих чисел: значень годин і хвилин) | ||
*'''formatTime( | *'''formatTime( година, хвилина, форматування )''' (створює рядок часу у вказаному форматуванні) | ||
*'''duration( sTime1, sTime2, | *'''duration( sTime1, sTime2, форматування )''' (повертає тривалість періоду часу між sTime1 і sTime2, рядками часу у вказаному форматуванні) | ||
*'''addMinsToTime( sTime, | *'''addMinsToTime( sTime, кількість_доданих_хвилин, форматування )''' (обробляє вказаний рядок часу відповідно до вказаного форматування, додає кількість_доданих_хвилин і повертає дані відповідно до форматування) | ||
*'''splitSkipEmptyParts( | *'''splitSkipEmptyParts( рядок, роздільник )''' (поділяє вказаний рядок за роздільником, порожні частини буде пропущено) | ||
Line 39: | Line 39: | ||
==== Додавання оброблених даних щодо відправлення до набору результатів ==== | ==== Додавання оброблених даних щодо відправлення до набору результатів ==== | ||
Скрипту передається об’єкт з назвою "timetableData". Щоб додати оброблені дані щодо відправлення до результату, допишіть щось подібне до наведеного нижче: | |||
{{Input|1= | {{Input|1= | ||
Line 51: | Line 51: | ||
result.addData( timetableData );}} | result.addData( timetableData );}} | ||
Вказана команда додасть дані щодо відправлення трамвая маршруту "N6", що відправляється о 1:30 до кінцевої зупинки "Bremen Hbf". | |||
Line 59: | Line 59: | ||
Нижче наведено список всіх типів даних, які можна додати до об’єкта timetableData для відправлення, прибуття або маршруту: | Нижче наведено список всіх типів даних, які можна додати до об’єкта timetableData для відправлення, прибуття або маршруту: | ||
*'''DepartureDate''' ( | *'''DepartureDate''' (дата відправлення) | ||
*'''DepartureHour''' (''' | *'''DepartureHour''' ('''обов’язковий параметр для відправлення, прибуття та маршрутів''', година відправлення) | ||
*'''DepartureMinute''' (''' | *'''DepartureMinute''' ('''обов’язковий параметр для відправлення, прибуття та маршрутів''', хвилина відправлення) | ||
*'''TransportLine''' (''' | *'''TransportLine''' ('''обов’язковий параметр для відправлення або прибуття''', назва маршруту громадського транспорту, наприклад, "4", "6S", "S 5", "RB 24122") | ||
*'''Target''' (''' | *'''Target''' ('''обов’язковий параметр для відправлення або прибуття''', кінцева зупинка маршруту або рейсу громадського транспорту) | ||
*'''TypeOfVehicle''' ( | *'''TypeOfVehicle''' (тип засобу пересування) | ||
*'''FlightNumber''' ( | *'''FlightNumber''' (те саме, що і TransportLine, використовується для авіатранспорту) | ||
*'''Platform''' ( | *'''Platform''' (платформа, з якої відправляється або до якої прибуває громадський транспорт) | ||
*'''Delay''' ( | *'''Delay''' (затримка громадського транспорту) | ||
*'''DelayReason''' ( | *'''DelayReason''' (причина затримки) | ||
*'''JourneyNews''' ( | *'''JourneyNews''' (може містити дані щодо затримки, причини затримки та інші повідомлення) | ||
*'''JourneyNewsOther''' ( | *'''JourneyNewsOther''' (інші новини) | ||
*'''JourneyNewsLink''' ( | *'''JourneyNewsLink''' (містить посилання на сторінку html з новинами маршрутів. Додаватиметься адреса батьківської сторінки, якщо буде встановлено, що шлях до сторінки є відносним (починається з "/")) | ||
*'''DepartureHourPrognosis''' ( | *'''DepartureHourPrognosis''' (ймовірна година відправлення, типова година відправлення плюс затримка) | ||
*'''DepartureMinutePrognosis''' ( | *'''DepartureMinutePrognosis''' (ймовірна хвилина відправлення, типова хвилина відправлення плюс затримка) | ||
*'''Operator''' ( | *'''Operator''' (компанія-власник засобу пересування) | ||
*'''DepartureAMorPM''' ( | *'''DepartureAMorPM''' (використовується для встановлення відповідності рядку "am" або "pm" для часу відправлення) | ||
*'''DepartureAMorPMPrognosis''' ( | *'''DepartureAMorPMPrognosis''' (використовується для встановлення відповідності рядку "am" або "pm" для ймовірного часу відправлення) | ||
*'''ArrivalAMorPM''' ( | *'''ArrivalAMorPM''' (використовується для встановлення відповідності рядку "am" або "pm" для часу прибуття) | ||
*'''Status''' ( | *'''Status''' (поточний стан відправлення-прибуття. Використовується для літаків) | ||
*'''DepartureYear''' ( | *'''DepartureYear''' (рік відправлення, буде використано, якщо у даті вказано рік) | ||
*'''RouteStops''' ( | *'''RouteStops''' (список зупинок прибуття-відправлення до зупинки призначення або список зупинок маршруту від початкової зупинки до кінцевої. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці). Для маршрутів слід використовувати RouteTimesDeparture і RouteTimesArrival, а не RouteTimes) | ||
*'''RouteTimes''' ( | *'''RouteTimes''' (Список часів прибуття-відправлення до зупинки призначення. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці)) | ||
*'''RouteTimesDeparture''' ( | *'''RouteTimesDeparture''' (Список часів відправлення для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesDeparture, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).) | ||
*'''RouteTimesArrival''' ( | *'''RouteTimesArrival''' (Список часів прибуття для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesArrival, останнє зі значень має містити на один пункт менше (оскільки у першої зупинки немає часу прибуття, лише час відправлення). Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).) | ||
*'''RouteExactStops''' ( | *'''RouteExactStops''' (кількість обов’язкових зупинок маршруту. Список зупинок маршруту не є повним від останньої обов’язкової зупинки маршруту) | ||
*'''RouteTypesOfVehicles''' ( | *'''RouteTypesOfVehicles''' (типи засобів пересування, які використовуються для кожного з підмаршрутів цілого маршруту) | ||
*'''RouteTransportLines''' ( | *'''RouteTransportLines''' (маршрути транспорту, використані для кожного з підмаршрутів цілого маршруту) | ||
*'''RoutePlatformsDeparture''' ( | *'''RoutePlatformsDeparture''' (платформи відправлення, використані для кожного з підмаршрутів цілого маршруту) | ||
*'''RoutePlatformsArrival''' ( | *'''RoutePlatformsArrival''' (платформи прибуття, використані для кожного з підмаршрутів цілого маршруту) | ||
*'''RouteTimesDepartureDelay''' ( | *'''RouteTimesDepartureDelay''' (список затримок у хвилинах для кожного часу відправлення маршруту (RouteTimesDeparture)) | ||
*'''RouteTimesArrivalDelay''' ( | *'''RouteTimesArrivalDelay''' (список затримок у хвилинах для кожного часу прибуття маршруту (RouteTimesArrival)) | ||
''Ці дані може бути застосовано лише до маршрутів:'' | ''Ці дані може бути застосовано лише до маршрутів:'' | ||
*'''Duration''' ( | *'''Duration''' (тривалість маршруту) | ||
*'''StartStopName''' ( | *'''StartStopName''' (назва початкової зупинки маршруту) | ||
*'''StartStopID''' ( | *'''StartStopID''' (ідентифікатор початкової зупинки маршруту) | ||
*'''TargetStopName''' ( | *'''TargetStopName''' (назва зупинки-призначення маршруту) | ||
*'''TargetStopID''' ( | *'''TargetStopID''' (ідентифікатор зупинки-призначення маршруту) | ||
*'''ArrivalDate''' ( | *'''ArrivalDate''' (дата прибуття) | ||
*'''ArrivalHour''' (''' | *'''ArrivalHour''' ('''обов’язковий параметри для маршрутів''', година прибуття) | ||
*'''ArrivalMinute''' (''' | *'''ArrivalMinute''' ('''обов’язковий параметри для маршрутів''', хвилина прибуття) | ||
*'''Changes''' ( | *'''Changes''' (кількість пересадок протягом маршруту) | ||
*'''TypesOfVehicleInJourney''' ( | *'''TypesOfVehicleInJourney''' (список типів засобів пересування, використаних під час побудови маршруту) | ||
*'''Pricing''' ( | *'''Pricing''' (дані щодо вартості пересування маршрутом) | ||
''Ці дані може бути застосовано лише до пропозицій щодо зупинок:'' | ''Ці дані може бути застосовано лише до пропозицій щодо зупинок:'' | ||
*'''StopName''' (''' | *'''StopName''' ('''обов’язковий параметр для пропозицій щодо зупинок''', назва зупинки або станції) | ||
*'''StopID''' ( | *'''StopID''' (ідентифікатор зупинки або станції) | ||
*'''StopWeight''' ( | *'''StopWeight''' (рівень відповідності пропозиції щодо назви зупинки) | ||
{{Info_(uk)|1=Згодом тут буде наведено шаблони файлів XML і скрипту. Зараз же ви можете скористатися прикладами цих файлів для вже створених записів джерел даних.}} | {{Info_(uk)|1=Згодом тут буде наведено шаблони файлів XML і скрипту. Зараз же ви можете скористатися прикладами цих файлів для вже створених записів джерел даних.}} |
Latest revision as of 15:23, 31 December 2010
Створення нового запису джерела даних
Назви файлів мають починатися з коду країни, потім слід використати символ підкреслювання і вказати скорочену назву джерела (звичайно ж, не слід забувати про суфікс назви). Початком назви файла може бути код країни, "international" або "unknown", потім має бути "_" і скорочена назва джерела даних. Приклади: "de_db", "ch_sbb", "sk_atlas", "international_flightstats". Назва файла XML має завершуватися суфіксом ".xml".
Файл XML
Файл XML має посилатися на файл скрипту, який слід використати і у якому має міститися «шаблон адреси», до якого програма додаватиме назву зупинки та інші вказівки щодо надання даних.
Файл скрипту
У файлі скрипту має бути принаймні одна функція, що називається "parseTimetable" і приймає один аргумент. Через цей аргумент функції має передаватися код HTML повністю. Обробку коду виконує сам скрипт. Нижче наведено список функцій, які використовують рушій даних PublicTransport для обробки документа скриптом:
- parseTimetable( html ) (використовується для обробки документів щодо відправлення-прибуття)
- parseJourneys( html ) (використовується для обробки документів маршрутів)
- parsePossibleStops( html ) (використовується для обробки документів пропозицій щодо зупинок)
Допоміжні функції
Передбачено допоміжний об’єкт з назвою "helper", який можна використовувати у скрипті. Частиною об’єкта є такі функції:
- trim( рядок ) (вилучає « » з початку та кінця вказаного рядка)
- stripTags( рядок ) (вилучає всі теґи з вказаного рядка, тобто вилучає <...> або </...>)
- camelCase( рядок ) (змінює регістр літер так, щоб перший символ кожного зі слід був великою літерою, а решта символів – малими літерами)
- extractBlock( рядок, рядок_початку, рядок_кінця ) (повертає рядок між першим входженням рядок_початку і першим входженням рядок_кінця або порожній рядок, якщо у рядку не вдасться знайти підрядків рядок_початку і рядок_кінця. Наприклад, extractBlock("<b>Текст жирним</b>", "<b>", "</b>") поверне "Текст жирним")
- matchTime( рядок, форматування ) (пошук рядка часу у вказаному форматі, наприклад, "hh:mm" повертає список з двох цілих чисел: значень годин і хвилин)
- formatTime( година, хвилина, форматування ) (створює рядок часу у вказаному форматуванні)
- duration( sTime1, sTime2, форматування ) (повертає тривалість періоду часу між sTime1 і sTime2, рядками часу у вказаному форматуванні)
- addMinsToTime( sTime, кількість_доданих_хвилин, форматування ) (обробляє вказаний рядок часу відповідно до вказаного форматування, додає кількість_доданих_хвилин і повертає дані відповідно до форматування)
- splitSkipEmptyParts( рядок, роздільник ) (поділяє вказаний рядок за роздільником, порожні частини буде пропущено)
Додавання оброблених даних щодо відправлення до набору результатів
Скрипту передається об’єкт з назвою "timetableData". Щоб додати оброблені дані щодо відправлення до результату, допишіть щось подібне до наведеного нижче:
// Додавання відправлення timetableData.clear(); timetableData.set( 'TransportLine', 'N6' ); timetableData.set( 'TypeOfVehicle', 'STR' ); timetableData.set( 'Target', 'Bremen Hbf' ); timetableData.set( 'DepartureHour', 1 ); timetableData.set( 'DepartureMinute', 30 ); result.addData( timetableData );
Вказана команда додасть дані щодо відправлення трамвая маршруту "N6", що відправляється о 1:30 до кінцевої зупинки "Bremen Hbf".
Типи даних
Нижче наведено список всіх типів даних, які можна додати до об’єкта timetableData для відправлення, прибуття або маршруту:
- DepartureDate (дата відправлення)
- DepartureHour (обов’язковий параметр для відправлення, прибуття та маршрутів, година відправлення)
- DepartureMinute (обов’язковий параметр для відправлення, прибуття та маршрутів, хвилина відправлення)
- TransportLine (обов’язковий параметр для відправлення або прибуття, назва маршруту громадського транспорту, наприклад, "4", "6S", "S 5", "RB 24122")
- Target (обов’язковий параметр для відправлення або прибуття, кінцева зупинка маршруту або рейсу громадського транспорту)
- TypeOfVehicle (тип засобу пересування)
- FlightNumber (те саме, що і TransportLine, використовується для авіатранспорту)
- Platform (платформа, з якої відправляється або до якої прибуває громадський транспорт)
- Delay (затримка громадського транспорту)
- DelayReason (причина затримки)
- JourneyNews (може містити дані щодо затримки, причини затримки та інші повідомлення)
- JourneyNewsOther (інші новини)
- JourneyNewsLink (містить посилання на сторінку html з новинами маршрутів. Додаватиметься адреса батьківської сторінки, якщо буде встановлено, що шлях до сторінки є відносним (починається з "/"))
- DepartureHourPrognosis (ймовірна година відправлення, типова година відправлення плюс затримка)
- DepartureMinutePrognosis (ймовірна хвилина відправлення, типова хвилина відправлення плюс затримка)
- Operator (компанія-власник засобу пересування)
- DepartureAMorPM (використовується для встановлення відповідності рядку "am" або "pm" для часу відправлення)
- DepartureAMorPMPrognosis (використовується для встановлення відповідності рядку "am" або "pm" для ймовірного часу відправлення)
- ArrivalAMorPM (використовується для встановлення відповідності рядку "am" або "pm" для часу прибуття)
- Status (поточний стан відправлення-прибуття. Використовується для літаків)
- DepartureYear (рік відправлення, буде використано, якщо у даті вказано рік)
- RouteStops (список зупинок прибуття-відправлення до зупинки призначення або список зупинок маршруту від початкової зупинки до кінцевої. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці). Для маршрутів слід використовувати RouteTimesDeparture і RouteTimesArrival, а не RouteTimes)
- RouteTimes (Список часів прибуття-відправлення до зупинки призначення. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці))
- RouteTimesDeparture (Список часів відправлення для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesDeparture, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).)
- RouteTimesArrival (Список часів прибуття для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesArrival, останнє зі значень має містити на один пункт менше (оскільки у першої зупинки немає часу прибуття, лише час відправлення). Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).)
- RouteExactStops (кількість обов’язкових зупинок маршруту. Список зупинок маршруту не є повним від останньої обов’язкової зупинки маршруту)
- RouteTypesOfVehicles (типи засобів пересування, які використовуються для кожного з підмаршрутів цілого маршруту)
- RouteTransportLines (маршрути транспорту, використані для кожного з підмаршрутів цілого маршруту)
- RoutePlatformsDeparture (платформи відправлення, використані для кожного з підмаршрутів цілого маршруту)
- RoutePlatformsArrival (платформи прибуття, використані для кожного з підмаршрутів цілого маршруту)
- RouteTimesDepartureDelay (список затримок у хвилинах для кожного часу відправлення маршруту (RouteTimesDeparture))
- RouteTimesArrivalDelay (список затримок у хвилинах для кожного часу прибуття маршруту (RouteTimesArrival))
Ці дані може бути застосовано лише до маршрутів:
- Duration (тривалість маршруту)
- StartStopName (назва початкової зупинки маршруту)
- StartStopID (ідентифікатор початкової зупинки маршруту)
- TargetStopName (назва зупинки-призначення маршруту)
- TargetStopID (ідентифікатор зупинки-призначення маршруту)
- ArrivalDate (дата прибуття)
- ArrivalHour (обов’язковий параметри для маршрутів, година прибуття)
- ArrivalMinute (обов’язковий параметри для маршрутів, хвилина прибуття)
- Changes (кількість пересадок протягом маршруту)
- TypesOfVehicleInJourney (список типів засобів пересування, використаних під час побудови маршруту)
- Pricing (дані щодо вартості пересування маршрутом)
Ці дані може бути застосовано лише до пропозицій щодо зупинок:
- StopName (обов’язковий параметр для пропозицій щодо зупинок, назва зупинки або станції)
- StopID (ідентифікатор зупинки або станції)
- StopWeight (рівень відповідності пропозиції щодо назви зупинки)