#!/bin/bash
## OpenCellID-ApiKey:
apikey=1234567890abcdefghji
echo "Upload all CellID data to OpenCellID.org"
echo "========================================"
echo "using API-Key: $apikey"
for file in `ls *.txt`;do
echo "Processing $file ..."
# for every line in $file
for line in $(< $file);do
# data per line is: lat,lon,mcc,mnc,lac,cellid,
echo -en '\E[33m '$line' :'; tput sgr0
# replace the comma by space and output to variable array $celldata
celldata=( `echo "$line" | sed 's/,/ /g'` )
if [[ "${celldata[0]}" == "lat" ]];then
# this is the header line
echo " header"
else
# upload using wget
mycall=`echo "http://www.opencellid.org/measure/add?key=$apikey&mnc=${celldata[3]}&mcc=${celldata[2]}&lac=${celldata[4]}&cellid=${celldata[5]}&lat=${celldata[0]}&lon=${celldata[1]}"`
resp=`wget --quiet --output-document=- $mycall`
# check if upload was OK
if [[ $resp =~ .*ok.* ]];then
# Upload is OK, green comment
resp=`echo $resp | sed 's/.*<res>\(.*\)..res>.*/\1/g'`
echo -e '\E[32m '$resp; tput sgr0
else
# Something is not OK, so print it in red
# and output $celldata to "failed.txt"
resp=`echo $resp | sed 's/.*<res>\(.*\)..res>.*/\1/g'`
echo -e '\E[31m '$resp; tput sgr0
echo $line >> failed.log
fi
fi
done
mv $file uploaded/
done
Es ist langsam, nicht an allen Stellen elegant oder kurz und bestimmt nicht bug-frei, jedoch tut es seinen Dienst.
Dienstag, 11. Januar 2011
Mit GpsMid gesammelte CellIDs mit Script zu OpenCellID.org senden
Wenn das GPS meines Handys an ist, dann sammelt GpsMid die Cell-ID-Daten. Da der Upload mit der Web-API bei OpenCellID.org ständig Fehlermeldungen bringt oder mit einer Zeitüberschreitung (timeout) abstirbt, habe ich mal die einzelnen API-Funktionen durchprobiert und festgestellt, dass der Upload einzelner Datensätze funktioniert. Schnell war dann folgendes Shellscript geschrieben:
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen