Característica #12

script per generar les noticies de la portada

Afegit per eloi rebes fa més de 11 anys. Actualitzat fa més de 11 anys.

Estat:ResolvedInici:10-12-2012
Prioritat:NormalData de venciment:
Assignat a:Alejandro Martín% realitzat:

100%

Categoria:-Temps invertit:-
Versió objectiu:-

Descripció

amb un script es genera un arxiu de les ultimes noticies publicades a la portada, de manera que el portal guifi del proxy farà referència també a novetats actuals.

aquest script agafa el que mostra la "vista" de novetats de la portada.

#!/bin/sh

# Definimos la funcion
getPortada() {
        # Descargamos la portada correspondiente
        # al primer parametro especificado al
        # llamar a la funcion
        wget http://guifi.net/$1/portada -O /tmp/portada
        # Cargamos las cadenas del fichero
        # /tmp/portada que contengan el texto
        # "<h2>" en /tmp/portada2
        grep "<h2>" /tmp/portada > /tmp/portada2
        # Cargamos en /tmp/portada3 a
        # partir de la 8ª linea de /tmp/portada2
        tail -n+8 /tmp/portada2 > /tmp/portada3
        # Sustituimos <h2> por <p> en /tmp/portada3
        sed -i 's/<h2>/<p>/g' /tmp/portada3
        # Sustituimos <a href=" por
        # <a href="http://guifi.net
        sed -i 's/<a href="/<a href="http:\/\/guifi.net/g' /tmp/portada3
        # Sustituimos </h2> por </p>
        sed -i 's/<\/h2>/<\/p>/g' /tmp/portada3
        # Movemos el fichero resultante al
        # nombre que le corresponde segun
        # el primer parametro
        mv /tmp/portada3 /tmp/portada.$1
        # Borramos los ficheros temporales
        rm portada portada2
}

# Llamamos a la funcion con el codigo de idioma
getPortada ca
getPortada en
getPortada es

exit 0

es guarda en un arxiu... per exemple: /root/news.sh

es crea un cron:


#crontab -e

@daily sh /root/news.sh

daquesta manera ens genera 3 arxius a /var/www on després seran creats per l'arxiu index.html

Historial

#1 Actualitzat per eloi rebes fa més de 11 anys

  • % realitzat ha canviat de 0 a 50

#2 Actualitzat per eloi rebes fa més de 11 anys

  • % realitzat ha canviat de 50 a 80

#3 Actualitzat per Alejandro Martín fa més de 11 anys

#!/bin/sh

# Definimos la funcion
getPortada() {
        # Descargamos la portada correspondiente
        # al primer parametro especificado al
        # llamar a la funcion
        wget http://guifi.net/$1/portada -O /tmp/portada
        # Cargamos las cadenas del fichero
        # /tmp/portada que contengan el texto
        # "<h2>" en /tmp/portada2
        grep "<h2>" /tmp/portada > /tmp/portada2
        # Cargamos en /tmp/portada3 a
        # partir de la 8ª linea de /tmp/portada2
        tail -n+8 /tmp/portada2 > /tmp/portada3
        # Sustituimos <h2> por <p> en /tmp/portada3
        sed -i 's/<h2>/<p>/g' /tmp/portada3
        # Sustituimos <a href=" por
        # <a href="http://guifi.net
        sed -i 's/<a href="/<a href="http:\/\/guifi.net/g' /tmp/portada3
        # Sustituimos </h2> por </p>
        sed -i 's/<\/h2>/<\/p>/g' /tmp/portada3
        # Movemos el fichero resultante al
        # nombre que le corresponde segun
        # el primer parametro
        mv /tmp/portada3 /tmp/portada.$1
        # Borramos los ficheros temporales
        rm /tmp/portada /tmp/portada2
}

# Llamamos a la funcion con el codigo de idioma
getPortada ca
getPortada en
getPortada es

exit 0

#4 Actualitzat per Alejandro Martín fa més de 11 anys

#!/bin/sh

