Wikipedista:Drecker/Scripty

Z Wikipedie, otevřené encyklopedie

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