[Linux/Unix] Pobieranie wielu GPX w konsoli
: niedziela 16 listopada 2014, 12:43
Napisałem sobie na szybko prosty skrypt do pobierania w konsoli wielu GPX-ów (w jednym pliku). Zasadniczo pisany z myślą o systemach uniksowych, na Windowsie też da się uruchomić po zainstalowaniu Cygwina, MobaXTerma lub podobnego środowiska.
Można wpisać login i/lub hasło na sztywno (hasła ze względów bezp. raczej nie polecam, ale dzięki temu można np. na serwerze w cronie sobie tworzyć na bieżąco), jeśli któreś nie jest podany — skrypt zapyta po uruchomieniu.
Cache należy podawać w formacie "OP1234|OP5678|OP0987" z | pomiędzy oznaczeniami. Na razie wpisane na sztywno, później dodam podawanie jako argument.
Kod: Zaznacz cały
#!/bin/sh
USER=azhag
PASS=
if [ -z $USER ]; then
echo -n "Login: "
read USER
fi
if [ -z $PASS ]; then
echo -n "Hasło: "
read PASS
fi
## Login
wget -q --keep-session-cookies --save-cookies=cookie.txt http://m.opencaching.pl/login.php -O /dev/null
wget -q --keep-session-cookies --save-cookies=cookie.txt --load-cookies=cookie.txt --post-data="username=${USER}&pass=${PASS}&remember=checked" http://m.opencaching.pl/login.php -O login.html
if ! grep -q 'zalogowany jako' login.html; then
echo "Błąd logowania"
exit 1
fi
rm -f login.html
## Funkcja
getcaches() {
echo -n "Pobieranie opencaching-${1}.gpx: "
wget -q "http://m.opencaching.pl/geo.php?wp=${2}&output=gpx" -O opencaching-${1}.gpx --load-cookies=cookie.txt
echo OK
}
getcaches zalew "OP1912|OP1823|OP12EA"
getcaches warszawa "OP37ED|OP0B84|OP31C7"
## Po pracy załóż majtki
rm -f cookie.txt
Cache należy podawać w formacie "OP1234|OP5678|OP0987" z | pomiędzy oznaczeniami. Na razie wpisane na sztywno, później dodam podawanie jako argument.