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
editovatPopis
editovatJedná 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- 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
editovatKód
editovat#!/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
editovatPopis
editovatVypíš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- 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
editovatPříklad
editovatPříkaz
editovat./cite.bash m "Rio Open" 6932 sq
Výstup
editovat- 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
editovatJako accessdate je použito datum spuštění skriptu
Kód
editovat#!/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