Revision: 4441 Author: hans URL: http://bknr.net/trac/changeset/4441
store guid/url and title in a hash instead of in separate lists U trunk/projects/planetwit/planetwit.clj
Modified: trunk/projects/planetwit/planetwit.clj =================================================================== --- trunk/projects/planetwit/planetwit.clj 2009-08-19 17:36:33 UTC (rev 4440) +++ trunk/projects/planetwit/planetwit.clj 2009-08-19 18:11:37 UTC (rev 4441) @@ -39,14 +39,14 @@ (catch java.io.FileNotFoundException _ (println (format "could not update twitter status (no auth file):\n%s\n" status)))))
-(defn post-twits [urls titles] - (when titles - (update-twitter-status (format "%s %s" (first titles) +(defn post-twits [items] + (when items + (update-twitter-status (format "%s %s" (:title (first items)) (:body (http/simple-http-request (format "http://tinyurl.com/api-create.php?url=%s" - (first urls)) + (:guid (first items))) nil)))) - (recur (rest urls) (rest titles)))) + (recur (rest items))))
(defn poll "Poll planet lisp, check for new postings, update Twitter status when new postings have appeared" @@ -54,17 +54,17 @@ (save-data (let [old-urls (load-data) process - (fn [items new-urls new-titles] + (fn [items new-items] (if items (let [item (first items) - guid (first (xml-> item :guid text)) ] + guid (first (xml-> item :guid text)) + title (first (xml-> item :title text))] (recur (rest items) - (conj new-urls guid) (if (old-urls guid) - new-titles - (conj new-titles (first (xml-> item :title text)))))) + new-items + (conj new-items { :guid guid :title title })))) (do - (post-twits new-urls new-titles) - new-urls)))] + (post-twits new-items) + (map #((:guid %)) new-items))))] (process (xml-> (feed-to-zip "http://planet.lisp.org/rss20.xml") :channel :item) - #{} [])))) + []))))