quarta-feira, 18 de fevereiro de 2009

Commonthread Flickr-Fu + Background-Fu!

Recentemente precisei fazer um trabalho que envolvia agendar tarefas para serem feitas em uma determinada hora especificada, e além disso, que eu pudesse acompanhar o andamento do processo agendado, tudo isso envolvendo uma conexão com a API Flickr.

Bom, a conexão com o Flickr eu já havia testando, inclusive comentei sobre isso.



Depois de algumas pesquisas descobri o plugin background-fu que faz exatamente o que eu precisava, ou seja, agendar um job e poder acompanhá-lo depois.

Pois bem, seguindo o tutorial do próprio plugin você faz toda a instalação e trabalha sem problemas. Ahh.. deve-se atentar para a linha (
config.active_record.allow_concurrency = true ) que deve ser adiconada no environment.rb para que sejam ativadas as "features" bônus de acompanhamento de jobs.




Bem, obviamente que se fosse só isso eu não precisaria escrever nada aqui pois já tem tudo no tutorial exemplo dos dois plugins, mas, eu tive um graaannde problema e como queimei as pestanas pra solucionar resolvi postar aqui.

O problema começou quando tentei fazer com que o background-fu fizesse a conexão com o Flickr lá mesmo fizesse uma pesquisa para que o resultado eu pudesse manipular. Pois bem, a conexão foi feita sem nenhum problema, mas quando eu "pedia" para fazer a pesquisa simplesmente era retornado uma resposta vazia, como se não existisse conteúdo no site para retornar.

Pra resumir, depois de muito rodar acabei descobrindo que o problema todo é o tal arquivo token.yml que o flickr-fu cria. Isso mesmo, simplesmente ao utilizar o worker do background-fu a classe Flickr não reconhecia o arquivo, e aí analisando mais a fundo descobri que o arquivo é carregado pelos parâmetros que estão em outro aquivo "flickr.yml" que o próprio usuário cria.

O arquivo flickr.yml originalmente tem a seguinte formatação:

== Example flickr.yml
--- !map:HashWithIndifferentAccess
key: "YOUR KEY"
secret: "YOUR SECRET"
token_cache: "token_cache.yml"

Ele funciona perfeitamente até o momento é que vai se usar o background-fu.

A solução que encontrei foi colocar o caminho absoluto do arquivo "token.yml" no arquivo "flickr.yml". Ele ficaria mais ou menos assim:

== Example flickr.yml
--- !map:HashWithIndifferentAccess
key: "YOUR KEY"
secret: "YOUR SECRET"
token_cache: "/home/fulano/rails_app/seu_projeto/token_cache.yml"


Pronto! Fazendo isso tudo voltou ao "normal"!

[]'s

Nenhum comentário: