Usuario:PetrohsW/herramientas/WiknMedKa

Tras crear la nota Inicia_la_Universiada_2013_en_Kazán,_Rusia era necesario mantener actualizado el medallero; para ello se genero el script WiknMedKa que consulta los datos desde el sitio oficial http://kazan2013.ru/en/st_events/medals, genera una tabla y la sube a wikinoticias.

  • Adicional, me indicaron que el articulo en wikipedia Universiada 2013 debería ser actualizada en su seccion medallero por lo que se ajusto dicho articulo con la etiqueta <!-- WiknMedKa xxx --> para identificar donde actualizar la tabla.
#!/bin/dash
ayuda() { echo '
#===============================================================================
#        SCRIPT:            * Wikinoticias Medallero Kazan *
#   DESCRIPCION:  Crea tabla de medallas obteniendo informacion desde el sitio
#                 de la universiada de Kazan
# 
#           USO:  WiknMedKa.sh [-h|-?|--help|--ayuda] [-v]
#      OPCIONES:  -h   Ayuda
#                 -v   Version 
#  DEPENDENCIAS:  mount.wikipediafs
#                 dos2unix
#                 wget
#          BUGS:  ---
#         NOTAS:  
#     VERSIONES:  20130712 0.2.0 petrohs/  Escribiendo en wikipedia
#                 20130711 0.1.3 petrohs/  tiempo en utc
#                 20130711 0.1.2 petrohs/  Tabla, banderas, nombres y totales
#                 20130711 0.1.0 petrohs/  Inicial
#           URL: mx.wikimedia.org/wiki/Usuario:PetrohsW/herramientas/WiknMedKa 
#===============================================================================';}

#ayuda y version
 if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-?" -o "$1" = "--ayuda" ]; then ayuda; exit 1;
 elif [ "$1" = "-v" -o "$1" = "--version" ]; then ayuda | grep VERSIONES | cut -d: -f2 | cut -d/ -f1; exit 1; fi;

#obtener datos
 wget 'http://kazan2013.ru/hide/en/-240/Medal/Medals?medalKind=DefaultSports&sport=00' -O kazan.html
 dos2unix kazan.html 2> /dev/null
 egrep -n '<tr class="False">|<tr class="True">' kazan.html  | cut -d: -f1 > pos
 grep -n '<span class="flag">' kazan.html  | cut -d: -f1 > pais
 grep -n '<td class="medalcount center goldwinner showColumnCompactSwitch">' kazan.html  | cut -d: -f1 > oro
 paste -d, pos pais oro > med

#creando tabla
 cont=0; to=0; tp=0; tb=0; pt=0;
 for lin in `cat med`
   do
     pos=`echo $lin | cut -d, -f1`;
        pos=`expr $pos + 2`;
     pais=`echo $lin | cut -d, -f2`;
        pais=`expr $pais + 1`;
     oro=`echo $lin | cut -d, -f3`;
        oro=`expr $oro + 2`;
        plata=`expr $oro + 4`;
        bronce=`expr $oro + 8`;
     pos=`sed -n "${pos}p" kazan.html | sed -e "s/  //g"`
     pais=`sed -n "${pais}p" kazan.html | sed -e "s/.*;//g" -e "s/<.*//"`
     oro=`sed -n "${oro}p" kazan.html | sed -e "s/  //g" -e "s/<.*//"`
     plata=`sed -n "${plata}p" kazan.html | sed -e "s/  //g" -e "s/<.*//"`
     bronce=`sed -n "${bronce}p" kazan.html | sed -e "s/  //g" -e "s/<.*//"`
         if [ "$oro" = "" ]; then oro=0; fi
         if [ "$plata" = "" ]; then plata=0; fi
         if [ "$bronce" = "" ]; then bronce=0; fi
     pt=`expr $oro + $plata + $bronce`;

     if [ $pos != "Total:" ]
      then
          if [ "$pais" = "RUS" ]
            then
              echo "|--bgcolor=ccccff" >> laTab.txt;
            fi
        echo "|$pos||{{BanderaCOI|$pais}}||$oro||$plata||$bronce||$pt" >> laTab.txt
           to=`expr $to + $oro`;
           tp=`expr $tp + $plata`;
           tb=`expr $tb + $bronce`;
           cont=`expr $cont + 1`;
           if [ $cont -eq 10 ]
             then
               echo "<includeonly>
|-
! colspan=6|[[Plantilla:Medallero_Kazán_2013|Listado Completo]]
|}</includeonly><noinclude>"  >>  laTab.txt
             fi
        echo "|-" >>  laTab.txt
       else
        pt=`expr $to + $tp + $tb`;
        echo "! colspan=2 | Total || $to || $tp || $tb || $pt"  >> laTab.txt 
      fi
   done	

#creando wikitabla
 dia=`date -u +%d`;
 hora=`date -u +%H`;
 echo 'Medallero de la Universiada 2013 proporcionado por [http://kazan2013.ru/en/st_events/medals http://kazan2013.ru/en/st_events/medals] hasta el '$dia' de julio de 2013 a las '$hora' hrs. <small>(UTC)</small>

<span style="margin:0px; padding-bottom:1px; font-size:90%; display:block;"><span style="border:solid 1px #AAA solid 1px; background-color:#CCCCFF; color:white">    </span> País organizador</span>

{| class="wikitable sortable col1cen col3der col4der col5der col6der" 60% 
|-
! #
! País
! background-color="gold" | [[Archivo:Gold medal.svg|18px|Oro]]
! background-color="silver" | [[Archivo:Silver medal.svg|18px|Plata]]
! background-color="#CC9966" | [[Archivo:Bronze medal.svg|18px|Bronce]]
! Total
|-'  > laTab.wiki
 cat  laTab.txt >> laTab.wiki 
 echo "|}
<noinclude>"  >> laTab.wiki 

#actualizando wikinoticias
 mount.wikipediafs ~/.wikipediafs/wfs/
 cp laTab.wiki /home/petrohs/.wikipediafs/wfs/wikinoticias_es/Plantilla:Medallero_Kazán_2013.mw
 cp /home/petrohs/.wikipediafs/wfs/wikipedia-es/Universiada_2013.mw .
    INI=`grep -n '<!-- WiknMedKa INI -->' Universiada_2013.mw | cut -d: -f1`
    FIN=`grep -n '<!-- WiknMedKa FIN -->' Universiada_2013.mw | cut -d: -f1`
    sed -n 1,${INI}p Universiada_2013.mw >Universiada_2013a.mw
    cat laTab.wiki >> Universiada_2013a.mw
    sed -n ${FIN},\$p Universiada_2013.mw >>Universiada_2013a.mw
 cp Universiada_2013a.mw /home/petrohs/.wikipediafs/wfs/wikipedia-es/Universiada_2013.mw
 sudo umount ~/.wikipediafs/wfs/

#Mente sana en cuerpo sano
 rm kazan.html laTab.txt laTab.wiki med oro pais pos Universiada_2013.mw Universiada_2013a.mw
 exit 0;