jueves, 20 de agosto de 2009

Mi novia virtual

En este arisco mundo, en el que la soledad y el aislamiento parecen ser las emociones más compartida entre los seres humanos, llega una solución desde Astaroth's World, que nada tiene que ver con los anteriormente publicados "formularios de suicidio".

Se trata de una voz amiga, alguien que nunca te defraudará, alguien que estará a tu lado cada vez que inicies sesión en Ubuntu: se trata de "My Best Minimal Girlfriend", y es que ese es el nombre que le he dado a un script que he realizado basándome en los de ayer.


En este caso, he hecho una locución en un tono más... "normal" (sin naves espaciales de por medio ni nada :p), en la que una agradable voz humanoide femenina te da la bienvenida a tu ordenador, a la vez que te informa sobre el estado de tu disco duro, el clima, las fechas importantes, etc. La "gracia" que intenta tener, es que el monólogo androide varíe según las circunstancias (la fecha, la hora, el calor, el espacio en el disco...).

El código sería el que sigue:


#!/bin/bash
#
# Este sencillo script, basado en eSpeak y en weather-util, recopila
#información sobre tu disco duro, la fecha, la hora y el clima y crea una
#locución, diferente según las distintas circunstancias, que te informa
#de las conclusiones a la que ha llegado a partir de los datos tomados.
#Está pensado para ejecutarse al inicio de sesión, y que así te de la
#bienvenida a la vez que te informe del estado actual.
#
# Realizado por Astaroth (O.R.G.)
# url: http://astarothsworld.blogspot.com
#
# 1.- RECOLECCIÓN DE DATOS:
# Hora:
Hora=`date +%H`
Minutos=`date +%M`
# Fecha:
Dia=`date +%-d`
Mes=`date +%B`
mes=`date +%-m`
A=`date +%Y`
DiaS=`date +%A`
DiaA=`date +%-j`
# Disco Duro:
eTotal=`df | sed -n '2p' | awk '{print $2}'`
eTotal=`echo "scale=2 ; $eTotal / 1048576 " | bc`
eUsado=`df | sed -n '2p' | awk '{print $3}'`
eUsado=`echo "scale=2 ; $eUsado / 1048576 " | bc`
eDisponible=`df | sed -n '2p' | awk '{print $4}'`
eDisponible=`echo "scale=2 ; $eDisponible / 1048576 " | bc`
ePorc=`df | sed -n '2p' | awk '{print $5}' | sed 's/%//g'`
edPorc=`echo "100 - $ePorc" | bc`
Piz=`echo $eDisponible | grep -o "[0-9]*\." | sed 's/\.//g'`
Pdr=`echo $eDisponible | grep -o "\.[0-9]*" | sed 's/\.//g'`
# Clima
clima=`weather -i LETO`
Temp=`echo $clima | sed -s '3p' | grep -o "([0-9]* C)" | sed 's/ C//g' | sed 's/(//g' | sed 's/)//g'`
Hum=`echo $clima | sed -s '4p' | grep -o "[0-9]*%"`
# 2.- ANÁLISIS DE DATOS:
# Hora:
if [ $Hora -ge 6 -a $Hora -lt 14 ] ; then
    Sal="¡Buenos días!"
    Sal2="mañana"

else
    if [ $Hora -ge 14 -a $Hora -lt 20 ] ; then
      Sal="¡Buenas tardes!"
      Sal2="tarde"

    else
      Sal="¡Buenas noches!"
      Sal2="noche"

    fi

fi
# Fecha:
if [ $DiaA -gt 172 -a $DiaA -le 265 ] ; then
    Estac="verano"

else
    if [ $DiaA -gt 265 -a $DiaA -le 355 ] ; then
      Estac="otoño"

    else
      if [ $DiaA -gt 80 -a $DiaA -le 172 ] ; then
      Estac="primavera"
      else
        Estac="invierno"

      fi

    fi

fi
# Citas:
if [ $Dia = 1 -a $mes = 1 ] ; then
    cita="¿cómo llevas el primer día del año?, ¿aún tienes resaca de anoche?"

