Le enseñaron a distinguir algunas estrellas. Y unos días después empezó a odiarlas a todas. Es más fácil de lo que se piensa odiar algo, aun cuando no tiene nombre.
Dejó de mirar al cielo por las noches, cambió la luna por techos nublados. Es más difícil de lo que se piensa apreciar algo, aun cuando tiene nombre.
- ¿Sabes cómo se llama esa constelación de ahí?
Claro que lo sabía. Sabía su puto nombre. Pero no contestó. Él siguió hablando.
- Estoy convencido de que si no fuese por las pequeñas cosas esto sería una mierda
Sería, dijo.
Y aunque le siguieron gustando las nubes, se reconcilió con las estrellas.
Bueno, pues hoy toca post juanker, pa uno que hago al año no os quejeis xD. Facilico y puede que útil.
Bastantes grupos de música y demás permiten escuchar canciones suyas desde su web mediante el típico reproductor flash con su botón de play, pause y demás. Puesto que son los propios grupos los que nos ofrecen las canciones en sus sites, no hacemos nada ilegal escuchándolas. Tampoco lo haríamos si nos las bajásemos directamente, pero bueno, es otro tema xD
Uno de los reproductores típicos es wimpy (30$ ¬¬). En teoría solo podemos disfrutar de las canciones cuando navegamos por su web. En teoría. En la práctica, tenemos 2 opciones:
- Jugar con los archivos temporales del navegador web. Las canciones se tienen que guardar en algún lado en nuestro ordenador no? Basta con buscarlas, ir renombrándolas y copíandolas a donde queremos.
- Aprovecharnos de la mala configuración del propio wimpy y de que la gente copia y pega archivos sin saber ni lo que hace, y bajárnoslas directamente.
Explicación xD:
wimpy.php es el reproductor en sí. Por tanto, debe conocer en qué directorios se encuentran los archivos que va a reproducir. Si le echamos un ojo al código, vemos que, si como es de esperar, nadie ha cambiado nada, podemos conocer los archivos pasándole como parámetro la acción getstartupdirlist.
Resumiendo,
wimpy.php?action=getstartupdirlist
nos dará un “listado” en texto plano con las canciones que hay en el servidor y su ruta completa. Y digo “listado” porque no tiene el formato para que sea copiar y pegar y ya, pero se puede ver fácilmente. Ejemplico:
Vamos a la web http://www.blablabla.com/mp3/wimpy.php?action=getstartupdirlist y veremos lo siguiente:
Y como es un coñazo copiar&pegar&descargar, he hecho un programita que lo hace solo xD. Para usarlo basta con:
wimpy www.artista.com/dir/wimpy.php
El programa se encarga de obtener el listado, darle formato, guardar en un directorio todas las canciones de esa web. El código, de lo más tonto, en bash_sript_hecho_con_java_para_que_funcione_en_windows:
// All this software is provided under the GNU GPL and/or LGPL licenses.
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class main {
public static void main(String[] args) {
String cadena="",tmp="";
//argumentos !=1
if (args.length!=1){
System.out.println("Miniprogramica juanquer para bajar canciones de wimpy.\r\nUso: wimpy www.WEB.com/directorio/wimpy.php");
}
// argumentos correctos
else{
// dirección correcta
if (!args[0].toString().endsWith("wimpy.php")){
System.out.println("ERROR: introduzca un formato de dirección correcta");
}
// descarga del fichero
String direccion=("wget -O listado.txt " + args[0]+"?action=getstartupdirlist");
try {
Process p= Runtime.getRuntime().exec(direccion);
try {
p.waitFor();
} catch (InterruptedException e) {
System.out.println("ERROR: no se ha podido finalizar la descarga del listado de canciones");
}
} catch (IOException e1) {
System.out.println("ERROR: Asegúrse de que wget está instalado y de que se poseen permisos de escritura en el directorio");
System.exit(1);
}
BufferedReader fd =null;
try{
fd = new BufferedReader(new InputStreamReader(new FileInputStream("listado.txt")));
}
catch (Exception e) {
System.out.println("ERROR: El fichero no se ha podido leer");
System.exit(1);
}
// lectura del fichero
try {
while ((tmp = fd.readLine())!=null) {
cadena=cadena+tmp;
}
} catch (IOException e) {
System.out.println("ERROR: Fichero malformado");
System.exit(1);
}
// REGEX
String mp3="(http://.*?.mp3)";
String[] canciones = null;
String comando;
try{
canciones=cadena.split("&");
}
catch (Exception e){
System.out.println("No se encuentran canciones");
}
// separamos las canciones
System.out.println("Por favor, espere...");
int Ncanciones=0;
for (int i=0;i<canciones.length;i++){
Pattern p = Pattern.compile(mp3,Pattern.CASE_INSENSITIVE| Pattern.DOTALL);
Matcher m=p.matcher(canciones[i]);
// Descarga de las canciones
if (m.find())
{
Ncanciones+=1;
comando = "wget "+ m.group(1).toString();
try {
Process p1= Runtime.getRuntime().exec(comando);
System.out.println("Descargando archivo " + Ncanciones + " : " + comando );
p1.waitFor();
// informacion para depurar, comentar linea superior
// System.out.println(comando);
} catch (Exception e) {
System.out.println("ERROR: imposible descargar"+m.group(1).toString());
System.exit(1);
}
}
}
// finalización
if (Ncanciones==0){
System.out.println("ERROR: No se ha descargado ninguna canción, asegúrese de que la ruta indicada es correcta");
}
else {
System.out.println("FINALIZADO ==>"+ Ncanciones + " canciones descargadas con éxito ^^");
}
}
}
}
Evidentemente, se puede adaptar a lo que te de la gana, basta con cambiar las expresiones regulares y usar el gestor de descarga que queramos.
Foticos del bicho en acción:
- apuntico de empezar
- ejecutándose
- terminado
Como nota avanzada, repetir que no hay que usar cosas de otros sin saber cómo funcionan, que luego vienen las sorpresas. Por ejemplo, y sin entrar en el código, probad cosas como:
A long, long time ago… I can still remember
How that music used to make me smile.
And I knew if I had my chance
That I could make those people dance
And, maybe, they’d be happy for a while.
But February made me shiver
With every paper I’d deliver. Bad news on the doorstep;
I couldn’t take one more step.
I can’t remember if I cried
When I read about his widowed bride,
But something touched me deep inside
The day the music died.
So bye-bye, Miss American Pie.
Drove my chevy to the levee,
But the levee was dry. And them good old boys
Were drinkin’ whiskey and rye
Singin’, “This should be the day that I die”
“This should be the day that I die”
Did you write the Book of Love,
And do you have faith in God above,
If the bible tells you so?
Do you believe in rock ‘n roll,
Can music save your mortal soul, And can you teach me how to dance real slow?
Well, I know that you’re in love with him
`Cause I saw you dancin’ in the gym.
You both kicked off your shoes.
Man, I dig those rhythm and blues.
I was a lonely teenage broncin’ buck
With a pink carnation and a pickup truck,
But I knew I was out of luck
The day the music died.
I started singin’,”Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry. Them good old boys
Were drinkin’ whiskey and rye
And singin’, “This should be the day that I die”
“This should be the day that I die”
Now for ten years
we’ve been on our own
And moss grows fat on a rollin’ stone,
But that’s not how it used to be.
When the jester sang for the King and Queen,
In a coat he borrowed from James Dean
And a voice that came from you and me,
Oh, and while the King was looking down,
The jester stole his thorny crown. The courtroom was adjourned;
No verdict was returned. And while Lennon read a book of Marx,
The quartet practiced in the park, And we sang dirges in the dark
The day the music died.
We were singing,
“Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry. Them good old boys
Were drinkin’ whiskey and rye
And singin’, “This should be the day that I die”
“This should be the day that I die”
Helter Skelter in a summer swelter. The birds flew off with a fallout shelter,
Eight miles high and falling fast.
It landed foul on the grass.
The players tried for a forward pass,
With the jester on the sidelines in a cast.
Now the half-time air was sweet perfume
While the Sergeants played a marching tune. We all got up to dance,
Oh, but we never got the chance!
`Cause the players tried to take the field;
The marching band refused to yield.
Do you recall what was revealed
The day the music died?
We started singing,
“Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry. Them good old boys
Were drinkin’ whiskey and rye
And singin’, “This should be the day that I die”
“This should be the day that I die”
Oh, and there we were all in one place,
A generation lost in space
With no time left to start again.
So come on: Jack be nimble, Jack be quick!
Jack Flash sat on a candlestick Cause fire is the Devil’s only friend.
Oh, and as I watched him on the stage
My hands were clenched in fists of rage.
No angel born in hell
Could break that Satan’s spell.
And as the flames climbed high into the night
To light the sacrificial rite,
I saw Satan laughing with delight
The day the music died
He was singing,
“Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry. Them good old boys
Were drinkin’ whiskey and rye
And singin’, “This should be the day that I die”
“This should be the day that I die”
I met a girl who sang the blues And I asked her for some happy news,
But she just smiled and turned away.
I went down to the sacred store
Where I’d heard the music years before,
But the man there said the music wouldn’t play.
And in the streets: the children screamed, The lovers cried, and the poets dreamed.
But not a word was spoken;
The church bells all were broken.
And the three men I admire most:
The Father, Son, and the Holy Ghost,
They caught the last train for the coast
The day the music died.
And they were singing,
“Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry. And them good old boys
Were drinkin’ whiskey and rye
Singin’, “This should be the day that I die”
“This should be the day that I die”
They were singing,
“Bye-bye, Miss American Pie.”
Drove my chevy to the levee,
But the levee was dry.
Them good old boys
Were drinkin’ whiskey and rye
Singin’, “This should be the day that I die”
I hate the way you talk to me, and the way you cut your hair.
I hate the way you drive my car.
I hate it when you stare.
I hate your big dumb combat boots, and the way you read my mind.
I hate you so much it makes me sick; it even makes me rhyme.
I hate the way you’re always right.
I hate it when you lie.
I hate it when you make me laugh, even worse when you make me cry.
I hate it when you’re not around, and the fact that you didn’t call.
But mostly I hate the way I don’t hate you.
Not even close, not even a little bit, not even at all.
Engarzó los últimos verso sobre el papel. Lucía mordisqueaba el extremo del bolígrafo, mientras releía las últimas frases. Asonante, libre, asonante. Estaba satisfecha. Se levantó de la arrugada mesa, llevándose con cuidado el folio, como si se tratase de algo valioso.
La lamparilla seguía encendida, envolviendo la habitación de un color amarillento. A las dos de la madrugada no hay luz natural. Era algo tan obvio,que le llevó años darse cuenta. Lucía no encontraba luz a pleno día, y trató de iluminarse por las noches. Pero las farolas grises de su ciudad ni alumbran ni calientan lo mismo que un amanecer. No sabían, nadie las había enseñado. Echaba de menos la montaña.
Cruzando el pasillo, llegó al trastero. Rebuscó entre las cajas de cartón la de las historias terminadas. Sobre el parqué, el folio. Allí dentro habría otros 50. El primero estaba en blanco. No le gustaba volver a leer lo que había escrito hace tiempo. Poniéndolo allí evitaba que se le escapara alguna mirada indiscreta. Tampoco le gustaba poner títulos. Nada de lo que Lucía escribía tenía título. Guardó el folio en la caja, saboreando por penúltima vez las estrofas intermedias, y dejó el montón encima.
¿Sabes? A tí algún día te liberaré del papel, y te escribiré en donde de verdad debes estar.
Pero Lucía dudaba de que quedasen pieles sobre las que escribir versos. Y además, estaba segura de que a él no le gustaban los tatuajes.
Volvió a su cuarto, a la silla de madera, a la falsa luz amarilla. Jugueteó con el boli entre sus manos. Lo pasaba entre los huecos de sus dedos, lentamente. Era un boli bic normal, como cualquier otro, sin su pequeña tapa azul en el extremo. Lo más probable es que se hubiese salido, el plástico estaba ligeramente rajado. Le apetecía seguir escribiendo. Estaba segura de tener algún borrador en el cuaderno. Esta vez no se tuvo que mover, lo tenía encima de la mesa. Empezó a pasar páginas. Dibujos en los márgenes. ¿Dónde estaban las notas que buscaba?. Probó suerte a finales de marzo. Fue mientras pasaba del 13 al 14 de abril cuando sonó el móvil. Leyó el mensaje, y se tumbó en la cama. No sabía qué contestar.
A la mañana siguiente seguía siendo día 14. Y lo siguió siendo por más de una semana.
Es una expresión muy antigua (que aparece varias veces en el Quijote). Su origen resulta incierto. Algunos suponen que se trata de un juego de palabras con dos acepciones de alma: la que significa ‘entendimiento’ y la que alude a la ‘parte hueca de ciertas cosas’, como un cañón o un cántaro. Así, con alma de cántaro se estaría diciendo que el entendimiento de alguien es un mero vacío. Fundéu
¿Qué te pasa alma de cántaro?
Hoy me han llamado alma de cántaro y hacía mucho que no lo escuchaba. Me gusta la expresión
Focas, angustia, bus, atropellar a gente con el carro de la compra… esas cosas que hacen grandes los días pequeños antes de que se vuelvan grises
Es un post que tengo guardado en favoritos, desde la primera vez que lo leí. Me asusté. Hacía tiempo de la última vez que me golpearon así.
Ahora lo releo de vez en cuando, para ver si estoy donde tengo que estar.
Sabeis que? Me da igual que pretendais rodearlo todo de indiferencia. Que no tengais palabras bonitas para nadie, que el mundo gire a vuestro alrededor.
Conozco lo que nos diferencia. Sigo vivo. Y no estoy solo.