téměř automatické statistiky na geocaching.com

je pěkný, když má někdo v profilu na geocaching.com nějaké pěkné statistiky. jak těchto statistik dosáhnout je vcelku jednoduché, můžeme použít nějaky program pro správu keší, a třeba GSAK, nebo GeoGet nám statistiky nějakým způsobem vygeneruje. člověk je ale tvor líný, a tak hledá jak si celou činnost co nejvíce usnadnit

program GSAK nepoužívám, prostě mám nějak rád GeoGet. ten sice v základu jakýsi pokus o statistiky vygeneruje, ale bez pomoci třetí strany to není ono. používal jsem tedy ještě nedávno program GeoStatGen, ten nabízí relativně široké možnosti přizpůsobení, ale jeho vývoj nějak ustanul a tak se objevil nástupce ve formě GgStat. po jeho „instalaci“ se vám na liště v geogetu objeví dvě nové ikonky, z nichž jedna volá skript perlu, a druhá samostatný exe soubor.

perl v pc nemám, tak jsem zkusil ten exe. po nastaveni několika proměnných v makru stačí kliknout a statistiky (ne nepodobné těm z GSAKu) jsou na světě.

no jo, ale teď nastává ta část, kdy musíte obsah html souboru zkopírovat do schránky, a v nastavení profilu na geocaching.com jej ručně vložit, a dát uložit. to je hezké kdyby se to dělalo jednou, ale dělat to po každé nalezené keši je pěkná otrava.

jako spravnou PHP lamu mě napadlo použít něco jako include, pokud by to stránka geocaching dovolila. ale medwyn_cz mě upozornil, že na stránkach, které běží pod ASP prostě PHP include nepůjde, a navíc přihodil malou radu, kterou zahlíd na něčím profilu

<object data="http://www.hradnik.cz/geocaching/index.html" type="text/html" width="98%" height="700">http://www.hradnik.cz/geocaching/index.html</object>

tohle už vypadá slibně! po několika pokusech s nastavením rozměrů už se mi v profilu ukazovaly statistiky, které se tahaly z mého webu! stačilo přidat

<!--[if IE]> Error, Internet Explorer has very poor support for tag &amp;lt;object&amp;gt;
and geocaching.com blocking other options like iframe, js...
You will find my stats <a href="http://gc.mikrom.cz/stats.html">here</a>.
<![endif]-->
<!--[if !IE]> <--><object type="text/html" data="http://gc.mikrom.cz/stats.html" width="790" height="4200"> Some error. You'll find my stats <a href="http://gc.mikrom.cz/stats.html">here</a>.</object><!-->
<![endif]-->

teď jsme sice ve fázi kdy se nám tahají data z jiného webu, ale páci to ušetřilo leda tak v tom, že nyní stačí na web nahrát celý soubor a nemusíme se babrat se zdrojákem. vzpomněl jsem si proto na FTP((FileTransferProtocol)) a po chvilce už věděl, že se s FTP dá vcelku použitelně komunikovat přes příkazový řádek. po pár planých pokusech jsem vygooglil řešení v podobě následujících řádků upload.stats.bat

:: piseme bataky
:: http://hps.mallat.cz/view.php?cisloclanku=2003070903
:: code
:: http://wiki.trivialbeing.net/Right_Click_Upload_to_Internet_via_Batch_File @echo off setlocal
:: Variables
set file=stats.html
set f=log.txt
set web=ftp.mikrom.cz
set name=mikrom_cz
set password=mojetajneheslo

:: Compose ftp commands file
echo open %web% > %f%
echo user %name% %password% >> %f%
echo binary >> %f%

:: Change to correct directory
echo cd gc >> %f%

:: Upload to this directory
echo put %file% >> %f%
echo bye >> %f%

:: Execute ftp command
:: Use &amp;amp;amp;amp;quot;-d&amp;amp;amp;amp;quot; key for verbose output
ftp -n -d -s:%f%

:: Cleanup
del /f /q %f%
del /f /q %file%
endlocal
exit

nyní už jen stačilo poupravit makro GgStat.ggp.pas aby vygenerované statistiky uložilo do datového adresáře geogetu, zavolalo soubor .bat (obsah viz výše) uložený tamtéž a místo načteni souboru stats.htm v prohlížeči načetlo rovnou stránku s profilem. GgStat.ggp.pas

const
  GgStat = 'GgStat.exe';
  Database = 'geoget.db3';
  Statistics = 'stats.html';
  Template = 'GgStatTemplate.en';
  Upload = 'GgStatUpload.bat';
  HomeLat = '50.558708'; //Geoget_RefX
  HomeLon = '15.913619'; //Geoget_RefY
  ProfilePage = 'http://www.geocaching.com/profile/?guid=c3b9afaa-8556-4ddc-9d17-12459c86528b';

function PluginCaption: string;
begin
  Result := 'GgStat exe';
end;

function PluginHint: string;
begin
  Result := 'GgStat exe';
end;

function PluginIcon: string;
begin
  Result := DecodeBase64('Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AIAAAAAAAACIB////////wgIAA8ABwAAcAcMwAuwCZEABwzEC7MJkQgHDMQLswmRCAcMxAuzCZEIBwzEC7MJkQgIDMQLswmRCAeAAAuzCZEICHCIC7MJkQgHgIgLswCRCA9wiAuzCAAIgPCIC7gIiIiIAIiAAAiIiIiAiIiIiIiI');
end;

function PluginFlags: string;
begin
  Result := 'toolbar';
end;

procedure PluginStart;
begin
  RunExec('&amp;amp;amp;amp;quot;' + AnsiToOem(GgStat) + '&amp;amp;amp;amp;quot; -d &amp;amp;amp;amp;quot;' + AnsiToOem(Database) + '&amp;amp;amp;amp;quot; -o &amp;amp;amp;amp;quot;' + AnsiToOem(Statistics) + '&amp;amp;amp;amp;quot; -t &amp;amp;amp;amp;quot;' + AnsiToOem(Template) + '&amp;amp;amp;amp;quot; -c ' + Geoget_Owner + ' -x ' + HomeLat + ' -y ' + HomeLon);
  RunExec(AnsiToOem(Upload)); //RunShell(Statistics);
  RunShell(ProfilePage);
end;

vysledek? JEDNOu jedinkrát kliknu na ikonku v geogetu a v tu ránu mám na profilu aktuální statistiky! to je skvělé, ne?

EDIT 11.11.2008: trochu jsem zaktualizoval *.pas a *.bat a upravil kód do profilu abych ošetřil IE, který jako jediný prohlížeč nezvládá tag <object> pozor!

EDIT 13.11.2008: nový geojarry (v.11) umí nahrávat soubory do profilu! pro stávající uživatele geojarryho to znamená POUZE upravit soubor GgStat.ggp.pas na:

{$INCLUDE geojarry.config.pas }

const
  GgStat = 'GgStat.exe';
  Database = 'geoget.db3';
  Statistics = 'stats.html';
  Template = 'GgStatTemplate.en';
  //Upload = 'GgStatUpload.bat';
  HomeLat = '50.558708'; //Geoget_RefX
  HomeLon = '15.913619'; //Geoget_RefY
  ProfilePage = 'http://www.geocaching.com/profile/?guid=c3b9afaa-8556-4ddc-9d17-12459c86528b';

function PluginCaption: string;
begin
  Result := 'GgStat exe';
end;

function PluginHint: string;
begin
  Result := 'GgStat exe';
end;

function PluginIcon: string;
begin
  Result := DecodeBase64('Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AIAAAAAAAACIB////////wgIAA8ABwAAcAcMwAuwCZEABwzEC7MJkQgHDMQLswmRCAcMxAuzCZEIBwzEC7MJkQgIDMQLswmRCAeAAAuzCZEICHCIC7MJkQgHgIgLswCRCA9wiAuzCAAIgPCIC7gIiIiIAIiAAAiIiIiAiIiIiIiI');
end;

function PluginFlags: string;
begin
  Result := 'toolbar';
end;

procedure PluginStart;
var
  gjini: string;
  datadir: string;
  inif: string;
  gjresult: integer;