else
    if [ $Dia = 6 -a $mes = 1 ] ; then
      cita="¿fuiste bueno?, ¿qué te han traido los Reyes Magos?"

    else
      if [ $Dia = 14 -a $mes = 2 ] ; then
        cita="hoy es el día de los enamorados. Espero que tengas algo bonito para mí"

      else
        if [ $Dia = 8 -a $mes = 3 ] ; then
          cita="hoy es el día de la mujer, así que quiero que reflexiones sobre qué sería de tí si no estuviera yo para leerte tus citas"

        else
          if [ $Dia = 19 -a $mes = 3 ] ; then
            cita="¿has felicitado ya a tu padre?, hoy es su día"

          else
            if [ $Dia = 23 -a $mes = 4 ] ; then
              cita="¿sabes ya cuál es el sentido de la vida, el universo, y todo lo demás?, hoy es el día del libro, te recomiendo La Guía del Autoestopista Galáctico, de Douglas Adams"

            else
              if [ $Dia = 1 -a $mes = 5 ] ; then
                cita="hoy es el día del trabajador. ¿Qué tal si para celebrarlo te pones a hacer algo en vez de jugar todo el día al San Andreas?"

              else
                if [ $Dia = 15 -a $mes = 5 ] ; then
                  cita="que sepas que hoy no tienes clase por cortesía de San Isidro"

                else
                  if [ $Dia = 31 -a $mes = 10 ] ; then
                    cita="si hoy ves fantasmas, es normal, hoy es Jalogüin" # No quería escribirlo así xD, pero es que si no, no lo lee bien :p!

                  else
                    if [ $Dia = 24 -a $mes = 12 ] ; then
                      cita="como dice la canción, esta noche es nochebuena, y mañana navidad"

                    else
                      if [ $Dia = 25 -a $mes = 12 ] ; then
                        cita="25 de Diciembre, fum, fum, fum"

                      else
                        if [ $Dia = 28 -a $mes = 12 ] ; then
                          cita="he detectado errores en el disco, todos los análisis indican que es un virus atacando los sistemas de seguridad del ordenador, se están borrando datos a un ritmo alarmante, se procederá al formateo en 5, 4, 3, 2, 1. ¡Picaste!, ¡feliz día de los inocentes!"

                        else
                          if [ $Dia = 31 -a $mes = 12 ] ; then
                            cita="hoy es el último día del año, ha sido muy agradable trabajar a tu lado durante todo este año, $USER"

                          else
                            cita=" "

                          fi

                        fi

                      fi

                    fi

                  fi

                fi

              fi

            fi

          fi

        fi

      fi

    fi

fi
# Disco Duro:
Porcent=`echo $edPorc | sed 's/%//g'`
if [ $Porcent -lt 5 ] ; then
    disco="¡Situación crítica! ¡No dispones de espacio en tu disco duro!"

else
    if [ $Porcent -lt 10 ] ; then
      disco="¡Cuidado! ¡Casi no tienes demasiado espacio en tu disco duro!"

    else
      if [ $Porcent -lt 15 ] ; then
        disco="Te recomiendo que no apures demasiado tu disco duro."

      else
        disco="Aún te falta disco duro por llenar."

      fi

    fi

fi
# Clima
if [ $Temp -gt 20 ] ; then
    temperatura="Hoy hace calor. Ten cuidado con tus dolores de cabeza"
    if [ $Estac = "verano" ] ; then
      TempAd="aunque es normal en estas fechas."

    else
      TempAd="¡Parece verano! No me extraña que luego hablen de calentamiento global."

    fi

else
    if [ $Temp -lt 15 ] ; then
      temperatura="Más vale que te pongas algo de abrigo si sales a la calle"
      if [ $Estac = "invierno" ] ; then
        TempAd="aunque es normal en estas fechas."

      else
        TempAd="¡Ni que fuera invierno! ¡Puto cambio climático!"

      fi

    else
      temperatura="Una temperatura ideal"
      TempAd=" "

    fi

fi
# 3.- DISCURSO:
espeak -a 200 -ves+f4 "¡Hola $USER! $Sal. Son las $Hora y $Minutos minutos de la $Sal2. Hoy $DiaS, día $Dia de $Mes de $A, $cita, tenemos un maravilloso día de $Estac, con temperaturas de $Temp grados centígrados, $temperatura, $TempAd La humedad relativa es del $Hum. Cambiando de tema, tu disco duro está al $edPorc % (tienes libre $Piz con $Pdr gigas), $disco ¡Que tengas un buen día!"



Y esta vez voy a subirlo a 4Shared, para que lo podáis descargar, si os gusta, directamente con solo pinchar aquí:


Os dejo tres locuciones para que veáis cómo cambian según las distintas variables que lea el programa:





Está viva!, VIVA! En Batch PC me llamaron loco! Quién es el loco ahora? Quién necesita chicas xD? (es broma, eh xD?)
Comparte en Facebook

7 comentarios:

  1. No, no me rio de tu amiga virtual o novia, como le llamas :P
    No es lo mismo "reirte de algo" que "algo que te hace gracia" a qué no? :P jaja

    No sé si es problema de mi pc o qué pero no se escucha uno de los 3ejemplos que pusiste, el 1º.

    Los de Telefónica te alteran, los de Batch Pc te llaman loco...mmmm...está claro que la que mejor se porta en agosto contigo...soy yo! :P a qué si? :)

    Besos!! ;)

    P.D: La opción c de mi encuesta, batiría records! :P

    ResponderEliminar
  2. !!!!
    Me has eliminado del gadget de seguidores de tu página?! tanto me odias?! ohhhhhhhhhh, me has matado :(

    ResponderEliminar
  3. Mmmm, gracias "novia" de Astaroth por "perdonarme" ¬¬ :P (ahora tengo que buscar la forma de atravesarla con un rayo! :P ...es...broma...no...te...alteres...)

    Vale, me he reapuntado :P aunque yo estoy segura de que ya lo había hecho :P
    Aunque empiezo a pensar que hubiera sido mejor hacerlo a escondidas! ajajaaj (wow, te he dado la razón, no me lo puedo creer!)

    (Me vigilas? Mmmmm, anda mira, yo a ti también! :P ves una nube delante de tu ventana, en lo alto del cielo? yo estoy allí, y, ves un resplandor brillante que parece el brillo de un diamante? no, no son mis ojos :P es la punta reluciente del rayo que apunta hacia tu ventana! ajajaaj)

    Tranquilo, no te alteres, el texto está protegido con paréntesis :P

    1 beso ;)

    ResponderEliminar
  4. xDDD
    Holis novia de Astaroth`s es un gusto conocerle xDD

    tu novia virtual tiene la voz un poco ronca ^^ o sera que no le agrado xDD

    ahh como sabes que nunca te defraudara no vistes Yo robot (esa fue la primera que me vino a la mente xD)jajajajaja....

    por los momentos seguiré intentando con chicos humanos antes de conseguirme un novio virtual xDDDDDD

    espero que su relación valla bien
    =P

    Saluditos!!!^^

    ResponderEliminar
  5. Sí! Acepto al Diablo como amigo! :P
    Ahora me regalarás una espada? :p

    Bueno, explícame un poco de qué va eso, porque ya tenía dos solicitudes de esas y nunca entendí para qué es :S

    Mmmm no sé yo si los rayos virtuales sirven de algo, supongo que si las "novias" sirven, los rayos también, no?! :P ajaja

    (((Iré a por ti, no te preocupes, si no llega el rayo, llegaré yo ;) ajajaj)))

    Besos my friend!! :P

    Por cierto, le di a aceptar a la solicitud esa, no sé si hay que hacer algo más, tú explícame bien las cosas que luego no vaya a ser que pienses que no hice nada, como lo de seguir tu blog! :P

    ResponderEliminar
  6. Soy amiga y seguidora oficialmente de Astaroth, Príncipe de las Tinieblas! :P
    Y no estoy asustada, me he pasado la tarde debajo de la mesa porque hace más fresquito! :P

    ((Y sí, se lanzar rayos virtuales :P el 1 de septiembre te lo demostraré, estos días mmmm no tengo mucho tiempo...¬¬ ajaaja))

    gud nai!

    ResponderEliminar
  7. Puedes copiar lo que quieras ;)
    El contenido de mi blog es para compartir, no problem ;)

    Besos!!!

    ResponderEliminar

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.