Saturday, September 19, 2009

Script para eliminar comentarios/propaganda de Yahoo

Hace varios días Yahoo ha anunciado que eliminara el servicio gratuito de Geocities. Si quieres conservar tus paginas debes de bajarlas o hacer un upgrade a tu cuenta de Geocities.

Yo opte por la primera opción pero me encontré con los desagradables comentarios o propaganda que Yahoo inserta en las paginas de Geocities.

Si, como yo, tienes varias paginas, eliminar estos comentarios o propagandas es una tarea tediosa por lo que me di la tarea de hacer un script para eliminar esto automáticamente. Espero que te sirva también.

Si encuentras algún error o deseas hacer alguna mejora, por favor, me dices.

Para usar el script primero debes de bajar el contenido de tu sitio web en geocities. Yo lo baje con wget y este lo puso en el directorio geocities.com. En el mismo directorio donde wget bajo el sitio se pone el script. Quizas debas de cambiar las 2 variables iniciales Y_HOME y Y_TAR para indicar en que directorio esta el sitio web y que archivo tar.gz se usara como respaldo del sitio descargado de Yahoo.

--------------------------
#!/bin/bash

Y_HOME="geocities.com"
Y_TAR=geocities.tar.gz

if [ -e "$Y_TAR" ]; then
rm -rf "$Y_HOME/";
tar xzf "$Y_TAR";
else
tar czf "$Y_TAR" "$Y_HOME/";
fi

PATTERN="PLEASE REMOVE"
FILES=`grep -r -l "$PATTERN" $Y_HOME/*`
TOTAL=`grep -r -l "$PATTERN" $Y_HOME/* | wc -l`

echo "Removing Yahoo comments to $TOTAL file(s)"

for f in $FILES; do
S=`grep -n "following code added by server. PLEASE REMOVE" $f | cut -d: -f1`
E=`grep -n "preceding code added by server. PLEASE REMOVE" $f | cut -d: -f1`
mv $f $f.temporal
sed -e ''$S','$E'd' $f.temporal | sed -e '1,2d' | sed -e '$d' | sed -e '$d' > $f
rm $f.temporal
done

C=`grep -r -l "$PATTERN" $Y_HOME/* | wc -l`
if [ "$C" != "0" ]; then
echo "Files with Yahoo comments: $C"
echo "Remove manually the Yahoo comments to:"
grep -r -l -c "$PATTERN" $Y_HOME/*
fi


Post a Comment