Publicado em 11 de setembro de 2015  
Em , ,  


Apesar de ser um feliz usuário dos produtos da Apple, algumas limitações impostas por ela me chateiam. A última foi com relação às proteções de tela do OS X. Mesmo existindo uma integração do sistema operacional com o Flickr, não encontrei uma maneira fácil de utilizar minha galeria como protetor.

Pesquisando no Google, encontrei o post do Matt BrockHow to use Flickr favourites as your screensaver in OS X. Testei a solução proposta por ele e fiz algumas adaptações, vamos a elas.

 

Atenção, não recomendo você seguir adiante se você não tiver qualquer base de programação e administração de sistema operacional.

 

Ambiente

Como todo bom mágico, você precisará preparar o ambiente antes de fazer o truque.

Abra o Terminal (se você não sabe como fazer isso, pare por aqui) e execute mkdir ~/Library/Scripts, este comando criará a pasta Scripts dentro do diretório Library do seu usuário.

Codificação

Execute nano ~/Library/Scripts/get_flickr_photostream.sh, que criará o arquivo Bash e abrirá o editor de texto. Copie e cole o código abaixo e salve o arquivo.

#!/bin/bash

logger "get_flickr_photostream: Started"

mkdir -p ~/Pictures/Galeries/Flickr

if ! cd ~/Pictures/Galeries/Flickr ; then
 logger "get_flickr_photostream: Failed to open ~/Pictures/Galeries/Flickr"

 exit 1
fi

if ! curl -s "http://api.flickr.com/" > /dev/null 2>&1 ; then
 logger "get_flickr_photostream: Failed to connect with Yahoo API"

 exit 1
fi

curl -s "https://api.flickr.com/services/feeds/photos_public.gne?id=YOUR_FLICKR_USERID" | grep 'rel="enclosure"' | awk -F '"' '{print $6}' | while read image_url ; do
 image_name=${image_url#*://}
 image_name=${image_name##*/}

 if [ ! -f $image_name ] ; then
   if curl -s -O $image_url > /dev/null 2>&1 ; then
     logger "get_flickr_photostream: Downloaded file $image_name"
   fi
 fi
done

logger "get_flickr_photostream: Completed"

Este código criará as pastas Galeries/Flickr dentro da pasta Pictures do seu usuário, Caso queira alterar o local, o nome e/ou a hierarquia substitua todas as aparições de ~/Pictures/Galeries/Flickr pelo que for mais conveniente. Depois o código acessará a API do Flickr e salvará suas últimas fotos públicas, para isso você precisará substituir “YOUR_FLICKR_USERID” pelo ID da sua conta no Flickr. Caso não saiba a sua ID, pesquise-a em idGettr.

Depois de definido o código da aplicação, você precisará definir as permissões de acesso. Execute chmod 755 ~/Library/Scripts/get_flickr_photostream.sh.

Para testar o Bash, execute ~/Library/Scripts/get_flickr_photostream.sh.

Agendamento

Há algumas formas de agendar uma tarefa no OS X. Seguindo o exemplo do Matt Brock, escolhi utilizar o Launchd. Execute nano ~/Library/LaunchAgents/br.com.kleberkihara.flickr_photostream.plist, copie e cole o código abaixo e salve o arquivo.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Label</key>
 <string>br.com.kleberkihara.flickr_photostream</string>
 <key>Program</key>
 <string>/Users/YOUR_USERNAME/Library/Scripts/get_flickr_photostream.sh</string>
 <key>StartCalendarInterval</key>
 <dict>
   <key>Minute</key>
   <integer>0</integer>
   <key>Hour</key>
   <integer>9</integer>
 </dict>
 <key>Debug</key>
 <true/>
 <key>AbandonProcessGroup</key>
 <true/>
</dict>
</plist>

Infelizmente no arquivo Plist não pode ser usado o atalho ~/, portanto você precisará substituir “YOUR_USERNAME” pelo nome do seu usuário. Caso você não saiba qual é o nome, execute echo $USER.

Depois de definido o agendamento, você precisará informá-lo pro sistema operacional. Execute launchctl load ~/Library/LaunchAgents/br.com.kleberkihara.flickr_photostream.plist.

Configuração

Pronto! Agora basta você configurar a proteção de tela de sua escolha e definir a pasta usada pela aplicação.

Personalização

Caso você queira outras opções de galerias do Flickr: App Garden. Neste tutorial eu utilizei o Feed Público, mas há diversas opções. Por exemplo, no tutorial do Matt Brock ele utiliza o Feed de Fotos Favoritas.