Hi, I want to write a small hook to sup to use libnotify and show a small popup whenever email comes from specific sources. I need to be able to mention a list of email addresses of people who''s emails are important to me and need to be notified of, and the other ones I can just ignore. I don''t know any ruby, but I''m sure that this isn''t something too difficult to implement. I am not sure how to use the hooks and the API in them. I guess I have to use a hook that is executed when the email is received, but I''m not sure how to get the exact text of the email address. Any suggestions on how to go about doing this would be awesome! Thanks, Anirudh -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 197 bytes Desc: not available URL: <http://rubyforge.org/pipermail/sup-talk/attachments/20100117/9522830f/attachment.bin>
Excerpts from Anirudh Sanjeev''s message of Sun Jan 17 12:13:12 -0500 2010:> Hi, > > I want to write a small hook to sup to use libnotify and show a small > popup whenever email comes from specific sources. >You mean something like this? It was a little flaky when I last used it, but it did work. - Ben # libnotify notifications # Requires libnotify-bin package notify_cmd = "/usr/bin/notify-send -i /usr/share/icons/Human?/scalable/emblems/emblem-mail.svg" if num >= 1 notify_summary = "sup found #{num_inbox}/#{num} new message" notify_summary << "s" if num > 1 notify_body = "" from_and_subj.each do |f,s| f.gsub! /\(.*\)/, '''' f.gsub! /<.*>/, '''' f.strip! s.slice! 0..20 s << "..." notify_body << "? #{f} : #{s}\n" end if notify_body.length > 100 notify_body.slice! 0..100 notify_body << "\n..." end cmd = "#{notify_cmd} ''#{notify_summary}'' ''#{notify_body}''" Logger.warn cmd system cmd else #system "#{notify_cmd} ''sup status'' ''No new email (yet)''" end
Excerpts from Anirudh Sanjeev''s message of Sun Jan 17 10:13:12 -0700 2010:> I want to write a small hook to sup to use libnotify and show a small > popup whenever email comes from specific sources. > > I need to be able to mention a list of email addresses of people who''s > emails are important to me and need to be notified of, and the other > ones I can just ignore. > > I don''t know any ruby, but I''m sure that this isn''t something too > difficult to implement. I am not sure how to use the hooks and the API > in them. I guess I have to use a hook that is executed when the email is > received, but I''m not sure how to get the exact text of the email > address.You can see the hooks (and the variables they expose) by running sup -l. I think you want the after-poll hook. Something like this might work (I''m modifying my after-poll.rb slightly) require ''cgi'' notify_addresses = %w( someguy at example.com otherguy at example.com ) from_and_subj.each do |m| next if notify_addresses.select { |a| m[0].include? a }.empty? msg = CGI.escapeHTML(m.join "\n") system("notify-send", "-t", "10000", "New E-Mail", msg) end (the HTML escaping is necessary for notify-send to work, otherwise you just get a blank popup). Cam
Excerpts from Anirudh Sanjeev''s message of Sun Jan 17 12:13:12 -0500 2010:> Hi, > > I want to write a small hook to sup to use libnotify and show a small > popup whenever email comes from specific sources. >You mean something like this? It was a little flaky when I last used it, but it did work. - Ben # libnotify notifications # Requires libnotify-bin package notify_cmd = "/usr/bin/notify-send -i /usr/share/icons/Human?/scalable/emblems/emblem-mail.svg" if num >= 1 notify_summary = "sup found #{num_inbox}/#{num} new message" notify_summary << "s" if num > 1 notify_body = "" from_and_subj.each do |f,s| f.gsub! /\(.*\)/, '''' f.gsub! /<.*>/, '''' f.strip! s.slice! 0..20 s << "..." notify_body << "M-b~VM-6 #{f} : end if notify_body.length > 100 notify_body.slice! 0..100 notify_body << "\n..." end cmd = "#{notify_cmd} ''#{notify_summary}'' ''#{notify_body}''" Logger.warn cmd system cmd else #system "#{notify_cmd} ''sup status'' ''No new email (yet)''" end