Plasma/Public Transport/Lav serviceudbydere

From KDE UserBase Wiki
Revision as of 09:10, 31 December 2010 by Claus chr (talk | contribs) (Importing a new version from external source)
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 en 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 startpunktet 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.