begin
  if gjUsername = '' then begin
    ShowMessage('Please, fill variables in geojarry.config.pas first and restart Geoget!');
    exit;
  end;

  //build GeoJarry.ini
  gjini := '[geojarry]' + CRLF;
  gjini := gjini + 'username=' + gjUsername + CRLF;
  gjini := gjini + 'password=' + gjPassword + CRLF;
  gjini := gjini + 'proxyip=' + gjproxyip + CRLF;
  gjini := gjini + 'proxyport=' + gjproxyport + CRLF;
  gjini := gjini + 'proxyuser=' + gjproxyuser + CRLF;
  gjini := gjini + 'proxypass=' + gjproxypass + CRLF;
  gjini := gjini + 'countryid=' + gjcountryid + CRLF;
  gjini := gjini + 'stateid=' + gjstateid + CRLF;
  gjini := gjini + 'maxcount=10' + CRLF;
  datadir := geoget_datadir + 'gjtemp';
  Forcedirectories(datadir);
  gjini := gjini + 'datadir=' + datadir + CRLF;

  inif := Geoget_datadir + 'gjtemp.ini';
  StringTofile(gjini, inif);

  //build stats.html
  RunExec('&amp;amp;amp;amp;quot;' + AnsiToOem(GgStat) + '&amp;amp;amp;amp;quot; -d &amp;amp;amp;amp;quot;' + AnsiToOem(Database) + '&amp;amp;amp;amp;quot; -o &amp;amp;amp;amp;quot;' + AnsiToOem(Statistics) + '&amp;amp;amp;amp;quot; -t &amp;amp;amp;amp;quot;' + AnsiToOem(Template) + '&amp;amp;amp;amp;quot; -c ' + Geoget_Owner + ' -x ' + HomeLat + ' -y ' + HomeLon);

  //upload stats on FTP //RunExec(AnsiToOem(Upload));

  //upload stats on gc.com profile
  gjresult := RunExec('&amp;amp;amp;amp;quot;' + Geoget_datadir + 'geojarry.exe&amp;amp;amp;amp;quot; &amp;amp;amp;amp;quot;' + inif + '&amp;amp;amp;amp;quot; profile &amp;amp;amp;amp;quot;' + Statistics + '&amp;amp;amp;amp;quot;'); //RunShell(Statistics);

  case gjresult of
    0: begin
      RunShell(ProfilePage);
    end;
  end;
end;

a je to! v podstatě vidíte, že jsem si jen z geojarryho maker vypůjčil vygenerovaní ini souboru a předhodil mu ho s parametrem `profile` a cestou k souboru se statistikami. hodně štěstí při zprovozňování! vlákno na fóru geocaching.cz najdete zde.

EDIT 7.12:2008: v dokumentech je ke stažení nová verze makra, která počítá ftf-index, využívá konfigurace přes samostatný soubor a přes rozhraní GeoGetu.

EDIT 21.1.2009: makro se trochu rozrůstá, takže občas sledujte sekci dokumenty, najdete tam GgStat2.zip s popisem aktualníchzměn. pokud máte problémy s rozběhnutím statistik, tak nejprve koukněte na wiki a až pak mě kontaktujte (píše mi kvůli tomu čím dál víc lidí) v krajním případě jsem ochoten Vám to přes TeamViewer rozchodit. v současné době makro umí:

  • poskládat si soubor BAT a nahrát s ním statistiky na FTP pro případ, že používáte prvni metodu přes <object>
  • nebo nahraje statistiky přímo na profil pomocí GeoJarry
  • počítá FTF index, který uloží do souboru *html*, který pomocí INCLUDE vložíte do statistik
  • nalezené kešky opatří tagem CZ kraj a CZ okres pro generování mapky nálezů podle krajů a okresů
  • nalezené kešky opatří tagem Elevation, který obsahuje jejich nadmořskou výšku a hodí se pro statistiky související s nadmořskou výškou
  • nalezené kešky nahraje na server geocaching.cz, aby Vám byl schopen vygenerovat mapku nálezů
  • v případě problémů Vás bude po nastavení volby SilentMode = 'no' informovat o každém kroku všechny tyto volby je možné nastavit buď ručně v souboru GgStat2.config.pas, nebo skrze rozhraní GeoGetu: Tools -> Settings -> Plugins víceméně aktuální podobu výsledných statistik si můžete prohlédnout na mém profilu.

Pokračování -> AutoStat

mikrom

Roman Mikulka aka mikrom. Ajťák, opravář, programátor samouk, elektrotechnik, koloběžkář a geocacher. Více na samostatné stránce O mně.

Mohlo by se vám líbit...

Komentáře

34 komentářů k "téměř automatické statistiky na geocaching.com"

  Subscribe  
nejnovější nejstarší
Upozornit na
Arogant

jen drobnost, tu statistiku máš prázdnou, někde chybka

Bravo! Líbí se mi, jak umíš docílit výsledku s použitím minimálních prostředků. Samozřejmě je jasné, že jde spustit ftp-čko pomocí bat souboru, ale že se ftp-čku dají předávat příkazy pomocí echa, to by mě tedy nenapadlo. A to jsem se vyučil na počítačích, které znaly jen MS-DOS blahé paměti a bat souborů jsem tenkrát napsal dost a dost. Používal jsem na to editor v Norton Commanderu, třeba si ještě někdo vzpomene, jak to vypadalo 🙂 S dovolením (tedy bez dovolení) jsem tvůj postup pustě okopíroval pro své použití. Měl bych jednu otázku, která by třeba zajímala víc lidí. Proto ji píšu sem a ne do soukromé pošty.… Číst vice »
censla

Myslim, ze pokus to objasnit uplne vsem nevysel. uplnym neznalkum by opravdu pomohl podrobny postup, treba me to jasny neni.:-)

censla

Opravdu trosku slozitejsi, vyzkousim a uvidim. Dik za cac a trpelivost

Mejstro

Geoget prilis nepouzivam, ale ten napad s FTP je naprosto skvely. I ja si dovolil jej pouzit pro upload svych dat na server. Diky

censla

Hmm, tak nic, ani se mi nepodarilo dostat v Geogetu potrebna data ke mne. To je ale muj problem a asi budu mit profil bez statistik. Ani nevim jak nainstalovat plugin (Ggstat) k Geogetu a o dvou ikonkach ani vidu ani slechu. Co je import PQ? Myslim ze uz nebudu dal obtezovat a pomalu podekuju. Myslim, ze statistiky jsou pro chytrejsi, nez jsem ja, Tolik casu, co jsem tim stravil a nulovy vysledek – ponizujici.:-(

Honzig

Díky za tip. Myslím, že je to fakt fantasticky jednoduché a srozumitelně popsané i pro laiky jako jsem já. http://www.geocaching.com/…Default.aspx?…

TrimTu

Zdravím, Super nápad s tímto upgradem, asi 4 hodiny jsem u toho seděl než jsem přišel na to jak to funguje. Není problém nahrát soubor stats.htm na FTP server, ani s jeho voláním z mého porfilu na http://www.geocaching.com. Problém je ovšem v tom, že když to udělám přesně podle tohoto návodu, soubor stats.htm je pouze prázdná stránka a netuším co s tím. Naisntaloval jsem si verzi 2 geoget a myslím že problém je už v generování statistik, protože nefungují ani s makrem geostatgen. Můžete mi prosím poradit. Předem děkuji.

LaLu Team

Postup je super, díky za něj, ale jediný problém je v tom, že <object> nějak moc nejde v IE :-?. Více je pospáno a možno vyzkoušet třeba zde. Ve firefoxu a jinde to jede bez problémů. Docela mě vytáčí jak GC.com mají postupně vše ořezané. Dříve jelo <iframe> a tak se dalo vkládat externí obsah bez problémů.

Evik&Facko

Jen se přidávám k LaLu Team … v IE to přes <object> prostě nejde … bohužel 😡

Díky moc mikrome za to makro! Teď už prakticky ani není třeba Tvého super návodu – jen si editovat pár konfiguráků a vše krásně běží 🙂 Jupííí

Chip

tak pro lamy je článek naprosto na prd a ostatní to znají, takže celkově je to informačně uplně o ničem…

makmag

nemate taky nejakou radu pro blondyny…? 😉

paja.71

Nazdar lidi,
když si v poslední době nechám prostřednictvím AutoStatu vygenerovat statistiky, tak výsledný soubor obsahuje místo oblíbených českých znaků č, š, ž, etc… znaky zcela jiné, díky čemuž je daný text jen velmi obtížně čitelný. Vše jde samozřejmě ručně upravit např. ve FrontPage, ale je to neskutečně zdlouhavé. Chtěl jsem se proto dotázat, zda se někdo z vás s podobným problém setkal a jak jej vyřešil. Díky za odpověď.
Paja.71