# Definimos la funcion
getPortada() {
        # Descargamos la portada correspondiente
        # al primer parametro especificado al
        # llamar a la funcion
        wget http://guifi.net/$1/portada -O /tmp/portada

        # Cargamos las cadenas del fichero
        # /tmp/portada que contengan el texto
        # "<h2>" en /tmp/portada2
        grep "<h2>" /tmp/portada > /tmp/portada2

        # Añadimos la etiqueta de inicio de lista
        # desordenada a /tmp/portada3
        echo "<ul>" > /tmp/portada3

        # Cargamos en /tmp/portada3 a
        # partir de la 8a linea de /tmp/portada2
        tail -n+8 /tmp/portada2 >> /tmp/portada3

        # Sustituimos <h2> por <li> en /tmp/portada3
        sed -i 's/<h2>/<li>/g' /tmp/portada3

        # Sustituimos <a href=" por
        # <a href="http://guifi.net
        sed -i 's/<a href="/<a href="http:\/\/guifi.net/g' /tmp/portada3

        # Sustituimos </h2> por </li>
        sed -i 's/<\/h2>/<\/li>/g' /tmp/portada3

        # Añadimos la etiqueta de fin de lista
        # a /tmp/portada3
        echo "</ul>" >> /tmp/portada3

        # Sustituimos tildes y eñes
        sed -i 's/á/\&aacute\;/g' /tmp/portada3
        sed -i 's/é/\&eacute\;/g' /tmp/portada3
        sed -i 's/í/\&iacute\;/g' /tmp/portada3
        sed -i 's/ó/\&oacute\;/g' /tmp/portada3
        sed -i 's/ú/\&uacute\;/g' /tmp/portada3
        sed -i 's/Á/\&Aacute\;/g' /tmp/portada3
        sed -i 's/É/\&Eacute\;/g' /tmp/portada3
        sed -i 's/Í/\&Iacute\;/g' /tmp/portada3
        sed -i 's/Ó/\&Oacute\;/g' /tmp/portada3
        sed -i 's/Ú/\&Uacute\;/g' /tmp/portada3

        sed -i 's/à/\&agrave\;/g' /tmp/portada3
        sed -i 's/è/\&egrave\;/g' /tmp/portada3
        sed -i 's/ì/\&igrave\;/g' /tmp/portada3
        sed -i 's/ò/\&ograve\;/g' /tmp/portada3
        sed -i 's/ù/\&ugrave\;/g' /tmp/portada3
        sed -i 's/À/\&Agrave\;/g' /tmp/portada3
        sed -i 's/È/\&Egrave\;/g' /tmp/portada3
        sed -i 's/Ì/\&Igrave\;/g' /tmp/portada3
        sed -i 's/Ò/\&Ograve\;/g' /tmp/portada3
        sed -i 's/Ù/\&Ugrave\;/g' /tmp/portada3

        sed -i 's/ñ/\&ntilde\;/g' /tmp/portada3
        sed -i 's/Ñ/\&Ntilde\;/g' /tmp/portada3

        # Movemos el fichero resultante al
        # nombre que le corresponde segun
        # el primer parametro
        rm /var/www/portada_$1.html
        mv /tmp/portada3 /var/www/portada_$1.html
        chown www-data: /var/www/portada_$1.html

        # Borramos los ficheros temporales
        rm /tmp/portada /tmp/portada2

}

# Llamamos a la funcion con el codigo de idioma
getPortada ca
getPortada en
getPortada es

exit 0

#5 Actualitzat per Alejandro Martín fa més de 11 anys

#!/bin/sh

# Definimos la funcion
getPortada() {
        # Descargamos la portada correspondiente
        # al primer parametro especificado al
        # llamar a la funcion
        wget http://guifi.net/$1/portada -O /tmp/portada

        # Cargamos las cadenas del fichero
        # /tmp/portada que contengan el texto
        # "<h2>" en /tmp/portada2
        grep "<h2>" /tmp/portada > /tmp/portada2

        # Añadimos la etiqueta de inicio de lista
        # desordenada a /tmp/portada3
        echo "<ul>" > /tmp/portada3

        # Cargamos en /tmp/portada3 a
        # partir de la 8a linea de /tmp/portada2
        tail -n+8 /tmp/portada2 >> /tmp/portada3

        # Sustituimos <h2> por <li> en /tmp/portada3
        sed -i 's/<h2>/<li>/g' /tmp/portada3

        # Sustituimos <a href=" por
        # <a href="http://guifi.net
        sed -i 's/<a href="/<a target="_parent" href="http:\/\/guifi.net/g' /tmp/portada3

        # Sustituimos </h2> por </li>
        sed -i 's/<\/h2>/<\/li>/g' /tmp/portada3

        # Añadimos la etiqueta de fin de lista
        # a /tmp/portada3
        echo "</ul>" >> /tmp/portada3

        # Sustituimos tildes y eñes
        sed -i 's/á/\&aacute\;/g' /tmp/portada3
        sed -i 's/é/\&eacute\;/g' /tmp/portada3
        sed -i 's/í/\&iacute\;/g' /tmp/portada3
        sed -i 's/ó/\&oacute\;/g' /tmp/portada3
        sed -i 's/ú/\&uacute\;/g' /tmp/portada3
        sed -i 's/Á/\&Aacute\;/g' /tmp/portada3
        sed -i 's/É/\&Eacute\;/g' /tmp/portada3
        sed -i 's/Í/\&Iacute\;/g' /tmp/portada3
        sed -i 's/Ó/\&Oacute\;/g' /tmp/portada3
        sed -i 's/Ú/\&Uacute\;/g' /tmp/portada3

        sed -i 's/à/\&agrave\;/g' /tmp/portada3
        sed -i 's/è/\&egrave\;/g' /tmp/portada3
        sed -i 's/ì/\&igrave\;/g' /tmp/portada3
        sed -i 's/ò/\&ograve\;/g' /tmp/portada3
        sed -i 's/ù/\&ugrave\;/g' /tmp/portada3
        sed -i 's/À/\&Agrave\;/g' /tmp/portada3
        sed -i 's/È/\&Egrave\;/g' /tmp/portada3
        sed -i 's/Ì/\&Igrave\;/g' /tmp/portada3
        sed -i 's/Ò/\&Ograve\;/g' /tmp/portada3
        sed -i 's/Ù/\&Ugrave\;/g' /tmp/portada3

        sed -i 's/ñ/\&ntilde\;/g' /tmp/portada3
        sed -i 's/Ñ/\&Ntilde\;/g' /tmp/portada3

        # Movemos el fichero resultante al
        # nombre que le corresponde segun
        # el primer parametro
        rm /var/www/portada_$1.html
        mv /tmp/portada3 /var/www/portada_$1.html
        chown www-data: /var/www/portada_$1.html

        # Borramos los ficheros temporales
        rm /tmp/portada /tmp/portada2

}

# Llamamos a la funcion con el codigo de idioma
getPortada ca
getPortada en
getPortada es

exit 0

#6 Actualitzat per Alejandro Martín fa més de 11 anys

#!/bin/sh

# Definimos la funcion
getPortada() {
        # Descargamos la portada correspondiente
        # al primer parametro especificado al
        # llamar a la funcion
        wget http://guifi.net/$1/portada -O /tmp/portada

        # Cargamos las cadenas del fichero
        # /tmp/portada que contengan el texto
        # "<h2>" en /tmp/portada2
        grep "<h2>" /tmp/portada > /tmp/portada2

        # Añadimos la etiqueta de inicio de lista
        # desordenada a /tmp/portada3
        echo "<ul>" > /tmp/portada3

        # Cargamos en /tmp/portada3 a
        # partir de la 8a linea de /tmp/portada2
        tail -n+8 /tmp/portada2 >> /tmp/portada3

        # Sustituimos <h2> por <li> en /tmp/portada3
        sed -i 's/<h2>/<li>/g' /tmp/portada3

        # Sustituimos <a href=" por
        # <a href="http://guifi.net
        sed -i 's/<a href="/<a target="_blank" href="http:\/\/guifi.net/g' /tmp/portada3

        # Sustituimos </h2> por </li>
        sed -i 's/<\/h2>/<\/li>/g' /tmp/portada3

        # Añadimos la etiqueta de fin de lista
        # a /tmp/portada3
        echo "</ul>" >> /tmp/portada3

        # Sustituimos tildes y eñes
        sed -i 's/á/\&aacute\;/g' /tmp/portada3
        sed -i 's/é/\&eacute\;/g' /tmp/portada3
        sed -i 's/í/\&iacute\;/g' /tmp/portada3
        sed -i 's/ó/\&oacute\;/g' /tmp/portada3
        sed -i 's/ú/\&uacute\;/g' /tmp/portada3
        sed -i 's/Á/\&Aacute\;/g' /tmp/portada3
        sed -i 's/É/\&Eacute\;/g' /tmp/portada3
        sed -i 's/Í/\&Iacute\;/g' /tmp/portada3
        sed -i 's/Ó/\&Oacute\;/g' /tmp/portada3
        sed -i 's/Ú/\&Uacute\;/g' /tmp/portada3

        sed -i 's/à/\&agrave\;/g' /tmp/portada3
        sed -i 's/è/\&egrave\;/g' /tmp/portada3
        sed -i 's/ì/\&igrave\;/g' /tmp/portada3
        sed -i 's/ò/\&ograve\;/g' /tmp/portada3
        sed -i 's/ù/\&ugrave\;/g' /tmp/portada3
        sed -i 's/À/\&Agrave\;/g' /tmp/portada3
        sed -i 's/È/\&Egrave\;/g' /tmp/portada3
        sed -i 's/Ì/\&Igrave\;/g' /tmp/portada3
        sed -i 's/Ò/\&Ograve\;/g' /tmp/portada3
        sed -i 's/Ù/\&Ugrave\;/g' /tmp/portada3

        sed -i 's/ñ/\&ntilde\;/g' /tmp/portada3
        sed -i 's/Ñ/\&Ntilde\;/g' /tmp/portada3

        # Movemos el fichero resultante al
        # nombre que le corresponde segun
        # el primer parametro
        rm /var/www/portada_$1.html
        mv /tmp/portada3 /var/www/portada_$1.html
        chown www-data: /var/www/portada_$1.html

        # Borramos los ficheros temporales
        rm /tmp/portada /tmp/portada2

}

# Llamamos a la funcion con el codigo de idioma
getPortada ca
getPortada en
getPortada es

exit 0

#7 Actualitzat per eloi rebes fa més de 11 anys

  • Estat ha canviat de In Progress a Resolved
  • % realitzat ha canviat de 80 a 100

També disponible a: Atom PDF