Subject: Re: [sup-talk] Libnotify popups with sup

From: Ben Gamari <[email-masked]>
Date: Sun, 17 Jan 2010 13:10:06 -0500

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
_______________________________________________
sup-talk mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-talk

---

From: Anirudh Sanjeev <[email-masked]>
Date: Sun, 17 Jan 2010 22:43:12 +0530

Hi,

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

---

From: Ben Gamari <[email-masked]>
Date: Sun, 17 Jan 2010 13:20:10 -0500

- Ben

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

---

From: Cameron Matheson <[email-masked]>
Date: Sun, 17 Jan 2010 11:19:37 -0700

> received, but I'm not sure how to get the exact text of the email

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(
    [email-masked]
    [email-masked]
  )
  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