You seriously think the lack of Leiningen is an advantage ? <facepalm>
On Thursday, August 16, 2012 3:00:50 PM UTC+2, Sean Neilan wrote: > > Hey All, > > ClojurePY is actually quite amazing. It has none of the complexities with > libraries and projects like Clojure and is suitable for crunching data > (because it's on Python) unlike Node.js/Clojurescript. You can use all the > python libraries. You can even import ipdb and step through your code > without any modifications to the ClojurePY source tree. Even the REPL is > better by default. > > Just try > sudo easy_install clojure-py > > Then, type clojurepy at your shell to run it! > > Then, put this crappy script into emailScraper.clj to automagically > listen to IMAP emails from Gmail: > Be sure to download imapidle.py from > https://raw.github.com/athoune/imapidle/master/src/imapidle.py and place > it in the same directory as emailScraper.clj > Then do $ clojurepy emailScraper.clj. No leiningen! No compilation! Just > run it! > > (ns emailScraper) > ; adding current directory to path > (require 'os) > (require 'sys) > (require 'time) > > ;(.chdir os "/Users/seanneilan/BucketsOfNantucket") > > (.append sys/path (.abspath os/path (.-curdir os/path))) > > ; using imapidle in clojurepy > ;https://raw.github.com/athoune/imapidle/master/src/imapidle.py > > > (require 'imapidle) > (def m (.IMAP4_SSL (.-imaplib imapidle) "imap.gmail.com")) > (def fetcher (.IMAP4_SSL (.-imaplib imapidle) "imap.gmail.com")) > (require 'getpass) > (require 'pyzmail) > ;(require 'ipdb) > > (def pass "Your password here!") > > (.login m "your gmail here" pass) ; type in your password here > (.login fetcher "your gmail here" pass) > (.select m) > > > (defn process-message [message] > ;(println message) > (.select fetcher) > (let [raw-msg (.fetch fetcher (int (first message)) "(BODY.PEEK[])") > msg (.message_from_string pyzmail (-> raw-msg > second > first > second)) > from (.get_address msg "from") > to (.get_addresses msg "to") > cc (.get_addresses msg "cc") > bcc (.get_addresses msg "bcc") > subject (.get_subject msg) > attachments (filter > #(nil? (.-is_body msg)) > (.-mailparts msg)) > text_body (filter > #(= (.-is_body %) "text/plain") > (.-mailparts msg)) > html_body (filter > #(= (.-is_body %) "text/html") > (.-mailparts msg)) > body (if (empty? html_body) (first text_body) (first html_body)) > body (.get_payload body)] > (println body))) > > > (dorun (map process-message (.idle m))) > > (comment > (loop [messages (.idle m)] > (println (first messages)) > (recur (rest messages)))) > > > I'm surprised ClojurePY hasn't received more attention. > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en