tilde-analytics/json.sh

31 lines
841 B
Bash
Executable File

#!/bin/bash
echo "content-type: text/plain"
echo "Access-Control-Allow-Origin: *"
echo ""
IFS=\& read -a fields <<<"$QUERY_STRING"
if [ -z "${fields[0]}" ]
then
echo '{"status":"error","message":"Please supply url as a query parameter"}'
exit 0
fi
KEY=$(echo -n ${fields[0]} | cut -d/ -f3- | cut -d? -f1 | sed 's:/*$::' | sha1sum | head -c -4)
if [ -z "${fields[1]}" ]
then
echo -n '{"status":"ok", "url":"'${fields[0]}'", "dates":'
echo -n '["'$(ls "./data/$KEY" | sed ':a;N;$!ba;s/\n/","/g')'"]'
echo "}"
else
VIEWS=$(cat "./data/$KEY/${fields[1]}" | wc -l)
UNIQUE=$(sort -u "./data/$KEY/${fields[1]}" | wc -l)
echo -n '{"status":"ok", "url":"'${fields[0]}'", "date":"'${fields[1]}'", "views":'$VIEWS', "unique":'$UNIQUE', "sessions":'
echo -n '["'$(sed ':a;N;$!ba;s/\n/","/g' ./data/$KEY/${fields[1]})'"]'
echo "}"
fi