#!/bin/bash
# @author Martin Lukeš
# @e-mail martin.meridius@gmail.com
# Tento skript je vyhradne mym dilem a davam jej k dispozici pod licenci CC-BY-NC.
# Shrnuti podminek teto licence je zde http://creativecommons.org/licenses/by-nc/3.0/
#
# Zpracovavana data pochazi z http://meta.wikimedia.org/wiki/List_of_Wikipedias
# a jsou uverejnena pod licenci CC-BY-SA, kterou lze nalezt zde
# http://creativecommons.org/licenses/by-sa/3.0/
#
# Seznam kompatibilnich licenci lze nalezt zde http://wiki.creativecommons.org/Frequently_Asked_Questions#If_I_use_a_Creative_Commons-licensed_work_to_create_a_new_work__.28ie_a_derivative_work_or_adaptation.29.2C_which_Creative_Commons_license_can_I_use_for_my_new_work.3F
# Tento skript ze vstupniho souboru (wiki stranka seznamu jazyku) parsuje udaje v nasledujicim tvaru:
# anglicky nazev jazyku;nazev jazyku v rodnem jazyce;kod jazyku
# Vzorove radky vstupniho souboru:
#<td><a href="http://en.wikipedia.org/wiki/Choctaw_language" class="extiw" title="w:Choctaw language">Choctaw</a></td>
#<td class="plainlinksneverexpand"><a href="http://cho.wikipedia.org/wiki/Chahta_Anumpa" class="external text" rel="nofollow">Choctaw</a></td>
#--
#<td><a href="http://en.wikipedia.org/wiki/Marshallese_language" class="extiw" title="w:Marshallese language">Marshallese</a></td>
#<td class="plainlinksneverexpand"><a href="http://mh.wikipedia.org/wiki/Kajin_M%CC%A7aje%C4%BC" class="external text" rel="nofollow">Ebon</a></td>
SOUBOR_PUVODNI=List_of_Wikipedias
wget -o $0.wget_log -O ${SOUBOR_PUVODNI} http://meta.wikimedia.org/wiki/List_of_Wikipedias
if [ -f $SOUBOR_PUVODNI ]; then
echo "Seznam jazyku ze stranek Wikipedia je stazen."
# TODO - podminka je splnena, i kdyz soubor nestahne! PROC kdyz v if-u nize funguje normalne?
else
echo "Seznam jazyku ze stranek Wikipedia se nepodarilo stahnout!"
cat $0.wget_log
exit
fi
SOUBOR_POMOCNY=${SOUBOR_PUVODNI}-dva_radky
SOUBOR_VYSLEDNY=${SOUBOR_PUVODNI}-vysledek
if [[ -f $SOUBOR_VYSLEDNY ]]; then
echo -n "Soubor ${SOUBOR_VYSLEDNY} jiz existuje! Prepsat? (A/n): "
read rozhodnuti
case $rozhodnuti in
n|N )
exit
;;
a|A|* )
rm $SOUBOR_VYSLEDNY
;;
esac
fi
# smaze prazdne radky a ulozi dulezite informace
grep '.' $SOUBOR_PUVODNI | grep td | grep -A1 language >${SOUBOR_POMOCNY}
while read radek; do
if [[ "${radek}" =~ "language" ]]; then
orig_nazev=${radek#*language\">}
orig_nazev=${orig_nazev%%<*}
echo -n ${orig_nazev}";" >> "$SOUBOR_VYSLEDNY"
fi
if [[ "${radek}" =~ "external" ]]; then
nazev_jazyku=${radek#*nofollow\">}
nazev_jazyku=${nazev_jazyku%%<*}
echo -n ${nazev_jazyku}";" >> "$SOUBOR_VYSLEDNY"
kod_jazyku=${radek#*http://}
kod_jazyku=${kod_jazyku%%.*}
echo $kod_jazyku >> "$SOUBOR_VYSLEDNY"
fi
done <${SOUBOR_POMOCNY}
mv $SOUBOR_VYSLEDNY ${SOUBOR_VYSLEDNY}-pom
sort ${SOUBOR_VYSLEDNY}-pom -o $SOUBOR_VYSLEDNY
rm ${SOUBOR_VYSLEDNY}-pom
rm $SOUBOR_POMOCNY
rm $SOUBOR_PUVODNI
echo "Hotovo! Vysledek se nachazi v souboru ${SOUBOR_VYSLEDNY}"
Uvedená práce (dílo), jejímž autorem je Martin Lukeš, podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně 3.0 Česká republika.