Exportni skripty

V nove verzi beta23 byl uvolnen k testovani novy system pro exportni skripty. Jeste ale nejsou hotove vsechny planovane nastroje, ani nen hotova zadna dokumentace.

Lecos se da ale okoukat z ukazkovych ctyr exportu, ktere jsou soucasti instalace a ze zdejsich prispevku.

Skriptovaci jazyk je Pascal.

Jako exportni skript je detekovany kazdy soubor se jmenem *.gge.pas v datovem adresari Geogetu. Pripona .pas je tam z toho duvodu, aby se skripty daly pohodne editovat nastroji se zvyraznovanim syntxe podle pripony.

Pokud bude ve skripty syntakticka chyba, nebude se nabizet k pouziti. Nastroje na odladovani skriptu do geogetu planuji, ale jeste nejsou. Vydrzte.

Kazdy skript musi definovat funkce:

function ExportExtension: string;

  • definuje priponu exportovaneho souboru

function ExportDescription: string;

  • definuje slovni popis exportu

function ExportHeader: string;

  • definuje co se ma zapsat na zacatek exportovaneho souboru

function ExportFooter: string;

  • definuje co se ma zapsat na konec exportovaneho souboru

function ExportPoint: string;
-je volano pro kazdy exportovany bod a definuje co se ma zapsat do exportovaneho souboru

function ExportAfter(value: string): string;

  • volitelna fuknce, ktera je zavolana po finalnim zapsani exportovaneho souboru na disk. Jmeno tohoto zapsaneho souboru je predavano jako parametr.

Pri volani kazde exportni funkce je predvyplneno mnoho promennych s informacema. Napriklad promenne zacinajici na GC_ obsahuji informace o exportovanem bodu. Jsou k dispozic take uzitecne funkce. Oboje je okoukatelne v existujicich exportnich makrech.

Seznam promennych sem nekdy take hodim, stejne jako seznam funkci. Ten planuji navic postupne jeste rozsirovat.

Nyni neco o promennych pouzitelnych ve skriptech. Vsechny promenne jsou v UTF-8 kodovani. Pokud potrebujete jine kodovani, musi se pouzit nejaka z konverznich funkci, o kterych bude rec nekdy priste.

Tak tedy:

Geoget_Version

  • Retezec s verzi GeoGetu.

CRLF

  • retezec obsahujici odradkovani.

GC_ID

  • kod waypointu geocache, tedy takove to GC12345

GC_Lat

  • retezec se zemepisnou sirkou ve formatu 50.12345

GC_Lon

  • retezec se zemepisnou delkou ve formatu 14.12345

GC_GUID

  • GUID identifikator cache. V pripade pridaneho waypintu odkazuje na rodicovskou cache.

GC_URL

  • URL odkaz na listing na serveru www.geocaching.com U waypointu je to odkaz na rodicovskou cache.

GC_Name

  • jmeno cache ci waypointu.

GC_ParentName

  • u waypointu obsahuje jmeno rodicovske cache.

GC_Author

  • jmeno autora cache

GC_Type

  • druh cache

GC_Size

  • slovni popis velikosti cache

GC_Difficulty

  • obtiznost cache jako retezec ve formatu napriklad 1.5

GC_Terrain

  • obtiznost terenu cache jako retezec ve formatu napriklad 1.5

GC_Comment

  • uzivatelova poznamka

GC_ShortDescription

  • kratky popis z listingu

GC_LongDescription

  • dlouhy popis z listingu

GC_Hint

  • dekodovany hint. Pkud jej chcete v zakodovane forme, lze na to pouzit konverzni funkce!

GC_IsDisabled

  • true, pokud je cache prave disablovana

GC_IsArchived

  • true, pokud je cache prave archivovana

GC_Hidden

  • TDateTime s datumem ukryti cache

GC_LastFound

  • TDateTime s datumem posledniho nalezu

GC_Updated

  • TDateTime s datumem posledni aktualizace zaznamu v databazi

GC_Found

  • TDateTime s datumem vaseho nalezu.

GC_FoundTime

  • TDateTime s casem vaseho nalezu.

GC_IsFound

  • True, pokud je cache vami nalezena

GC_IsWaypoint

  • True, pokud se jedna o waypoint a ne o cache.

GC_IsUserWaypoint

  • True, pokud se jedna o uzivateem pridany waypoint.

GC_TypeID

  • jednopismenne oznaceni druhu cache.

GC_IsValidCoord

  • true, pokud souradnice splnuji omezeni definovane v konfiguraci geogetu.

GC_Tag

  • zkratkovite oznaceni druhu velikosti a obtiznosti cache v podobe ctyr znaku. Napriklad TM12, UL44, atd.

GC_FullName

  • u cache obsahuje totez co GC_Name. V pripade waypointu je za nim jeste v zavorce jmeno rodicovske cache.

GC_HaveListing

  • true, jestlize je znam listing cache.

GC_HaveFinal

  • true, jetlize je pritomen waypoint s nazvem ‘final’

GC_NameSplit

  • posledni znak kody waypointu cache.

GC_HaveWaypoint

  • true, pokud cache ma nejake waypointy.

Funkce s popisem cache:

function GC_LogCount: integer

  • vraci pocet pritomnych uzivatelskych logu. pres cyklus "for n := 0 to GC_LogCount - 1 do" lze pak projit vsechny logy a promennou n pouzit jako index pro nasledujici funkce.

function GC_LogType(value: integer): string

  • druh logu. (‘found it’, atd.)

function GC_LogDate(value: integer): TDateTime

  • datum logu

function GC_LogFinder(value: integer): string

  • jmeno autora logu

function GC_LogText(value: integer): string

  • vlastni text logu

krome mnoha standardnich funkci skriptovaciho engine jsou k dispozizi tyto specielni funkce:

function UtfToAscii(Value: string): string

  • provede odstraneni diakritiky

function UtfToGps(Value: string): string

  • odstran diakritiku, prevede retezec na velka pismena a propusti jen vybranou mnozinu specielnich symbolu tak, aby vysledn retezec byl kompatibilni s nejuspornejsim sestibitovym kodovanim u Garmin GPS.

function UtfToAnsi(Value: string): string

  • prevede retezec do ANSI kodovani.

function CData(Value: string): string

  • pouziva se na zakodovani dat pro XML element.

function Rot13(Value: string): string

  • provede ROT13 kodovani

function Reverse(Value: string): string

  • obrati obsah pozpatku.

function RunExec(Value: string): integer

  • zavola externi program a vraci jeho navratovy kod.

procedure RunShell(Value: string)

  • zavola obsah pres shel operacniho systemu. Napriklad pokud je value URL adresa webove stranky, bude otevrena ve vasem defaultnim prohlizeci.

function RenameFile(const OldName, NewName: string): Boolean

  • prejmenuje soubor

function CopyFile(const OldName, NewName: string): Boolean

  • zkopiruje soubor

function DeleteFile(const FileName: string): Boolean

  • vymaze soubor

function FileExists(const FileName: string): Boolean

  • test, jestli soubor existuje

function QuoteStr(const Value: string; Quote: Char): string

  • zabali retezec do udaneho znaku, a pokud se uvnitr ten znak vyskytuje, zdvoji jej.

function ReplaceString(Value, Search, Replace: string): string

  • nahradi v retezci vsechny vyskyty jednoto retezce za druhy.

Aktualni dokumentace je dostupna na novych webovych strankach GeoGetu.