Gibt es für OKAPI eine App zum Herunterladen von Spoilerbildern?

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
Antworten
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

Gibt es für OKAPI eine App zum Herunterladen von Spoilerbildern? Ich hab das vor kurzem sehr umständlich über mehrere Schritte gemacht, bis ich die Daten herunterladen konnte.
  • [url=http://www.opencaching.de/okapi/signup.html]http://www.opencaching.de/okapi/signup.html[/url] aufgerufen
  • services/caches/formatters/garmin als Application Name eingetragen und E-Mail-Adresse eingetragen
  • Im Browser folgendes eingetragen:[url=http://www.opencaching.de/okapi/services/caches/formatters/garmin?cache_codes=OCBDA7%7COC2117%7COC9939%7COC2791%7COCECDA%7COCB093%7COC2793%7COCEDE8%7COC22E9%7COCE8E0%7COC4759%7COCF403%7COCABA6%7COC85CD%7COCC3F6%7COC264C%7COCF40B%7COC6943%7COC9133%7COCF408%7COCEC9B%7COCB48B%7COC7627%7COCE12B%7COC5FCC%7COCDCA4%7COC2D2D%7COC9A53%7COCBF61%7COCA30D%7COC9C48%7COCEBE3%7COCB14E%7COCD63E%7COCEBF1%7COCB50E%7COCCAE1%7COC4383%7COC2BF9%7COCB5E5%7COC692F%7COCB36C%7COCECD9%7COCC4DF%7COC4382%7COCA5B2%7COC762B%7COC6C6A%7COCDD70%7COC8C0F&consumer_key=XxXxXxXxXxXxXxXxXxX]http://www.opencaching.de/okapi/services/caches/formatters/garmin?cache_codes=OCBDA7|OC2117|OC9939|OC2791|OCECDA|OCB093|OC2793|OCEDE8|OC22E9|OCE8E0|OC4759|OCF403|OCABA6|OC85CD|OCC3F6|OC264C|OCF40B|OC6943|OC9133|OCF408|OCEC9B|OCB48B|OC7627|OCE12B|OC5FCC|OCDCA4|OC2D2D|OC9A53|OCBF61|OCA30D|OC9C48|OCEBE3|OCB14E|OCD63E|OCEBF1|OCB50E|OCCAE1|OC4383|OC2BF9|OCB5E5|OC692F|OCB36C|OCECD9|OCC4DF|OC4382|OCA5B2|OC762B|OC6C6A|OCDD70|OC8C0F&consumer_key=XxXxXxXxXxXxXxXxXxX[/url]
  • XxXxXxXxXxXxXxXxXxX=der per Mail zugesendete ConsumerKey
  • Zip-Datei heruntergeladen
Mit der Methode können maximal 50 Listings mit GeocachePhotos auf einmal heruntergeladen werden.
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

Für welches Betriebssystem soll's denn sein und wie soll das ganze aufgerufen werden?
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
Schrottie

[quote="flopp"]
Für welches Betriebssystem soll's denn sein und wie soll das ganze aufgerufen werden?
[/quote]

Linux, Shellscript

Gern auch so, das man ein GPX übergibt und dann die Spoiler aller Caches darin heruntergeladen bekommt. ;D
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

[quote="Schrottie"]
[quote="flopp"]
Für welches Betriebssystem soll's denn sein und wie soll das ganze aufgerufen werden?
[/quote]

Linux, Shellscript

Gern auch so, das man ein GPX übergibt und dann die Spoiler aller Caches darin heruntergeladen bekommt. ;D
[/quote]
Ich wollte eigentlich wissen, ob es schon irgendwas in der Richtung gibt.
Windows wäre nicht schlecht. Irgendwas über Python würde auch gehen.
GPX rein, Daten raus ist keine schlechte Idee...
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

Tatsächlich sollte das mit der OKAPI schnell zu machen sein, wie man im ersten Beitrag sehen kann...
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
Schrottie

[quote="flopp"]
Tatsächlich sollte das mit der OKAPI schnell zu machen sein, wie man im ersten Beitrag sehen kann...
[/quote]

Hmm, jetzt das wäre eine tolle Sache für OCM. Ein Script, das ein GPX entgegennimmt, die Spoiler lädt und dann nach einem festen Schema in ein vorgegebenes Verzeichnis speichert.

So quasi

Code: Alles auswählen

./foo.sh bar.gpx /home/haste/nich/jesehn/


und da wird dann in separate Verzeichnisse gespeichert (wie genau die Struktur da ist kann ich nachsehen). Dann könnte man das von OCM aus aufrufen und eben gleich die Caches mitgeben. Und OCM schiebt die Bilder dann gleich mit aufs Garmin.

Also wenn du mal Langeweile hast... ;D
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

Eigentlich gebräuchte man nicht einmal eine GPX-Datei, sondern man könnte über [url=http://forum.opencaching-network.org/www.opencaching.de/okapi/services/caches/search/nearest?center=52.866667|7.316667&consumer_key=XxXxXxXxXxXxXxXxXxX]www.opencaching.de/okapi/services/caches/search/nearest?center=52.866667|7.316667&consumer_key=XxXxXxXxXxXxXxXxXxX[/url] die OC-Codes/Wegpunkte abfragen.
following

Jup. Hier ist ein PHP-Script, das das macht:

Code: Alles auswählen

<?php

if ($argc != 2)
  die("You must specify a comma-separated list of cache codes as parameter.");

$site = "http://www.opencaching.de";
$consumer_key = "xxxxxxxxxxxxxxxxxxxx";

$caches_per_batch = 100;
$cache_batches = array_chunk(explode(",",$argv[1]), $caches_per_batch);
$requests = 0;

foreach ($cache_batches as $cache_codes)
{
  echo "OKAPI request #" . ++$requests . "\n";
  $json_data = file("$site/okapi/services/caches/geocaches?cache_codes=" .
                    implode("|", $cache_codes) . "&fields=code|images" .
                    "&consumer_key=$consumer_key");
  $data = json_decode($json_data[0]);
  
  foreach ($data as $cache)
  {
    $cache_code = $cache->{'code'};
    $n = 1;
    foreach ($cache->{'images'} as $image)
      if ($image->{'is_spoiler'})
      {
        $image_url = $image->{'url'};
        $pi = pathinfo($image_url);
        $img_filename = $cache_code . "-" . $n++ . "." . $pi['extension'];
        echo "retrieving $img_filename";
        $image_data = file($image_url);
        file_put_contents($img_filename,$image_data);
        echo "\n";
      }
  }
}

?>
1. PHP installieren
2. Consumer Key im Script eintragen
3. Aufrufen mit einer Komma-getrennten Liste der Cache-Codes als Parameter

No Limits, kannst die Spoiler von beliebig vielen Caches mit einem Mal abrufen.
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

following hat geschrieben: 3. Aufrufen mit einer Komma-getrennten Liste der Cache-Codes als Parameter
Wo werden die Cache-Codes eingetragen?
Ich bekomme diese Meldung:
Notice:  Undefined variable: argc in C:\xampp\htdocs\spoiler.php on line 3
You must specify a comma-separated list of cache codes as parameter.
following

Die Codes als Parameter angeben.

Code: Alles auswählen

php spoiler.php OCBDA7,OC2117,OC9939,OC2791,OCECDA,OCB093,OC2793,OCEDE8,OC22E9,OCE8E0,OC4759,OCF403,OCABA6,OC85CD,OCC3F6,OC264C,OCF40B,OC6943,OC9133,OCF408,OCEC9B,OCB48B,OC7627,OCE12B,OC5FCC,OCDCA4,OC2D2D,OC9A53,OCBF61,OCA30D,OC9C48,OCEBE3,OCB14E,OCD63E,OCEBF1,OCB50E,OCCAE1,OC4383,OC2BF9,OCB5E5,OC692F,OCB36C,OCECD9,OCC4DF,OC4382,OCA5B2,OC762B,OC6C6A,OCDD70,OC8C0F
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

Hab ich leider nicht hinbekommen :( . Ich werde es morgen früh nach der Arbeit noch mal probieren...
Benutzeravatar
Hanekju
Vereinsmitglied
Vereinsmitglied
Beiträge: 314
Registriert: 08.12.2011, 16:25

:doh: Ich dussel :doh: .
Das ganze wäre für mich einfacher gewesen, wenn ich auch PHP installiert gehabt hätte.
Danke klappt :)

Nachtrag: Auf dem zweiten Blick fällt mir gerade auf, dass mit dem Script die Bilder in einem Ordner und nicht, wie bei der OKAPI-Abfrage, in eine für Garmin-Geräte optimierte Dateistruktur.
Für Fotos wäre das:

Code: Alles auswählen

\Garmin\GeocachePhotos\Last Character\Second To Last Character\Full Code\
und für Spoiler wäre das:

Code: Alles auswählen

\Garmin\GeocachePhotos\Last Character\Second To Last Character\Full Code\Spoilers
Zuletzt geändert von Hanekju am 26.04.2013, 11:00, insgesamt 1-mal geändert.
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

Die Verzeichnisstruktur könnte man sich billigst mit einem Shellscript bauen...
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
following

... oder direkt in das PHP-Script einbauen
Antworten