Wikipedista:Drecker/Scripty
Toto je seznam scriptů, které používám pro editaci wikipedie. Pokud se někdo jimi nechá inspirovat či je přímo použijue budu jedině rád, bohužel pro většinu uživatelů budou spíše nepoužitelné už proto, že využívají bash.
translate.bash[editovat | editovat zdroj]
Popis[editovat | editovat zdroj]
Jedná se o script, který „přeloží“ jména tenistů z článku na anglické wikipedie do češtiny. Využívá přitom této překladové tabulky. Zatím je neuvěřitelně pomalý :(
Argumenty, vstup a výstup[editovat | editovat zdroj]
- 1.: [WM] — W pokud chcete přeložit tenistky a M pokud chcete přeložit tenisty
- Vstup: Překládaný text
- Výstup: Přeložený text
Závislosti[editovat | editovat zdroj]
Kód[editovat | editovat zdroj]
#!/bin/bash
dump=$(exec elinks https://cs.wikipedia.org/wiki/Wikipedista:Drecker/Tenisté -dump -no-references -no-numbering)
table=$(echo "${dump}" | awk "
/\*\*\*START $1\*\*\*/ {flag=1;next}
/\*\*\*STOP $1\*\*\*/ {flag=0}
flag {print}
")
declare -i i=0
declare -a en
declare -a cs
while read -r line; do
formated=$(echo "$line" | sed -e 's/^\s*//' | sed -e 's/\s*$//' | sed -e 's/\s\s*/*/g' | sed -e 's/\xc2\xa0/ /g')
IFS=* read -r nation orig_name en_name en_short_name en_link cs_name cs_short_name cs_link check < <(echo "$formated")
en[i]="\[\[$en_link\]\]"
cs[i]="\[\[$cs_link\]\]"
en[i+1]="\[\[$en_link|$en_name\]\]"
cs[i+1]="\[\[$cs_link|$cs_name\]\]"
en[i+2]="\[\[$en_link|$en_short_name\]\]"
cs[i+2]="\[\[$cs_link|$cs_short_name\]\]"
i=$[i+3]
done < <(echo "$table")
declare -a text_line
while read -r line; do
text_line=$line
for (( i=0; $i<${#en[*]}; i++ )); do
text_line=$(echo "$text_line" | sed -e "s/${en[i]}/${cs[i]}/g")
done
echo "$text_line"
done
cite.bash[editovat | editovat zdroj]
Popis[editovat | editovat zdroj]
Vypíše citaci pavouků tenisových turnajů v takovém tvaru, v jakém by se měla vyskytovat na Wikipedii
Argumenty, vstup a výstup[editovat | editovat zdroj]
- 1.: [WwMm] — W či w pokud se jedná o pavouk žen, M či m pokud se jedná o pavouk mužů
- 2.: — název turnaje
- 3.: — číselný kód turnaje
- 4.: [sqd]* — nepovinný sekvence tvořená písmeny s, q a d, za každý výskyt písmene vypíše odrážku s příslušným pavoukem, (s – dvouhra; q – kvalifikace dvouhry; d – čtyřhra); implicitně předpokládá sqd
- Vstup: — nic
- Výstup: — odrážky s citacemi
Závislosti[editovat | editovat zdroj]
Příklad[editovat | editovat zdroj]
Příkaz[editovat | editovat zdroj]
./cite.bash m "Rio Open" 6932 sq
Výstup[editovat | editovat zdroj]
- Mužská dvouhra Rio Open 2014 [online]. ATP Tour, Inc. [cit. 2014-03-18]. Dostupné online.
- Kvalifikace mužské dvouhry Rio Open 2014 [online]. ATP Tour, Inc. [cit. 2014-03-18]. Dostupné online.
Poznámka[editovat | editovat zdroj]
Jako accessdate je použito datum spuštění skriptu
Kód[editovat | editovat zdroj]
#!/bin/bash
date=$(date +'%d-%m-%Y')
if [ -z $4 ]; then
events="sqd"
else
events=$4
fi
if [ "$1" = "m" ] || [ "$1" = "M" ]; then
for (( i=0; i<${#events}; i++ )); do
c=${events:$i:1}
if [ "$c" = "s" ]; then
event="Mužská dvouhra"
abb="mds"
elif [ "$c" = "d" ]; then
event="Mužská čtyřhra"
abb="mdd"
elif [ "$c" = "q" ]; then
event="Kvalifikace mužské dvouhry"
abb="qs"
fi
echo "* {{cite web|work=www.atpworldtour.com|publisher=[[asociace tenisových profesionálů|ATP Tour]], Inc.|title=$event $2 2014|url=http://www.atpworldtour.com/posting/2014/$3/$abb.pdf|format=PDF|accessdate=$date}}"
done
elif [ "$1" = "w" ] || [ "$1" = "W" ]; then
for (( i=0; i<${#events}; i++ )); do
c=${events:$i:1}
if [ "$c" = "s" ]; then
event="Ženská dvouhra"
abb="MDS"
elif [ "$c" = "d" ]; then
event="Ženská čtyřhra"
abb="MDD"
elif [ "$c" = "q" ]; then
event="Kvalifikace ženské dvouhry"
abb="QS"
fi
echo "* {{cite web|work=www.wtatennis.com|publisher=[[Ženská tenisová asociace|WTA Tour]], Inc.|title=$event $2 2014 |url=http://www.wtatennis.com/SEWTATour-Archive/posting/2014/$3/$abb.pdf|format=PDF|accessdate=$date}}"
done
fi