Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /home/pi/.sup/hooks/before-add-message.rb:
- message.add_label "twitter" if message.raw_header =~ /^X-Twitterrecipientname: /i
- message.add_label "zeta" if message.raw_header =~ /^X-Lj-(Journal|Recipient): zetathustra/i
- message.add_label "cron" if message.raw_header =~ /^X-Cron-Env: /
- message.add_label "vivisector" if message.recipients.any? {|e| e.email.downcase == "pi@vivisector.org"}
- message.add_label "dc206" if message.raw_header =~ /^Subject: \[DC206\]/
- if message.recipients.any? { |e| e.email =~ /^pi\+([^@]+)@/i || e.email =~ /^([^@]+)@pi\./i }
- message.add_label $1
- end
- lids_to_labels = {
- "General IRCD-Hybrid Discussion <hybrid.lists.ircd-hybrid.org>" => "ircdhybrid",
- "User & developer discussion of Sup <sup-talk.rubyforge.org>" => "sup",
- "Sup developer discussion <sup-devel.rubyforge.org>" => "sup-devel",
- "<VX-7R.yahoogroups.com>" => "vx7r",
- "<NMgoth.yahoogroups.com>" => "nmgoth",
- "<abqlispscheme.mailer.hpc.unm.edu>" => "abqlisp",
- "NewtonTalk <newtontalk.newtontalk.net>" => "newtontalk",
- "Movie Nights at JPL <jplmovienight.clanspum.net>" => "movienight",
- }
- if message.raw_header =~ /^List-Id: ([^\n]+)/
- #log "List ID: #{$1}"
- message.add_label "list"
- listname = lids_to_labels[$1]
- message.add_label listname if listname
- end
- /home/pi/.sup/hooks/before-edit.rb:
- header["X-Modeline"] ||= "vim:tw=80:ft=mail:fo=tcql"
- /home/pi/.sup/hooks/mark-as-spam.rb:
- thread.each do |msg, depth, parent|
- next unless msg
- next if msg == :fake_root
- # This also gets run after removing the spam label, so we need to figure
- # out which options need to get passed to bogo.
- # -s for spam, -n for unlearn-as-spam.
- options = "-s"
- treatment = "spam"
- if not msg.has_label? :spam
- options = "-Sn"
- treatment = "ham"
- end
- log "running bogofilter to learn #{msg.id} as #{treatment}"
- IO.popen "bogofilter #{options}", "w" do |bogo|
- written = bogo.write(msg.raw_message)
- expected = msg.raw_message.length
- log "short write to bogofilter (#{written} out of #{expected} written): #{$!}" if written != expected
- end
- end
- #thread.toggle_label :inbox
- thread.remove_label :unread
- /home/pi/.sup/hooks/mime-decode.rb:
- unless sibling_types.member? "text/plain"
- case content_type
- when "text/html": `/usr/bin/elinks -dump -dump-width 132 -no-numbering -force-html '#{filename}'`
- end
- end
- /home/pi/.sup/hooks/signature.rb:
- #!/usr/bin/ruby
- `fortune ~/.sigs/sigs 2>&1`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement