49 lines
1.5 KiB
Bash
49 lines
1.5 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
json=`curl -s 'https://wiki.linux-forks.de/mediawiki/api.php?action=query&format=json&list=search&redirects=1&converttitles=1&srsearch=%7B%7BCo%7C&srlimit=max&srwhat=text&srprop=snippet'`
|
||
|
data=`echo "$json" | json_reformat`;
|
||
|
|
||
|
echo "[";
|
||
|
|
||
|
IFS=$'\n';
|
||
|
for line in $data; do
|
||
|
temp=`echo "$line" | sed -n 's/^\s*{\s*$/END/p'`
|
||
|
if [[ "$temp" == "END" ]]; then
|
||
|
title="";
|
||
|
coords="";
|
||
|
fi
|
||
|
temp=`echo "$line" | sed -n 's/\s*"title": "*\([^"]\+\).*/\1/p'`
|
||
|
if [[ "$temp" != "" ]]; then
|
||
|
title="$temp";
|
||
|
fi
|
||
|
temp=`echo "$line" | sed -n 's#.*<span class=.searchmatch.>Co<\/span>|\([0-9\-]\+\)|\([0-9\-]\+\)|\([0-9\-]\+\).*#\1,\3#p'`
|
||
|
if [[ "$temp" != "" ]]; then
|
||
|
coords="$temp";
|
||
|
fi
|
||
|
if [[ "$title" != "" && "$coords" != "" ]]; then
|
||
|
echo "{\"type\": \"Feature\", \"properties\": {\"name\": \"$title\","
|
||
|
echo -n "\"categories\": ["
|
||
|
urltitle=`echo "$title" | sed 's/ /%20/g'`
|
||
|
cjson=`curl -s "https://wiki.linux-forks.de/mediawiki/api.php?action=query&format=json&titles=$urltitle&prop=categories" | json_reformat -m`
|
||
|
categories=`echo "$cjson" | sed -n 's/.*\("categories":[^]]\+\).*/\1/p'`;
|
||
|
IFS='}'
|
||
|
fc="true";
|
||
|
for entry in $categories; do
|
||
|
if [[ "$fc" != "true" ]]; then
|
||
|
echo -n ",";
|
||
|
fi
|
||
|
category=`echo "$entry" | sed -n 's/.*Category:\([^"]\+\).*/\1/p'`
|
||
|
echo -n "\"$category\"";
|
||
|
fc="false";
|
||
|
done;
|
||
|
IFS=$'\n'
|
||
|
echo "]},";
|
||
|
echo "\"geometry\": {\"type\": \"Point\", \"coordinates\": [$coords]}},";
|
||
|
title="";
|
||
|
coords="";
|
||
|
fi
|
||
|
done
|
||
|
IFS=" ";
|
||
|
|
||
|
echo "{}]";
|