Plasma/Public Transport/CreateServiceProviders/uk: Difference between revisions

From KDE UserBase Wiki
(Created page with "*'''trim( рядок )''' (вилучає « » з початку та кінця вказаного рядка) *'''stripTags( рядок )''' (вилучає всі ...")
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 39: Line 39:
==== Додавання оброблених даних щодо відправлення до набору результатів ====
==== Додавання оброблених даних щодо відправлення до набору результатів ====


There is an object named "timetableData" given to the script. To add a parsed departure to the result set do something like this:  
Скрипту передається об’єкт з назвою "timetableData". Щоб додати оброблені дані щодо відправлення до результату, допишіть щось подібне до наведеного нижче:  


{{Input|1=
{{Input|1=
Line 51: Line 51:
  result.addData( timetableData );}}
  result.addData( timetableData );}}


This will add a departure of the tram line "N6", departing at 1:30 with the target "Bremen Hbf".  
Вказана команда додасть дані щодо відправлення трамвая маршруту "N6", що відправляється о 1:30 до кінцевої зупинки "Bremen Hbf".  




Line 59: Line 59:
Нижче наведено список всіх типів даних, які можна додати до об’єкта timetableData для відправлення, прибуття або маршруту:  
Нижче наведено список всіх типів даних, які можна додати до об’єкта timetableData для відправлення, прибуття або маршруту:  


*'''DepartureDate''' (The date of the departure)  
*'''DepartureDate''' (дата відправлення)  
*'''DepartureHour''' ('''Mandatory for departures/arrivals/journeys''', the hour of the departure)  
*'''DepartureHour''' ('''обов’язковий параметр для відправлення, прибуття та маршрутів''', година відправлення)  
*'''DepartureMinute''' ('''Mandatory for departures/arrivals/journeys''', the minute of the departure)  
*'''DepartureMinute''' ('''обов’язковий параметр для відправлення, прибуття та маршрутів''', хвилина відправлення)  
*'''TransportLine''' ('''Mandatory for departures/arrivals''', The name of the public transport line, e.g. "4", "6S", "S 5", "RB 24122")  
*'''TransportLine''' ('''обов’язковий параметр для відправлення або прибуття''', назва маршруту громадського транспорту, наприклад, "4", "6S", "S 5", "RB 24122")  
*'''Target''' ('''Mandatory for departures/arrivals''', The target of a journey / of a public transport line)  
*'''Target''' ('''обов’язковий параметр для відправлення або прибуття''', кінцева зупинка маршруту або рейсу громадського транспорту)  
*'''TypeOfVehicle''' (The type of vehicle)  
*'''TypeOfVehicle''' (тип засобу пересування)  
*'''FlightNumber''' (Same as TransportLine, used for flights)  
*'''FlightNumber''' (те саме, що і TransportLine, використовується для авіатранспорту)  
*'''Platform''' (The platform at which the vehicle departs/arrives)  
*'''Platform''' (платформа, з якої відправляється або до якої прибуває громадський транспорт)  
*'''Delay''' (The delay of a public transport vehicle)  
*'''Delay''' (затримка громадського транспорту)  
*'''DelayReason''' (The reason of a delay)  
*'''DelayReason''' (причина затримки)  
*'''JourneyNews''' (Can contain delay / delay reason / other news)  
*'''JourneyNews''' (може містити дані щодо затримки, причини затримки та інші повідомлення)  
*'''JourneyNewsOther''' (Other news (not delay / delay reason))  
*'''JourneyNewsOther''' (інші новини)  
*'''JourneyNewsLink''' (Contains a link to an html page with journey news. The url of the accessor is prepended, if a relative path has been matched (starting with "/"))  
*'''JourneyNewsLink''' (містить посилання на сторінку html з новинами маршрутів. Додаватиметься адреса батьківської сторінки, якщо буде встановлено, що шлях до сторінки є відносним (починається з "/"))  
*'''DepartureHourPrognosis''' (The prognosis for the departure hour, which is the departure hour plus the delay)  
*'''DepartureHourPrognosis''' (ймовірна година відправлення, типова година відправлення плюс затримка)  
*'''DepartureMinutePrognosis''' (The prognosis for the departure minute, which is the departure minute plus the delay)  
*'''DepartureMinutePrognosis''' (ймовірна хвилина відправлення, типова хвилина відправлення плюс затримка)  
*'''Operator''' (The company that is responsible for the journey)  
*'''Operator''' (компанія-власник засобу пересування)  
*'''DepartureAMorPM''' (Used to match the string "am" or "pm" for the departure time)  
*'''DepartureAMorPM''' (використовується для встановлення відповідності рядку "am" або "pm" для часу відправлення)  
*'''DepartureAMorPMPrognosis''' (Used to match the string "am" or "pm" for the prognosis departure time)  
*'''DepartureAMorPMPrognosis''' (використовується для встановлення відповідності рядку "am" або "pm" для ймовірного часу відправлення)  
*'''ArrivalAMorPM''' (Used to match the string "am" or "pm" for the arrival time)  
*'''ArrivalAMorPM''' (використовується для встановлення відповідності рядку "am" або "pm" для часу прибуття)  
*'''Status''' (The current status of the departure/arrival. Currently only used for planes)  
*'''Status''' (поточний стан відправлення-прибуття. Використовується для літаків)  
*'''DepartureYear''' (The year of the departure, to be used when the year is separated from the date)  
*'''DepartureYear''' (рік відправлення, буде використано, якщо у даті вказано рік)  
*'''RouteStops''' (A list of stops of the departure/arrival to its destination stop or a list of stops of the journey from its start to its destination stop. If RouteStops and RouteTimes are both set, they should contain the same number of elements. And elements with equal indices should be associated (the times at which the vehicle is at the stops). For journeys RouteTimesDeparture and RouteTimesArrival should be used instead of RouteTimes)  
*'''RouteStops''' (список зупинок прибуття-відправлення до зупинки призначення або список зупинок маршруту від початкової зупинки до кінцевої. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці). Для маршрутів слід використовувати RouteTimesDeparture і RouteTimesArrival, а не RouteTimes)  
*'''RouteTimes''' (A list of times of the departure/arrival to its destination stop. If RouteStops and RouteTimes are both set, they should contain the same number of elements. And elements with equal indices should be associated (the times at which the vehicle is at the stops))  
*'''RouteTimes''' (Список часів прибуття-відправлення до зупинки призначення. Якщо встановлено обидва значення, RouteStops і RouteTimes, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці))  
*'''RouteTimesDeparture''' (A list of departure times of the journey. If RouteStops and RouteTimesDeparture are both set, the latter should contain one elements less (because the last stop has no departure, only an arrival time). Elements with equal indices should be associated (the times at which the vehicle departs from the stops))  
*'''RouteTimesDeparture''' (Список часів відправлення для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesDeparture, ці значення мають містити однакову кількість пунктів. Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).)  
*'''RouteTimesArrival''' (A list of arrival times of the journey. If RouteStops and RouteTimesArrival are both set, the latter should contain one elements less (because the first stop has no arrival, only a departure time). Elements with equal indices should be associated (the times at which the vehicle arrives at the stops))  
*'''RouteTimesArrival''' (Список часів прибуття для маршруту. Якщо встановлено обидва значення, RouteStops і RouteTimesArrival, останнє зі значень має містити на один пункт менше (оскільки у першої зупинки немає часу прибуття, лише час відправлення). Пункти з однаковими номерами має бути пов’язано між собою (час, протягом якого засіб пересування перебуває на зупинці).)  
*'''RouteExactStops''' (The number of exact route stops. The route stop list isn't complete from the last exact route stop)  
*'''RouteExactStops''' (кількість обов’язкових зупинок маршруту. Список зупинок маршруту не є повним від останньої обов’язкової зупинки маршруту)  
*'''RouteTypesOfVehicles''' (The types of vehicles used for each "sub-journey" of a journey)  
*'''RouteTypesOfVehicles''' (типи засобів пересування, які використовуються для кожного з підмаршрутів цілого маршруту)  
*'''RouteTransportLines''' (The transport lines used for each "sub-journey" of a journey)  
*'''RouteTransportLines''' (маршрути транспорту, використані для кожного з підмаршрутів цілого маршруту)  
*'''RoutePlatformsDeparture''' (The platforms of departures used for each "sub-journey" of a journey)  
*'''RoutePlatformsDeparture''' (платформи відправлення, використані для кожного з підмаршрутів цілого маршруту)  
*'''RoutePlatformsArrival''' (The platforms of arrivals used for each "sub-journey" of a journey)  
*'''RoutePlatformsArrival''' (платформи прибуття, використані для кожного з підмаршрутів цілого маршруту)  
*'''RouteTimesDepartureDelay''' (A list of delays in minutes for each departure time of a route (RouteTimesDeparture))  
*'''RouteTimesDepartureDelay''' (список затримок у хвилинах для кожного часу відправлення маршруту (RouteTimesDeparture))  
*'''RouteTimesArrivalDelay''' (A list of delays in minutes for each arrival time of a route (RouteTimesArrival))
*'''RouteTimesArrivalDelay''' (список затримок у хвилинах для кожного часу прибуття маршруту (RouteTimesArrival))


''Ці дані може бути застосовано лише до маршрутів:''
''Ці дані може бути застосовано лише до маршрутів:''


*'''Duration''' (The duration of a journey)  
*'''Duration''' (тривалість маршруту)  
*'''StartStopName''' (The name of the starting stop of a journey)  
*'''StartStopName''' (назва початкової зупинки маршруту)  
*'''StartStopID''' (The ID of the starting stop of a journey)  
*'''StartStopID''' (ідентифікатор початкової зупинки маршруту)  
*'''TargetStopName''' (The name of the target stop of a journey)  
*'''TargetStopName''' (назва зупинки-призначення маршруту)  
*'''TargetStopID''' (The ID of the target stop of a journey)  
*'''TargetStopID''' (ідентифікатор зупинки-призначення маршруту)  
*'''ArrivalDate''' (The date of the arrival)  
*'''ArrivalDate''' (дата прибуття)  
*'''ArrivalHour''' ('''Mandatory for journeys''', The hour of the arrival)  
*'''ArrivalHour''' ('''обов’язковий параметри для маршрутів''', година прибуття)  
*'''ArrivalMinute''' ('''Mandatory for journeys''', The minute of the arrival)  
*'''ArrivalMinute''' ('''обов’язковий параметри для маршрутів''', хвилина прибуття)  
*'''Changes''' (The number of changes between different vehicles in a journey)  
*'''Changes''' (кількість пересадок протягом маршруту)  
*'''TypesOfVehicleInJourney''' (A list of vehicle types used in a journey)  
*'''TypesOfVehicleInJourney''' (список типів засобів пересування, використаних під час побудови маршруту)  
*'''Pricing''' (Information about the pricing of a journey)
*'''Pricing''' (дані щодо вартості пересування маршрутом)


''Ці дані може бути застосовано лише до пропозицій щодо зупинок:''
''Ці дані може бути застосовано лише до пропозицій щодо зупинок:''


*'''StopName''' ('''Mandatory for stop suggestions''', The name of a stop / station)  
*'''StopName''' ('''обов’язковий параметр для пропозицій щодо зупинок''', назва зупинки або станції)  
*'''StopID''' (The ID of a stop / station)  
*'''StopID''' (ідентифікатор зупинки або станції)  
*'''StopWeight''' (The weight of a stop suggestion)
*'''StopWeight''' (рівень відповідності пропозиції щодо назви зупинки)


{{Info_(uk)|1=Згодом тут буде наведено шаблони файлів XML і скрипту. Зараз же ви можете скористатися прикладами цих файлів для вже створених записів джерел даних.}}
{{Info_(uk)|1=Згодом тут буде наведено шаблони файлів XML і скрипту. Зараз же ви можете скористатися прикладами цих файлів для вже створених записів джерел даних.}}

Latest revision as of 15:23, 31 December 2010

Other languages:

Створення нового запису джерела даних

Назви файлів мають починатися з коду країни, потім слід використати символ підкреслювання і вказати скорочену назву джерела (звичайно ж, не слід забувати про суфікс назви). Початком назви файла може бути код країни, "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 (рівень відповідності пропозиції щодо назви зупинки)

Інформація

Згодом тут буде наведено шаблони файлів XML і скрипту. Зараз же ви можете скористатися прикладами цих файлів для вже створених записів джерел даних.