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

From KDE UserBase Wiki
(Importing a new version from external source)
No edit summary
 
(26 intermediate revisions by 2 users not shown)
Line 10: Line 10:




=== The script file  ===
=== Scriptfilen ===


The script file should at least contain a function named "parseTimetable", with one argument. The complete HTML body will be given to the script through that argument. It's then up to the script to parse the document. Here's a list of functions that get called by the PublicTransport data engine to let the script parse a document:
Scriptfilen skal som minimum indeholde en funktion ved navn "parseTimetable" med ét argument. Hele HTML-indholdet overføres til scriptet igennem dette argument. Det er op til scriptet at fortolke dokumentet. Her er en liste med funktioner, som '''Public Transports''' data-motor kalder for at lade scriptet fortolke et dokument.


*'''parseTimetable( html )''' (Used to parse departure/arrival documents)  
*'''parseTimetable( html )''' (Bruges til at fortolke dokumenter med ankomster og afgange)  
*'''parseJourneys( html )''' (Used to parse journey documents)  
*'''parseJourneys( html )''' (Bruges til at fortolke dokumenter med rejser)  
*'''parsePossibleStops( html )''' (Used to parse stop suggestion documents)
*'''parsePossibleStops( html )''' (Bruges til at fortolke dokumenter med forslag)


   
   


==== Helper Functions  ====
==== Hjælpefunktioner ====


There is a helper object named "helper" which can be used by the script. It has these functions:  
Der er et hjælpeobjekt kaldet "helper", som scriptet kan bruge. Det har følgende funktioner:  


*'''trim( string )''' (Removes ' ' from the beginning and the end of the given string)  
*'''trim( string )''' (Fjerner ' ' fra begyndelsen og enden af den givne streng)  
*'''stripTags( string )''' (Removes all tags from the given string, ie. removing <...> or </...>)  
*'''stripTags( string )''' (Fjerner alle tags fra den givne streng, dvs. fjerner <...> or </...>)  
*'''camelCase( string )''' (The first character of each word will be upper case, all others lower case)  
*'''camelCase( string )''' (Første bogstav i hvert ord bliver stort, alle de andre bliver små)  
*'''extractBlock( string, beginString, endString )''' (Returns the string between the first occurance of beginString and the first occurance of endString, or an empty string if beginString or endString couldn't be found in string. For example ''extractBlock("<b>Bold Text</b>", "<b>", "</b>")'' returns ''"Bold Text"'')  
*'''extractBlock( string, beginString, endString )''' (Returnerer stringen imellem den første forekomst af beginString og den første forekomst af endString eller en tom streng, hvis beginString eller endString ikke findes i strengen. For eksempel vil ''extractBlock("<b>Bold Text</b>", "<b>", "</b>")'' returnere ''"Bold Text"'')  
*'''matchTime( string, formatString )''' (Searches for a time string of the given format, eg. "hh:mm" and returns a list with two integers, the hour and the minute)  
*'''matchTime( string, formatString )''' (Søger efter et streng, som angiver tid i det givne format, fx "hh:mm" og returnerer to heltal, timen og minutterne)  
*'''formatTime( hour, minute, formatString )''' (Formats the given time using the given formatString)  
*'''formatTime( hour, minute, formatString )''' (Formatterer den givne tid ved brug af den givne formatString)  
*'''duration( sTime1, sTime2, formatString )''' (Returns the duration in minutes from sTime1 to sTime2, which are time strings in the given format)  
*'''duration( sTime1, sTime2, formatString )''' (Returnerer varigheden i minutter fra sTime1 til sTime2, som er tidsstrenge i det givne format)  
*'''addMinsToTime( sTime, minsToAdd, formatString )''' (Parses the given time using the given formatString, adds minsToAdd minutes and format it again using formatString)  
*'''addMinsToTime( sTime, minsToAdd, formatString )''' (Fortolker den givne tid ved brug af formatString, lægger minsToAdd minutter til og formatterer den igen ved brug af formatString)  
*'''splitSkipEmptyParts( string, separator )''' (Splits the given string using the given separator, while skipping empty parts)
*'''splitSkipEmptyParts( string, separator )''' (Opsplitter den givne streng ved den givne separator, idet tomme dele springes over)






==== Add Parsed Departures to the Result Set  ====
=== Føj fortolkede afgange til resultatlisten ===


There is an object named "timetableData" given to the script. To add a parsed departure to the result set do something like this:  
Der gives et objekt ved navn "timetableData" til scriptet. For at føje fortolkede afgange til resultaterne skal du gøre noget i retning af dette:  


{{Input|1=
{{Input|1=
Line 50: Line 50:
  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".  
Dette vil tilføje en afgang af sporvognslinje "N6" med afgang kl 1:30 mod "Bremen Hbf".  






==== Information Types  ====
==== Typer af informatiom ====


Here is a list of all information types you can add to the timetableData object for a departure/arrival/journey:  
Her er en liste over alle de typer information, som du kan føje til objektet timetableData for en afgang, ankomst eller rejse:  


*'''DepartureDate''' (The date of the departure)  
*'''DepartureDate''' (Datoen for afgangen)  
*'''DepartureHour''' ('''Mandatory for departures/arrivals/journeys''', the hour of the departure)  
*'''DepartureHour''' ('''Obligatorisk for afgange, ankomster og rejser''', afgangstiden)  
*'''DepartureMinute''' ('''Mandatory for departures/arrivals/journeys''', the minute of the departure)  
*'''DepartureMinute''' ('''Obligatorisk for afgange, ankomster og rejser''', minuttallet for afgangen)  
*'''TransportLine''' ('''Mandatory for departures/arrivals''', The name of the public transport line, e.g. "4", "6S", "S 5", "RB 24122")  
*'''TransportLine''' ('''Obligatorisk for afgange og ankomster''', Betegnelsen for transportlinjen, fx. "4", "6S", "S 5", "RB 24122")  
*'''Target''' ('''Mandatory for departures/arrivals''', The target of a journey / of a public transport line)  
*'''Target''' ('''Obligatorisk for afgange og ankomster''', Målet for en rejse eller en transportlinje)  
*'''TypeOfVehicle''' (The type of vehicle)  
*'''TypeOfVehicle''' (transporttypen)  
*'''FlightNumber''' (Same as TransportLine, used for flights)  
*'''FlightNumber''' (Det samme som TransportLine, brugt for fly)  
*'''Platform''' (The platform at which the vehicle departs/arrives)  
*'''Platform''' (Perronen, hvor transportmidlet ankommer eller afgår)  
*'''Delay''' (The delay of a public transport vehicle)  
*'''Delay''' (Forsinkelsen)  
*'''DelayReason''' (The reason of a delay)  
*'''DelayReason''' (Årsagen til en forsinkelse)  
*'''JourneyNews''' (Can contain delay / delay reason / other news)  
*'''JourneyNews''' (Kan indeholde forsinkelse, årsag til forsinkelse og andre nyheder)  
*'''JourneyNewsOther''' (Other news (not delay / delay reason))  
*'''JourneyNewsOther''' (Andre nyheder (som ikke har med forsinkelser at gøre))  
*'''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''' (Indeholder links til en webside med nyheder om rejsen. Accessorens url sættes foran, hvis der findes en relativ sti (begyndende med "/"))  
*'''DepartureHourPrognosis''' (The prognosis for the departure hour, which is the departure hour plus the delay)  
*'''DepartureHourPrognosis''' (En prognose for afgangstimetallet, som er timen for afgangstid plus forsinkelse)  
*'''DepartureMinutePrognosis''' (The prognosis for the departure minute, which is the departure minute plus the delay)  
*'''DepartureMinutePrognosis''' (En prognose for afgangsminuttallet, som er minuttallet for afgangstid plus forsinkelse)  
*'''Operator''' (The company that is responsible for the journey)  
*'''Operator''' (Selskabet, som er ansvarlig for rejsen)  
*'''DepartureAMorPM''' (Used to match the string "am" or "pm" for the departure time)  
*'''DepartureAMorPM''' (Bruges til at matche strengene "am" og "pm" i afgangstiden)  
*'''DepartureAMorPMPrognosis''' (Used to match the string "am" or "pm" for the prognosis departure time)  
*'''DepartureAMorPMPrognosis''' (Bruges til at matche strengene "am" og "pm" i prognosen for afgangstiden)  
*'''ArrivalAMorPM''' (Used to match the string "am" or "pm" for the arrival time)  
*'''ArrivalAMorPM''' (Bruges til at matche strengene "am" og "pm" i ankomsttiden)  
*'''Status''' (The current status of the departure/arrival. Currently only used for planes)  
*'''Status''' (Den aktuelle status for ankomst og afgang. Bruges i øjeblikket kun for fly)  
*'''DepartureYear''' (The year of the departure, to be used when the year is separated from the date)  
*'''DepartureYear''' (Året for afgangen. Bruges når året et skilt fra datoen)  
*'''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''' (En liste af stationer eller stoppesteder på ruten for afgange og ankomster eller af stop på en rejse. Hvis både RouteStops og RouteTimes er sat, så skal de have det samme antal elementer, og elementer med samme indeks skal høre sammen (tiden, hvor man kommer til stationen). For rejser bør RouteTimesDeparture og RouteTimesArrival bruges i stedet for 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''' (En liste af tider for stop på ruten for afgange og ankomster. Hvis både RouteStops og RouteTimes er sat, så skal de have det samme antal elementer, og elementer med samme indeks skal høre sammen (tiden, hvor man kommer til stationen))
*'''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''' (En liste af tider for stop på en rejse. Hvis både RouteStops og RouteTimesDeparture er sat, så skal den sidste have ét element mindre end den første (det sidste stop har ingen afgangstid, kun en ankomsttid), og elementer med samme indeks skal høre sammen (tiden, hvor man afgår fra stationen))
*'''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''' (En liste af tider for stop på en rejse. Hvis både RouteStops og RouteTimesArrival er sat, så skal den sidste have ét element mindre end den første (det første stop har ingen ankomsttid, kun en afgangstid), og elementer med samme indeks skal høre sammen (tiden, hvor man ankommer til stationen))
*'''RouteExactStops''' (The number of exact route stops. The route stop list isn't complete from the last exact route stop)  
*'''RouteExactStops''' (Antaller af fuldstændige stop. Listen RouteStops indeholder ikke hvert stop efter det sidste fuldstændige stop)  
*'''RouteTypesOfVehicles''' (The types of vehicles used for each "sub-journey" of a journey)  
*'''RouteTypesOfVehicles''' (Transporttype for hver af "delrejserne" af en rejse)  
*'''RouteTransportLines''' (The transport lines used for each "sub-journey" of a journey)  
*'''RouteTransportLines''' (Transportlinjerne brugt i hver af "delrejserne" af en rejse)  
*'''RoutePlatformsDeparture''' (The platforms of departures used for each "sub-journey" of a journey)  
*'''RoutePlatformsDeparture''' (Perroner for afgang  i hver af "delrejserne" af en rejse)  
*'''RoutePlatformsArrival''' (The platforms of arrivals used for each "sub-journey" of a journey)  
*'''RoutePlatformsArrival''' (Perroner for ankomst i hver af "delrejserne" af en rejse)  
*'''RouteTimesDepartureDelay''' (A list of delays in minutes for each departure time of a route (RouteTimesDeparture))  
*'''RouteTimesDepartureDelay''' (En liste af forsinkelser i minutter for hver afgang i en rute (RouteTimesDeparture))  
*'''RouteTimesArrivalDelay''' (A list of delays in minutes for each arrival time of a route (RouteTimesArrival))
*'''RouteTimesArrivalDelay''' (En liste af forsinkelser i minutter for hver ankomst i en rute (RouteTimesArrival))


''These information elements only apply to journeys:''
''Disse informationselementer er kun relevante for rejser:''


*'''Duration''' (The duration of a journey)  
*'''Duration''' (Varighed af en rejse)  
*'''StartStopName''' (The name of the starting stop of a journey)  
*'''StartStopName''' (Navnet på rejsens begyndelsespunkt)  
*'''StartStopID''' (The ID of the starting stop of a journey)  
*'''StartStopID''' (ID for begyndelsespunktet af en rejse)  
*'''TargetStopName''' (The name of the target stop of a journey)  
*'''TargetStopName''' (Navnet på rejsens slutpunktet)  
*'''TargetStopID''' (The ID of the target stop of a journey)  
*'''TargetStopID''' (ID for rejsens slutpunkt)  
*'''ArrivalDate''' (The date of the arrival)  
*'''ArrivalDate''' (Ankomstdato)  
*'''ArrivalHour''' ('''Mandatory for journeys''', The hour of the arrival)  
*'''ArrivalHour''' ('''Obligatorisk for rejser''', Ankomsttimen)  
*'''ArrivalMinute''' ('''Mandatory for journeys''', The minute of the arrival)  
*'''ArrivalMinute''' ('''Obligatorisk for rejser''', Minuttallet for ankomsten)  
*'''Changes''' (The number of changes between different vehicles in a journey)  
*'''Changes''' (Antallet af skift på rejsen)  
*'''TypesOfVehicleInJourney''' (A list of vehicle types used in a journey)  
*'''TypesOfVehicleInJourney''' (En liste over transportmidler brug på rejsen)  
*'''Pricing''' (Information about the pricing of a journey)
*'''Pricing''' (Information om rejsens pris)


''These information elements only apply to stop suggestions: ''
''Disse informationselementer'' er kun relevante for forslag til stationer:''


*'''StopName''' ('''Mandatory for stop suggestions''', The name of a stop / station)  
*'''StopName''' ('''Obligatorisk for stationsforslag''', Stationens eller stoppestedets navn)  
*'''StopID''' (The ID of a stop / station)  
*'''StopID''' (ID for station eller stoppested)  
*'''StopWeight''' (The weight of a stop suggestion)
*'''StopWeight''' (En stationsforslags "vægt")


{{Info|1=There will be templates for an XML and a script file later. Until then, you can check out the existing service providers.}}
{{Info/da|1=Der kommer en skabelon til en XML- og scriptfil senere. Indtil da kan du se de eksisterende serviceudbydere.}}


[[Category:Plasma]]
[[Category:Plasma/da]]
[[Category:Widgets]]
[[Category:Widgets/da]]
[[Category:Home and Hobby]]
[[Category:Hjem og hobby/da]]

Latest revision as of 08:17, 18 March 2011

Other languages:

Lav en ny serviceudbyder

Filnavnene begynder med landekoden efterfulgt af et understregningstegn og et kort navn (og selvfølgelig en filtypebetegnelse). Filnavnet begynder med landekoden eller "international" eller "unknown" fulgt af "_" og et kort navn på serviceudbyderen, fx "de_db", "ch_ssb", "sk_atlas" og "international_flightstats". XML-filerne ender med ".xml".


XML-filen

XML-filen linker til scriptfilen, som skal bruges of indeholder en "rå url", som navnet på stoppestedet og anden information indsættes i.


Scriptfilen

Scriptfilen skal som minimum indeholde en funktion ved navn "parseTimetable" med ét argument. Hele HTML-indholdet overføres til scriptet igennem dette argument. Det er op til scriptet at fortolke dokumentet. Her er en liste med funktioner, som Public Transports data-motor kalder for at lade scriptet fortolke et dokument.

  • parseTimetable( html ) (Bruges til at fortolke dokumenter med ankomster og afgange)
  • parseJourneys( html ) (Bruges til at fortolke dokumenter med rejser)
  • parsePossibleStops( html ) (Bruges til at fortolke dokumenter med forslag)


Hjælpefunktioner

Der er et hjælpeobjekt kaldet "helper", som scriptet kan bruge. Det har følgende funktioner:

  • trim( string ) (Fjerner ' ' fra begyndelsen og enden af den givne streng)
  • stripTags( string ) (Fjerner alle tags fra den givne streng, dvs. fjerner <...> or </...>)
  • camelCase( string ) (Første bogstav i hvert ord bliver stort, alle de andre bliver små)
  • extractBlock( string, beginString, endString ) (Returnerer stringen imellem den første forekomst af beginString og den første forekomst af endString eller en tom streng, hvis beginString eller endString ikke findes i strengen. For eksempel vil extractBlock("<b>Bold Text</b>", "<b>", "</b>") returnere "Bold Text")
  • matchTime( string, formatString ) (Søger efter et streng, som angiver tid i det givne format, fx "hh:mm" og returnerer to heltal, timen og minutterne)
  • formatTime( hour, minute, formatString ) (Formatterer den givne tid ved brug af den givne formatString)
  • duration( sTime1, sTime2, formatString ) (Returnerer varigheden i minutter fra sTime1 til sTime2, som er tidsstrenge i det givne format)
  • addMinsToTime( sTime, minsToAdd, formatString ) (Fortolker den givne tid ved brug af formatString, lægger minsToAdd minutter til og formatterer den igen ved brug af formatString)
  • splitSkipEmptyParts( string, separator ) (Opsplitter den givne streng ved den givne separator, idet tomme dele springes over)


Føj fortolkede afgange til resultatlisten

Der gives et objekt ved navn "timetableData" til scriptet. For at føje fortolkede afgange til resultaterne skal du gøre noget i retning af dette:

// Add departure
 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 );

Dette vil tilføje en afgang af sporvognslinje "N6" med afgang kl 1:30 mod "Bremen Hbf".


Typer af informatiom

Her er en liste over alle de typer information, som du kan føje til objektet timetableData for en afgang, ankomst eller rejse:

  • DepartureDate (Datoen for afgangen)
  • DepartureHour (Obligatorisk for afgange, ankomster og rejser, afgangstiden)
  • DepartureMinute (Obligatorisk for afgange, ankomster og rejser, minuttallet for afgangen)
  • TransportLine (Obligatorisk for afgange og ankomster, Betegnelsen for transportlinjen, fx. "4", "6S", "S 5", "RB 24122")
  • Target (Obligatorisk for afgange og ankomster, Målet for en rejse eller en transportlinje)
  • TypeOfVehicle (transporttypen)
  • FlightNumber (Det samme som TransportLine, brugt for fly)
  • Platform (Perronen, hvor transportmidlet ankommer eller afgår)
  • Delay (Forsinkelsen)
  • DelayReason (Årsagen til en forsinkelse)
  • JourneyNews (Kan indeholde forsinkelse, årsag til forsinkelse og andre nyheder)
  • JourneyNewsOther (Andre nyheder (som ikke har med forsinkelser at gøre))
  • JourneyNewsLink (Indeholder links til en webside med nyheder om rejsen. Accessorens url sættes foran, hvis der findes en relativ sti (begyndende med "/"))
  • DepartureHourPrognosis (En prognose for afgangstimetallet, som er timen for afgangstid plus forsinkelse)
  • DepartureMinutePrognosis (En prognose for afgangsminuttallet, som er minuttallet for afgangstid plus forsinkelse)
  • Operator (Selskabet, som er ansvarlig for rejsen)
  • DepartureAMorPM (Bruges til at matche strengene "am" og "pm" i afgangstiden)
  • DepartureAMorPMPrognosis (Bruges til at matche strengene "am" og "pm" i prognosen for afgangstiden)
  • ArrivalAMorPM (Bruges til at matche strengene "am" og "pm" i ankomsttiden)
  • Status (Den aktuelle status for ankomst og afgang. Bruges i øjeblikket kun for fly)
  • DepartureYear (Året for afgangen. Bruges når året et skilt fra datoen)
  • RouteStops (En liste af stationer eller stoppesteder på ruten for afgange og ankomster eller af stop på en rejse. Hvis både RouteStops og RouteTimes er sat, så skal de have det samme antal elementer, og elementer med samme indeks skal høre sammen (tiden, hvor man kommer til stationen). For rejser bør RouteTimesDeparture og RouteTimesArrival bruges i stedet for RouteTimes)
  • RouteTimes (En liste af tider for stop på ruten for afgange og ankomster. Hvis både RouteStops og RouteTimes er sat, så skal de have det samme antal elementer, og elementer med samme indeks skal høre sammen (tiden, hvor man kommer til stationen))
  • RouteTimesDeparture (En liste af tider for stop på en rejse. Hvis både RouteStops og RouteTimesDeparture er sat, så skal den sidste have ét element mindre end den første (det sidste stop har ingen afgangstid, kun en ankomsttid), og elementer med samme indeks skal høre sammen (tiden, hvor man afgår fra stationen))
  • RouteTimesArrival (En liste af tider for stop på en rejse. Hvis både RouteStops og RouteTimesArrival er sat, så skal den sidste have ét element mindre end den første (det første stop har ingen ankomsttid, kun en afgangstid), og elementer med samme indeks skal høre sammen (tiden, hvor man ankommer til stationen))
  • RouteExactStops (Antaller af fuldstændige stop. Listen RouteStops indeholder ikke hvert stop efter det sidste fuldstændige stop)
  • RouteTypesOfVehicles (Transporttype for hver af "delrejserne" af en rejse)
  • RouteTransportLines (Transportlinjerne brugt i hver af "delrejserne" af en rejse)
  • RoutePlatformsDeparture (Perroner for afgang i hver af "delrejserne" af en rejse)
  • RoutePlatformsArrival (Perroner for ankomst i hver af "delrejserne" af en rejse)
  • RouteTimesDepartureDelay (En liste af forsinkelser i minutter for hver afgang i en rute (RouteTimesDeparture))
  • RouteTimesArrivalDelay (En liste af forsinkelser i minutter for hver ankomst i en rute (RouteTimesArrival))

Disse informationselementer er kun relevante for rejser:

  • Duration (Varighed af en rejse)
  • StartStopName (Navnet på rejsens begyndelsespunkt)
  • StartStopID (ID for begyndelsespunktet af en rejse)
  • TargetStopName (Navnet på rejsens slutpunktet)
  • TargetStopID (ID for rejsens slutpunkt)
  • ArrivalDate (Ankomstdato)
  • ArrivalHour (Obligatorisk for rejser, Ankomsttimen)
  • ArrivalMinute (Obligatorisk for rejser, Minuttallet for ankomsten)
  • Changes (Antallet af skift på rejsen)
  • TypesOfVehicleInJourney (En liste over transportmidler brug på rejsen)
  • Pricing (Information om rejsens pris)

Disse informationselementer er kun relevante for forslag til stationer:

  • StopName (Obligatorisk for stationsforslag, Stationens eller stoppestedets navn)
  • StopID (ID for station eller stoppested)
  • StopWeight (En stationsforslags "vægt")

Information

Der kommer en skabelon til en XML- og scriptfil senere. Indtil da kan du se de eksisterende serviceudbydere.