<?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>Thu, 21 Aug 2008 09:11:00 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>
  </channel>
</rss>
