Publicidad:
Logo de La Coctelera

Sugerencia de presentación

He nacido para vago

20 Noviembre 2006

Ruby vs. Flickr

Este artículo se iba a titular Ruby & Flickr, pero le he cambiado el título en homenaje a la pelea tan absurda que me traigo desde hace unos 20' con la gema de Flickr para Ruby (una de ellas, hay varias). Que ya he solucionado, eso sí de una manera un poco guarra. Pero la culpa no ha sido mía, lo juro.

Va de cómo conectar con Flickr desde cualquier aplicación Ruby, con Rails en la cabeza, pero no necesariamente. Va dedicada a Jorge que, como toda persona con un punto de genialidad, no puede evitar empezar las cosas por el final =;-)

Lo prime, instalar la gema:

 $ sudo gem install flickr --include-dependencies
 

En verdad lo prime era conseguir una API key de Flickr, aquí.

Lo segun es editar la librería. No, amigos, no he bebido. Parece ser (lo he aprendido en la pelea que os mencionaba) que es la única forma de que se use nuestra API key en vez de la que viene por defecto (que para más información no funciona). Para añadir algo de confusión, en teoría se le puede pasar la API key como parámetro, pero sólo la usa en la primera conexión. Después vuelve a usar la que viene por defecto, que como ya he dicho no va. Cosas del software experimental.

Pues eso, que cojáis vuestro editor favorito y abráis la librería. En Linux está en /usr/lib/ruby/gems/1.8/gems/flickr-1.0.0/flickr.rb. El que use algún otro engendro (ya saben que Todos Los Sistemas Operativos Menos El Mío Son Basura (tm)), que lo hubiera pensado antes =;-)

En cuanto abráis el archivo y bajéis un poco, váis a ver dónde tenéis que sustituir la API key.

Ya estamos listos para escribir nuestra próxima obra de arte de la Web 2.0. Si os leéis esta documentación, y si queréis profundizar un poco más, ésta otra, no hace falta más explicación. Pero como nos conocemos, pondremos algunos ejemplos =;-)

Este script, ejecutado en un terminal, nos dará una lista del título, autor y URL de las últimas 10 fotos etiquetadas como Ruby:

 require 'rubygems'
 require_gem 'flickr'
 
 flickr = Flickr.new
 
 photos = flickr.tag('ruby')
 photos[0..9].each do |photo|
   puts "#{photo.title} (#{photo.owner.username}): #{photo.url}"
 end
 

Si a alguien le ha parecido difícil, que sepa que está expulsado de clase.

Otro ejemplo, ahora para Rails, que sé que lo estáis deseando. Vamos a sacar en chiquitín las últimas 6 fotos de un usuario, por ejemplo.

Es muy parecido. En el controlador creamos la variable:

 flickr = Flickr.new
 @photos = flickr.users('jorge.hipster').photos[0..5]
 

Y en la vista, por ejemplo:

 <% @photos.each do |photo| -%>
   <a href="<%= photo.url %>"><img src="http://www.lacoctelera.com/<%= photo.source('Square') %>" alt="<%= photo.title %>" /></a>
 <% end -%>
 

O, si os gusta más con helpers (como a mí, cuando me dejan =;-) ):

 <% @photos.each do |photo| -%>
   <%= link_to(image_tag(photo.source('Square'), :alt => photo.title), photo.url %>
 <% end -%>
 

Ale chavales, ¡a quemar esa API!

servido por porras 4 comentarios compártelo favorito

4 comentarios · Escribe aquí tu comentario

jorge

jorge dijo

jajajaja que cabrón!

leía y leía y mi los colores me salían :D
que forma más cruel de ridiculizar a un diseñata con ganas de aprender cosas, eh? ;)

gracias! lo pondré en práctica... lástima que dreamhost no me deje hacer la mitad de las cosas que dices que debo hacer :S pero alguna forma habrá.

20 Noviembre 2006 | 11:58 PM

sergio

sergio dijo

q nooo, tonto xDDD

sí, me imaginaba que no tenías permiso para editar la librería, de todas maneras sí se puede hacer, metiendo una copia en el /lib. ya te echaré un cable (ya te dije que me lo tenía que mirar, no me lo puedo saber todo =:-P)

de todas maneras estoy viendo, no sé si es cosa de la API o de la librería, pero da algunas URL's mal, asume que el username es el directorio, y no siempre coinciden... habrá que mirarlo, pero para media horita no está mal, ¿no?

21 Noviembre 2006 | 12:03 AM

mamuso

mamuso dijo

Con esta librería se pueden subir fotos? yo no conseguí hacerlo. Al final acabé haciéndolo con rflickr.

Por cierto, no sea usté cruel con jorge, es joven e inocente (y usa safari). En el pecado lleva la penitencia.

22 Noviembre 2006 | 12:59 AM

sergio

sergio dijo

No, no se puede (que yo sepa). De hecho es bastante "espartana". Pero para el "modo lectura" me pareció más simple que rflickr. Es lo de siempre, simplicidad contra potencia. Hay que valorar lo que necesitas en cada caso =;-)

22 Noviembre 2006 | 11:40 AM

Escribe tu comentario





Sobre mí

Avatar de porras

Sugerencia de presentación

ver perfil »
contacto »

Me llamo Sergio Gil Pérez de la Manga, y mi madre se cabrea si escribo mi nombre con un sólo apellido. Vivo, trabajo y hago casi todo lo demás en Madrid.

Trabajo como programador porque es lo más parecido que he encontrado a no trabajar. Sobre todo si lo haces bien. Y en eso estoy, en hacerlo cada vez mejor para trabajar cada vez menos. Alguno lo llamaría vagancia, y yo ahí no me meto.

Algunas de las herramientas que en este momento me llevan al Nirvana de no dar un palo al agua son Ruby, Ruby on Rails, Textmate, cualquier sabor de Unix (en este momento principalmente MacOSX pero también Ubuntu Linux) y sus herramientas, o Rake. En ocasiones hablo de ellas aquí, pienso que a alguien le pueden servir y que no puedo ser el único al que no le gusta trabajar.

Y como no sólo de tecnología vive el hombre (bueno, el hombre no sé, pero desde luego yo no), por aquí aparece de vez en cuando la punta del iceberg de mis pequeños pensamientos; al menos la parte de ellos que no cabe en Twitter.

Bienvenidos todos.

Y ahora: ¿Y tú?

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera