<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: flickr code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Mon, 13 Oct 2008 18:53:37 GMT</pubDate>
    <description>DZone Snippets: flickr code</description>
    <item>
      <title>embed flickr slideshow</title>
      <link>http://snippets.dzone.com/posts/show/5804</link>
      <description>// embed flickr slideshow&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;iframe align="center" src="http://www.flickr.com/slideShow/index.gne?user_id=12345678@N00&amp;tags=YOUR_TAGS" frameBorder="0" "width=500" height="500" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 21 Jul 2008 19:59:39 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5804</guid>
      <author>fabricadecosas (ana m.)</author>
    </item>
    <item>
      <title>Python Flickr Backup Script (Untested)</title>
      <link>http://snippets.dzone.com/posts/show/4644</link>
      <description>&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# flickrbackup.py - Matt Croydon - http://postneo.com&lt;br /&gt;import flickr # http://jamesclarke.info/projects/flickr/&lt;br /&gt;import BitBucket # http://www.other10percent.com/?p=15&lt;br /&gt;import urllib&lt;br /&gt;me = flickr.people_findByUsername("postneo")&lt;br /&gt;bucket = BitBucket.BitBucket("postneo-flickr")&lt;br /&gt;page = 1&lt;br /&gt;total_photos = found_photos = 0&lt;br /&gt;while 1:&lt;br /&gt;    try:&lt;br /&gt;        photos = flickr.people_getPublicPhotos(me.id, 100, page)&lt;br /&gt;        for photo in photos:&lt;br /&gt;            total_photos = total_photos + 1&lt;br /&gt;            if bucket.has_key("%s-%s" % (photo.title, photo.id)):&lt;br /&gt;                pass # we already have this photo&lt;br /&gt;            else:&lt;br /&gt;                data = urllib.urlretrieve("http://static.flickr.com/%s/%s_%s_o.jpg" % (photo.server, photo.id, photo.secret), "flickr.jpg")&lt;br /&gt;                bits = BitBucket.Bits(filename="flickr.jpg")&lt;br /&gt;                bucket["%s-%s" % (photo.title, photo.id)] = bits&lt;br /&gt;                print "saving %s" % photo.title&lt;br /&gt;                found_photos = found_photos + 1&lt;br /&gt;        page = page + 1&lt;br /&gt;    except AttributeError:&lt;br /&gt;        break # We probably got an empty bucket&lt;br /&gt;print "Found %s photos, saved %s new photos" % (total_photos, found_photos)&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 12 Oct 2007 17:33:51 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4644</guid>
      <author>sikelianos (Zeke Sikelianos)</author>
    </item>
    <item>
      <title>flickr to desktop background</title>
      <link>http://snippets.dzone.com/posts/show/4505</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;# config&lt;br /&gt;########################################&lt;br /&gt;&lt;br /&gt;groups = ['trees']&lt;br /&gt;flick_api_key = 'cc0880a9d309466758fecb6557d7040b'&lt;br /&gt;&lt;br /&gt;# proxy just comment out to disable, types: http, sspi&lt;br /&gt;#http_proxy = {:host=&gt; 'name', :port =&gt; 80, :type =&gt; :sspi}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# temp files for imagemagick&lt;br /&gt;p1 = 'c:/tmp/img.jpg'&lt;br /&gt;p2 = 'c:\\tmp\\img.bmp'&lt;br /&gt;&lt;br /&gt;# Imagemagick path&lt;br /&gt;# http://www.imagemagick.org/script/binary-releases.php#windows&lt;br /&gt;# Recommended package: ImageMagick-6.3.5-6-Q8-windows-static.exe&lt;br /&gt;# convert.exe is needed only, so Imagemagick can be uninstalled.&lt;br /&gt;imagick_path = 'convert.exe'&lt;br /&gt;&lt;br /&gt;# images with larger/smaller width will be skipped&lt;br /&gt;skip_small = 1000&lt;br /&gt;skip_big = 2100&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;# code&lt;br /&gt;########################################&lt;br /&gt;&lt;br /&gt;require 'Win32API'&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'win32/sspi'&lt;br /&gt;require 'json'&lt;br /&gt;require 'yaml'&lt;br /&gt;require "win32/open3"&lt;br /&gt;require "win32/process"&lt;br /&gt;&lt;br /&gt;def parse_url(url)&lt;br /&gt;  m = /(?:.*?\/\/)(.*?)(\/.*)/.match(url)&lt;br /&gt;  [ m[1] , m[2] ]&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class NetWrap&lt;br /&gt;  def initialize(p_type = nil, p_host = nil, p_port = nil)&lt;br /&gt;    if !p_type&lt;br /&gt;      @conn = Net::HTTP&lt;br /&gt;    else&lt;br /&gt;      @conn = Net::HTTP.Proxy(p_host, p_port)&lt;br /&gt;    end&lt;br /&gt;    @p_type = p_type&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def download(url)&lt;br /&gt;    site, path = parse_url(url)&lt;br /&gt;    data = ''&lt;br /&gt;    @conn.start(site) do |http|&lt;br /&gt;      if @p_type &amp;&amp; @p_type == :sspi&lt;br /&gt;        resp, data = Win32::SSPI::NegotiateAuth.proxy_auth_get(http, path)&lt;br /&gt;      else&lt;br /&gt;        resp, data = http.get(path)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    return data&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class FlickR&lt;br /&gt;  def initialize(apikey, netw)&lt;br /&gt;    @apikey = apikey&lt;br /&gt;    @netw = netw&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def request(api_meth,params = {})&lt;br /&gt;    url = "http://api.flickr.com/services/rest/?method=#{api_meth}&amp;api_key=#{@apikey}&amp;format=json"&lt;br /&gt;    params.each {|key,val| url &lt;&lt; "&amp;#{key}=#{val}"}&lt;br /&gt;    res = @netw.download(url)&lt;br /&gt;    JSON.parse(res['jsonFlickrApi('.size..-(');'.size)])&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def group_photos(id)&lt;br /&gt;    request('flickr.groups.pools.getPhotos', :group_id =&gt; id)['photos']['photo']&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def group_lookup(name)&lt;br /&gt;    request('flickr.urls.lookupGroup', :url =&gt; "http://flickr.com/groups/#{name}/pool/")['group']['id']&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def photo_urls(id)&lt;br /&gt;    request('flickr.photos.getSizes', :photo_id =&gt; id)['sizes']['size']&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def photo_best(id, width)&lt;br /&gt;    sizes = photo_urls(id).sort {|a,b| a['width'].to_i &lt;=&gt; b['width'].to_i}&lt;br /&gt;    return sizes.find {|x| x['width'].to_i &gt; width} || sizes.last()&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class ImgList&lt;br /&gt;  def initialize(cfgname)&lt;br /&gt;    @cfg = cfgname&lt;br /&gt;    @saw = {}&lt;br /&gt;    begin&lt;br /&gt;      if f = open(@cfg,'r')&lt;br /&gt;        @saw = YAML.load(f)&lt;br /&gt;        f.close()&lt;br /&gt;        cnt = 0&lt;br /&gt;        @saw.each {|key,val| cnt += 1 if val[1]}&lt;br /&gt;      end&lt;br /&gt;    rescue&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def save()&lt;br /&gt;    if f = open(@cfg,'w+')&lt;br /&gt;      f.write(@saw.to_yaml)&lt;br /&gt;      f.close()&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def next()&lt;br /&gt;    img = @saw.detect {|x| !x[1]}&lt;br /&gt;    return img[0] if img&lt;br /&gt;    img&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def add(url)&lt;br /&gt;    if !@saw.has_key?(url)&lt;br /&gt;      @saw[url] = false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def mark(url)&lt;br /&gt;    @saw[url] = true&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def reset()&lt;br /&gt;    @saw.each {|key,val| @saw[key] = false}&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if defined?(http_proxy)&lt;br /&gt;  netw = NetWrap.new(http_proxy[:type], http_proxy[:host], http_proxy[:port])&lt;br /&gt;else&lt;br /&gt;  netw = NetWrap.new()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;scr_w = Win32API.new("user32", "GetSystemMetrics", ['I'] , 'I').call(0)&lt;br /&gt;&lt;br /&gt;il = ImgList.new('wpcache.yaml')&lt;br /&gt;&lt;br /&gt;photo_url = il.next()&lt;br /&gt;&lt;br /&gt;if !photo_url&lt;br /&gt;  fr = FlickR.new(flick_api_key, netw)&lt;br /&gt;  groups.each do |group|&lt;br /&gt;    fr.group_photos(fr.group_lookup(group)).each do |x|&lt;br /&gt;      next if !x['ispublic']&lt;br /&gt;      photo = fr.photo_best(x['id'],scr_w)&lt;br /&gt;      next if skip_small &amp;&amp; photo['width'].to_i &lt; skip_small&lt;br /&gt;      next if skip_big &amp;&amp; photo['width'].to_i &gt; skip_big&lt;br /&gt;      url = photo['source']&lt;br /&gt;      il.add(url)&lt;br /&gt;    end&lt;br /&gt;  end  &lt;br /&gt;  photo_url = il.next()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if !photo_url&lt;br /&gt;  il.reset()&lt;br /&gt;  photo_url = il.next()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;il.mark(photo_url)&lt;br /&gt;il.save()&lt;br /&gt;&lt;br /&gt;open(p1,'wb+') { |f|  f.write(netw.download(photo_url)) }&lt;br /&gt;&lt;br /&gt;cmdline = "#{imagick_path} -resize #{scr_w} #{p1} bmp3:#{p2}"&lt;br /&gt;Process::waitpid2(Open4::popen4(cmdline)[3])&lt;br /&gt;&lt;br /&gt;Win32API.new("user32", "SystemParametersInfo", ['L','L','P','L'] , 'L').Call(20,0,p2,3)&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 07 Sep 2007 07:54:07 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4505</guid>
      <author>teki321 (teki)</author>
    </item>
    <item>
      <title>Quick Flickr search in Ruby</title>
      <link>http://snippets.dzone.com/posts/show/3493</link>
      <description>// Examples for the three listed APIs weren't working. Instead of choosing one and debugging it, I chose to do something quick and dirty. "MY_API_KEY" and other params would need to be removed to make this more generic. A naive mapping of API method calls that take hashes, and returns an OpenStruct is an approach I'm considering, as it would likely break less often and require less code.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'rexml/document'&lt;br /&gt;require 'ostruct'&lt;br /&gt;&lt;br /&gt;class Flickr &lt; OpenStruct&lt;br /&gt;  include REXML&lt;br /&gt;&lt;br /&gt;  def Flickr.search(text)&lt;br /&gt;    doc = Document.new(&lt;br /&gt;            Net::HTTP.get(&lt;br /&gt;              URI.parse('http://api.flickr.com/services/rest/?method=flickr.photos.search&amp;api_key=MY_API_KEY' +&lt;br /&gt;                        '&amp;extras=license,owner_name,original_format&amp;license=4,5&amp;per_page=20&amp;sort=interestingness-desc' +&lt;br /&gt;                        '&amp;text=' + text)))&lt;br /&gt;     throw "flickr error" unless doc.root.attributes['stat'] == "ok"&lt;br /&gt;     doc.root.elements['photos'].get_elements('//photo').collect {|photo| photo &lt;&lt; Flickr.new(photo) }&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def initialize(e)&lt;br /&gt;    super(e.attributes)&lt;br /&gt;    self.new_ostruct_member("photo_id")&lt;br /&gt;    self.photo_id = e.attributes['id']&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def to_url(image_type="s")&lt;br /&gt;    "http://farm#{farm}.static.flickr.com/#{server}/#{photo_id}_#{secret}_#{image_type}.jpg"&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 11 Feb 2007 20:50:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3493</guid>
      <author>chebuctonian (Daniel Haran)</author>
    </item>
    <item>
      <title>Build Logo using Flickr alphabet pictures in newLISP</title>
      <link>http://snippets.dzone.com/posts/show/2789</link>
      <description>// it uses my FLICKR context for newLISP&lt;br /&gt;// demo available at http://terpri.com&lt;br /&gt;&lt;code&gt;&lt;br /&gt;(define (alphabet-flickr myletter, alph y myurl)&lt;br /&gt;    (setq alph (xml-digest (FLICKR "flickr.groups.pools.getPhotos" nil&lt;br /&gt;                  (append "group_id=27034531@N00&amp;tags=" myletter))))&lt;br /&gt;    (setq alph (clean nil? (map (lambda(x) (if (= myletter ((x (chop(ref 'title x))) 1)) x)) (\&lt;br /&gt;2 -1 (alph 0 2)))))&lt;br /&gt;    (setq y (first (randomize (sequence 0 (length alph)))))&lt;br /&gt;    (setq y (alph y 1))&lt;br /&gt;    (setq myurl (format "http://static.flickr.com/%s/%s_%s_s.jpg"&lt;br /&gt;                       (lookup 'server y)(lookup 'id y)(lookup 'secret y)))&lt;br /&gt;    (println "&lt;img src=" myurl " border=0&gt;"))&lt;br /&gt;&lt;br /&gt;    (if (= page-name "Home")&lt;br /&gt;      (begin&lt;br /&gt;            (println {&lt;div class="flickr_banner"&gt;})&lt;br /&gt;            (map (lambda (x) (alphabet-flickr x)) '("T" "E" "R" "P" "R" "I"))&lt;br /&gt;            (println "&lt;/div&gt;")))&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 06 Oct 2006 00:39:41 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2789</guid>
      <author>frontera000 (bob bae)</author>
    </item>
    <item>
      <title>PHP Flickr! personal photo album</title>
      <link>http://snippets.dzone.com/posts/show/2725</link>
      <description>This code uses your Flickr! account and creates the URLs to the pictures for display on your own personal website! The full documentation is available at http://www.strydominc.za.net/index.php?p=projectdetail&amp;d=phpflickrphoto &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;/**********************************************************************************************&lt;br /&gt;www.strydominc.za.net&lt;br /&gt;Created by Jurgen Strydom, 19-08-2006, jurgen.strydom@gmail.com&lt;br /&gt;Read the readme.txt&lt;br /&gt;Version 1.01, 19-08-2006&lt;br /&gt;**********************************************************************************************/&lt;br /&gt;?&gt;&lt;br /&gt;&lt;link href="pagefloat.css" rel="stylesheet" type="text/css"&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;//Stuff you should update for your script&lt;br /&gt;$api_key = "6cacc91553b802874c6bbad658c9ce94"; // get yours at http://flickr.com/services/api/key.gne&lt;br /&gt;$my_id = "46772344@N00"; // use idgetr: http://idgettr.com/ to find yours if you already changed it to a name&lt;br /&gt;$rows = 10;&lt;br /&gt;//Let the code do the walking from here on&lt;br /&gt;$photos = ($rows * 2);&lt;br /&gt;if (empty($_REQUEST['n'])) {&lt;br /&gt;$pagenum = 1;&lt;br /&gt;} else {&lt;br /&gt;$pagenum = $_REQUEST['n'];&lt;br /&gt;}&lt;br /&gt;//http://static.flickr.com/{server-id}/{id}_{secret}_[mstb].jpg //how the url is created for the images&lt;br /&gt;$xml = simplexml_load_file("http://flickr.com/services/rest/?method=flickr.people.getPublicPhotos&amp;user_id=$my_id&amp;api_key=$api_key&amp;per_page=$photos&amp;page=$pagenum");&lt;br /&gt;$total = $xml-&gt;photos['total'];&lt;br /&gt;$pages = $total % $photos;&lt;br /&gt;$pages = ($total + $photos - $pages) / $photos;&lt;br /&gt;&lt;br /&gt;?&gt;&lt;table width="700" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td height="10" colspan="2" valign="top" align="left"&gt;Please select a page: &lt;?php&lt;br /&gt;for ($k = 1; $k&lt;=$pages; $k++) { ?&gt;&lt;br /&gt;&lt;table width="25" border="0" cellpadding="0" cellspacing="0" align="center" class="pagefloat"&gt; &lt;?php&lt;br /&gt;?&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="25" height="10" valign="top" align="center"&gt;&lt;a href="photos.php?n=&lt;?php echo $k?&gt;"&gt;&lt;br /&gt;	&lt;?php if ($k == $pagenum) {&lt;br /&gt;		 	echo "&lt;u&gt;&lt;b&gt;", $k, "&lt;/b&gt;&lt;/u&gt;";&lt;br /&gt;		 } else {&lt;br /&gt;		 	echo "&lt;b&gt;", $k, "&lt;/b&gt;";&lt;br /&gt;		 } ?&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;?php } &lt;br /&gt;?&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;    &lt;td height="10" colspan="2" valign="top" align="left"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;&lt;br /&gt;if (($pagenum * $photos) &gt; $total) {&lt;br /&gt;	$to = $total % $photos;&lt;br /&gt;} else { $to = $photos; }&lt;br /&gt;for ($k = 0; $k&lt;$to; $k++) {&lt;br /&gt;if (($k % 2) == 0) {&lt;br /&gt;?&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="350" height="100" valign="top" align="center"&gt;&lt;br /&gt;&lt;?php } else {?&gt;&lt;br /&gt;&lt;td width="350" valign="top" align="center"&gt;&lt;br /&gt;&lt;?php }&lt;br /&gt;echo "&lt;b&gt;" , $xml-&gt;photos-&gt;photo[$k]['title'], "&lt;/b&gt;";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jurgenstrydom/&lt;?php echo $xml-&gt;photos-&gt;photo[$k]['id'];?&gt;"&gt;&lt;img src="&lt;?php &lt;br /&gt;echo "http://static.flickr.com/";&lt;br /&gt;echo $xml-&gt;photos-&gt;photo[$k]['server'];&lt;br /&gt;echo "/";&lt;br /&gt;echo $xml-&gt;photos-&gt;photo[$k]['id'];&lt;br /&gt;echo "_";&lt;br /&gt;echo $xml-&gt;photos-&gt;photo[$k]['secret'];&lt;br /&gt;echo "_m.jpg"; &lt;br /&gt;?&gt;"&lt;br /&gt;alt="&lt;?php echo $xml-&gt;photos-&gt;photo[$k]['title'] ?&gt;" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;if (($k % 2) == 1) {&lt;br /&gt;?&gt; &lt;/tr&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td height="10" colspan="2" valign="top" align="left"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;  &lt;br /&gt;  &lt;?php&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;/**********************************************************************************************&lt;br /&gt;Changelog:&lt;br /&gt;&lt;br /&gt;Version 1.01&lt;br /&gt;Fixed a bug that caused code below this script to output incorrect display.&lt;br /&gt;&lt;br /&gt;Version 1&lt;br /&gt;First release.&lt;br /&gt;**********************************************************************************************/&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 27 Sep 2006 23:03:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2725</guid>
      <author>Alkine (Jurgen Strydom)</author>
    </item>
    <item>
      <title>newLISP code to fetch flickr interesting photos and display on screen via TK</title>
      <link>http://snippets.dzone.com/posts/show/2562</link>
      <description>// simple newLISP code to fetch interesting pictures from&lt;br /&gt;// flickr and display on the monitor using TK&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;(set 'api "/services/rest")&lt;br /&gt;(set 'apikey "YOUR-OWN-KEY-HERE")&lt;br /&gt;(set 'host "http://flickr.com")&lt;br /&gt;(set 'email "")&lt;br /&gt;(set 'password "")&lt;br /&gt;&lt;br /&gt;(define (doget method auth params)&lt;br /&gt;  (setq url (append host api "/?api_key=" apikey "&amp;method=" method))&lt;br /&gt;  (if (list? params) &lt;br /&gt;   (setq url (append url "&amp;" (urlencode params))))&lt;br /&gt;  (if (not (nil? auth)) &lt;br /&gt;   (setq url (append url "&amp;email=" email "&amp;password=" password)))&lt;br /&gt;  (setq xmldata (get-url url)))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(define (urlencode params)&lt;br /&gt;  (setq urlstring "")&lt;br /&gt;  (dolist (param1 params) &lt;br /&gt;   (if (not (= urlstring "")) &lt;br /&gt;    (setq urlstring (append urlstring "&amp;"))) &lt;br /&gt;   (setq urlstring (append urlstring (nth 0 param1) "=" (nth 1 param1)))))&lt;br /&gt;&lt;br /&gt;(define (xmlconvert data)&lt;br /&gt;  (xml-type-tags nil nil nil nil)&lt;br /&gt;  (setq sxmldata (xml-parse data (+ 1 2 4 8 16))))&lt;br /&gt;  &lt;br /&gt;(define (getphotos data)&lt;br /&gt;  (if (ref 'photo sxmldata) &lt;br /&gt;   (setq photolist (slice (data (chop (ref 'photo data) 2)) 2 -1)) &lt;br /&gt;   (setq photolist '())))&lt;br /&gt;&lt;br /&gt;(define (handlephotos sxmldata)&lt;br /&gt;  (dolist (aphoto (getphotos sxmldata)) &lt;br /&gt;   (setq pr (first (rest aphoto))) &lt;br /&gt;   (print (format "http://static.flickr.com/%s/%s_%s_o.jpg" (lookup &lt;br /&gt;      'server pr) &lt;br /&gt;     (lookup 'id pr) &lt;br /&gt;     (lookup 'secret pr)))))&lt;br /&gt;&lt;br /&gt;(define (fiv)&lt;br /&gt;  (tk "package require Img")&lt;br /&gt;  (tk "destroy .fivwin")&lt;br /&gt;  (tk "toplevel  .fivwin")&lt;br /&gt;  &lt;br /&gt;  (tk "wm geometry .fivwin [winfo screenwidth .]x[winfo screenheight .]+0+0")&lt;br /&gt;  &lt;br /&gt;  ;; uncomment the following lines to make display "fullscreen"&lt;br /&gt;  ;;(tk "bind .fivwin &lt;Key&gt; {destroy .fivwin}")&lt;br /&gt;  ;;(tk "bind .fivwin &lt;Motion&gt; {destroy .fivwin}")&lt;br /&gt;  ;;(tk "bind .fivwin &lt;Button&gt; {destroy .fivwin}")&lt;br /&gt;  ;;(tk "wm overrideredirect .fivwin yes; focus -force .fivwin")&lt;br /&gt;&lt;br /&gt;  (setq picture (tk "image create photo "))&lt;br /&gt;  (tk (append "label .fivwin.picture  -image " picture))&lt;br /&gt;  (tk "pack .fivwin.picture")&lt;br /&gt;&lt;br /&gt;  (setq xmldata&lt;br /&gt;            (doget "flickr.interestingness.getList" nil  &lt;br /&gt;             '(("per_page" "100")("page" "1"))))		;; how many per page , from which page&lt;br /&gt;  (setq sxmldata (xmlconvert xmldata))&lt;br /&gt;  &lt;br /&gt;  (if (ref 'photo sxmldata) &lt;br /&gt;   (setq photolist (slice (sxmldata (chop (ref 'photo sxmldata) 2)) 2 -1)) &lt;br /&gt;   (exit))&lt;br /&gt;   &lt;br /&gt;  (dolist (aphoto photolist)&lt;br /&gt;  	(if (= "0" (tk "winfo exists .fivwin"))&lt;br /&gt;  		(exit))&lt;br /&gt;    (setq photodesc (first (rest aphoto)))&lt;br /&gt;    (setq photourl (format "http://static.flickr.com/%s/%s_%s_o.jpg" &lt;br /&gt;                            (lookup 'server photodesc)&lt;br /&gt;                            (lookup 'id photodesc)&lt;br /&gt;                            (lookup 'secret photodesc)))&lt;br /&gt;    (tk "update idletasks")&lt;br /&gt;&lt;br /&gt;    (setq file (last (parse photourl "/")))&lt;br /&gt;    (write-file file (get-url photourl))&lt;br /&gt;    (tk (append picture " configure -file " file))&lt;br /&gt;     (delete-file file)))&lt;br /&gt; &lt;/code&gt;</description>
      <pubDate>Fri, 08 Sep 2006 01:42:47 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2562</guid>
      <author>frontera000 (bob bae)</author>
    </item>
    <item>
      <title>Download recent flickr pictures with ruby and the flickr api</title>
      <link>http://snippets.dzone.com/posts/show/2468</link>
      <description>// To make this work, you need to get your own flickr api key.  &lt;br /&gt;// Get one here: http://www.flickr.com/services/api/misc.api_keys.html&lt;br /&gt;// Other than that, just plug and chug and have fun!&lt;br /&gt;// The "b" in "wb" in the second open method may not be necessary in&lt;br /&gt;// non-windows environments.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'open-uri'&lt;br /&gt;require 'rexml/document'&lt;br /&gt;&lt;br /&gt;open('http://www.flickr.com/services/rest/?method=flickr.photos.getRecent&amp;api_key=YOUR_KEY_HERE') { |f|&lt;br /&gt;    doc = REXML::Document.new f.read&lt;br /&gt;    i = 0&lt;br /&gt;    doc.elements.each("rsp/photos/photo") { |element|&lt;br /&gt;        if i &lt; 3&lt;br /&gt;            open("images/file" &lt;&lt; i.to_s &lt;&lt; ".jpg", "wb").&lt;br /&gt;                write(open("http://static.flickr.com/" &lt;&lt; \&lt;br /&gt;                element.attributes["server"] &lt;&lt; "/" &lt;&lt; \&lt;br /&gt;                element.attributes["id"] &lt;&lt; "_" &lt;&lt; \&lt;br /&gt;                element.attributes["secret"] &lt;&lt; "_o.jpg").read)&lt;br /&gt;        else&lt;br /&gt;            break&lt;br /&gt;        end&lt;br /&gt;        i = i + 1&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;puts "Done!"&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 25 Aug 2006 19:51:25 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2468</guid>
      <author>TDonaghe (Terry Donaghe)</author>
    </item>
    <item>
      <title>Java - getHTMLpage</title>
      <link>http://snippets.dzone.com/posts/show/1946</link>
      <description>// Scarica dalla rete una pagina HTML&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package HttpGetIMGs;&lt;br /&gt;&lt;br /&gt;import java.io.BufferedReader;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStreamReader;&lt;br /&gt;import java.io.OutputStreamWriter;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.net.URLConnection;&lt;br /&gt;import java.net.URLEncoder;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * &lt;br /&gt; * Fa una richiesta di connessione al web e scarica la pagina...&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class RandomIMGs&lt;br /&gt;{&lt;br /&gt;	private BufferedReader br;&lt;br /&gt;	private OutputStreamWriter osw;&lt;br /&gt;	private String data;&lt;br /&gt;	private String line;&lt;br /&gt;	private URL url;&lt;br /&gt;	private URLConnection conn;&lt;br /&gt;		&lt;br /&gt;	public RandomIMGs()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			url = new URL("http://flickr.com/photos");&lt;br /&gt;			conn = url.openConnection();&lt;br /&gt;			conn.setDoOutput(true);&lt;br /&gt;			&lt;br /&gt;			osw = new OutputStreamWriter(conn.getOutputStream());&lt;br /&gt;			&lt;br /&gt;			data = URLEncoder.encode("start", "utf-8") + "=" + URLEncoder.encode("1", "utf-8");&lt;br /&gt;			osw.write(data);&lt;br /&gt;			osw.flush();&lt;br /&gt;			&lt;br /&gt;			br = new BufferedReader(new InputStreamReader(conn.getInputStream()));&lt;br /&gt;			&lt;br /&gt;			while((line = br.readLine()) != null)&lt;br /&gt;			{&lt;br /&gt;				System.out.println(line);&lt;br /&gt;			}&lt;br /&gt;			&lt;br /&gt;			osw.close();&lt;br /&gt;			br.close();&lt;br /&gt;		}&lt;br /&gt;		catch(MalformedURLException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;		catch(IOException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public static void main(String[] args)&lt;br /&gt;	{&lt;br /&gt;		new RandomIMGs();&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 21 Apr 2006 01:11:20 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1946</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Python - randomFlickr</title>
      <link>http://snippets.dzone.com/posts/show/1939</link>
      <description>// Create a sample directory flickrIMGs&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import os&lt;br /&gt;import random&lt;br /&gt;import re&lt;br /&gt;import urllib&lt;br /&gt;import urllib2&lt;br /&gt;&lt;br /&gt;class flickrImages(object):&lt;br /&gt;    &lt;br /&gt;    RE_IMAGEURL = re.compile('src="(http://static.flickr.com/.+?_t.jpg)"', re.DOTALL | re.IGNORECASE)&lt;br /&gt;    &lt;br /&gt;    def __init__(self):&lt;br /&gt;        &lt;br /&gt;        self.imagesURLs = {}&lt;br /&gt;    &lt;br /&gt;    def getRandomImages(self):&lt;br /&gt;        '''        &lt;br /&gt;        Scarica dal sito FlickrImages delle immagini in maniera random...&lt;br /&gt;        '''&lt;br /&gt;        &lt;br /&gt;        htmlPage = ''&lt;br /&gt;        request = ''&lt;br /&gt;                &lt;br /&gt;        requestURL = 'http://flickr.com/photos?start=%d' % (random.randint(0, 5000))&lt;br /&gt;        requestHeaders = {'User-Agent':'flickrImages/1.0'}&lt;br /&gt;        &lt;br /&gt;        try:&lt;br /&gt;            request = urllib2.Request(requestURL, None, requestHeaders)&lt;br /&gt;            htmlPage = urllib2.urlopen(request).read(500000)&lt;br /&gt;        except:&lt;br /&gt;            pass&lt;br /&gt;        &lt;br /&gt;        results = flickrImages.RE_IMAGEURL.findall(htmlPage)&lt;br /&gt;        &lt;br /&gt;        if len(results) &gt; 0:&lt;br /&gt;            for image in results:&lt;br /&gt;                imageURL = urllib.unquote_plus(image)&lt;br /&gt;                if not imageURL.startswith('http://'): imageURL = 'http://'+imageURL&lt;br /&gt;                imageURL = imageURL.replace('_t.jpg', '_o.jpg') # Prende il formato piu' grande&lt;br /&gt;                self.imagesURLs[imageURL] = 0&lt;br /&gt;    &lt;br /&gt;    def downloadImages(self):&lt;br /&gt;        '''&lt;br /&gt;        Scarica nella cartella googleIMGs le foto che vengono trovate in rete...&lt;br /&gt;        '''&lt;br /&gt;        &lt;br /&gt;        numberIMGs = len(self.imagesURLs)&lt;br /&gt;        posIMGs = 1&lt;br /&gt;        &lt;br /&gt;        for imageName in self.imagesURLs:&lt;br /&gt;            print '[' + str(posIMGs) + '/' + str(numberIMGs) + '] - ' + imageName&lt;br /&gt;            urllib.urlretrieve(imageName, 'flickrIMGs' + os.sep + os.path.split(imageName)[1])&lt;br /&gt;            posIMGs += 1&lt;br /&gt;    &lt;br /&gt;if __name__ == '__main__':&lt;br /&gt;    &lt;br /&gt;    test = flickrImages()&lt;br /&gt;    &lt;br /&gt;    test.getRandomImages()&lt;br /&gt;    test.downloadImages()&lt;br /&gt;    &lt;br /&gt;    print 'Finito...'&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 20 Apr 2006 02:57:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1939</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
