<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: pictures code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 18:02:47 GMT</pubDate>
    <description>DZone Snippets: pictures code</description>
    <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>How to download files with Ruby</title>
      <link>http://snippets.dzone.com/posts/show/2469</link>
      <description>// Note: the "b" in "wb" in the open method may not be needed in&lt;br /&gt;// non-Windows environments.  In Windows it indicates that you're writing&lt;br /&gt;// binary information.  You probably won't need it for downloading straight text&lt;br /&gt;// or html either.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'net/http'&lt;br /&gt;&lt;br /&gt;Net::HTTP.start("static.flickr.com") { |http|&lt;br /&gt;  resp = http.get("/92/218926700_ecedc5fef7_o.jpg")&lt;br /&gt;  open("fun.jpg", "wb") { |file|&lt;br /&gt;    file.write(resp.body)&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;puts "Yay!!"&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 25 Aug 2006 19:59:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2469</guid>
      <author>TDonaghe (Terry Donaghe)</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>
  </channel>
</rss>
