PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash-Skript: flickrsaver.sh - Automatisches Downloaden der Flickr! Favoriten



Knusper
31.07.10, 12:45
Ich hab ein kleines Bash-Script gebastelt, was vllt. auch der ein oder andere hier nützlich finden wird.


Kurzbeschreibung: Es lädt Favoriten von Flickr! in ein Verzeichniss. Damit kann man sich einen Bildschirmschoner aus Flickr!-Favoriten machen (z.B. mit glsaver bei Xscreensaver).

Download:
http://amor.cms.hu-berlin.de/~herenzed/flickrfavsaver.sh

Code:



#!/bin/bash
################################################## ###################
# Name: flickrfavsaver.sh
#
# Downloads Flickr!-Favorites from the Flickr!-Favorites RSS Feed
# of a user. In combination with a slide-show screensaver you get
# your personal Flickr!-favs screensaver.
#
# Usage: Put in some directory and run from your crontab, point your
# slideshow-screensave to that dir. Be sure to adjust the
# variable favs_rss to your favs-rss feed.
#
# Requires: xsltproc, aria2c and the file parse_enclosure.xsl
# which must be located in the same dir as the script.
# parse_enlcosure.xsl can be obtained from
# http://lincgeek.org/bashpodder/
#
# Author: C. Herenz (christian.herenz <at> student.hu-berlin.de)
# Date: 2010/07/31
################################################## ###################

favs_rss='http://api.flickr.com/services/feeds/photos_faves.gne?nsid=66423646@N00&lang=en-us&format=rss_200_enc'
# adjust this variable to your flickr!-favorites rss feed
# note: the feed link is provided on your flickr!-favorites page, but
# afaik you have to add _enc at the end to get enclosures
# (as an example I set it to my rss feed)


cd $(dirname $0) # crontab-friendly :-)

# cleanup & fetch rss
test -s favs.rss && rm favs.rss || true
aria2c -q -s1 $favs_rss -o favs.rss
# fetch images, if rss fetch was sucsessfull
test -s favs.rss && xsltproc parse_enclosure.xsl favs.rss | aria2c -q \
-s2 --allow-overwrite=false \
--auto-file-renaming=false -d ./Images -i -

# delete thumbnail-sized images, because they would look ugly in slide-show
du -s ./Images/* | while read size name; do
if [ $size -lt 100 ]; then
rm $name
fi
done

# delete images older than 60 days,
# but only if after that more than 10 images would be left
files=$(ls -l ./Images | wc -l)
oldfiles=$(find ./Images -mtime +60 | wc -l)
if [ $(($files - $oldfiles)) -gt 10 ]; then
find ./Images -mtime +60 -delete
fi


Lange Beschreibung:
flickrfavsaver.sh ist ein Bashscript, welches den RSS Feed von Favoriten eines Flickr!-Benutzers auswertet. Den Link auf diesen Feed sieht man auf der Flickr!-Favoriten Seite eines jeden Benutzers. Bei mir ist das z.B. unter http://www.flickr.com/photos/knusper/favorites/. Ziel ist es, diesen Feed dazu zu nutzen, die aktuellen favorisierten Photos auf die Festplatte in einen Ordner zu befördern, der dann von einem Dia-Show Bildschirmschoner verwendet werden kann. Ergebnis ist ein Bildschirmschoner mit den aktuellsten Flickr!-Favoriten.

Das Skript ruft man am besten als Cronjob auf, so dass automatisch neue Favoriten nachgeladen werden.

Einige Flickr!-Benutzer geben ihre Bilder nicht in voller Auflösung zum Download frei. Da die stark reduzierte Auflösung dieser Bilder während der Bildschirmschoner-Dia-Show negativ auffallen würden, löscht das Skript automatisch derartige “Thumbnails”.

Um den Ordner mit den Bildern nicht unendlich groß werden zu lassen, werden Favoriten die älter als 60 Tage sind gelöscht. Aber keine Angst, sollte jemand nicht so viele Bilder wie ich als Favorit markieren: Das Skript sorgt dafür das immer mehr als 20 Bilder im Ordner übrig bleiben.

Einzelheiten zur Benutzung entnehme man dem Skript selbst. Jeder Linux-Freak sollte eigentlich zurecht kommen.