Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. /home/pi/.sup/hooks/before-add-message.rb:
  2. message.add_label "twitter" if message.raw_header =~ /^X-Twitterrecipientname: /i
  3. message.add_label "zeta" if message.raw_header =~ /^X-Lj-(Journal|Recipient): zetathustra/i
  4. message.add_label "cron" if message.raw_header =~ /^X-Cron-Env: /
  5. message.add_label "vivisector" if message.recipients.any? {|e| e.email.downcase == "pi@vivisector.org"}
  6. message.add_label "dc206" if message.raw_header =~ /^Subject: \[DC206\]/
  7.  
  8. if message.recipients.any? { |e| e.email =~ /^pi\+([^@]+)@/i || e.email =~ /^([^@]+)@pi\./i }
  9. message.add_label $1
  10. end
  11.  
  12. lids_to_labels = {
  13. "General IRCD-Hybrid Discussion <hybrid.lists.ircd-hybrid.org>" => "ircdhybrid",
  14. "User & developer discussion of Sup <sup-talk.rubyforge.org>" => "sup",
  15. "Sup developer discussion <sup-devel.rubyforge.org>" => "sup-devel",
  16. "<VX-7R.yahoogroups.com>" => "vx7r",
  17. "<NMgoth.yahoogroups.com>" => "nmgoth",
  18. "<abqlispscheme.mailer.hpc.unm.edu>" => "abqlisp",
  19. "NewtonTalk <newtontalk.newtontalk.net>" => "newtontalk",
  20. "Movie Nights at JPL <jplmovienight.clanspum.net>" => "movienight",
  21. }
  22. if message.raw_header =~ /^List-Id: ([^\n]+)/
  23. #log "List ID: #{$1}"
  24. message.add_label "list"
  25. listname = lids_to_labels[$1]
  26. message.add_label listname if listname
  27. end
  28.  
  29. /home/pi/.sup/hooks/before-edit.rb:
  30. header["X-Modeline"] ||= "vim:tw=80:ft=mail:fo=tcql"
  31.  
  32. /home/pi/.sup/hooks/mark-as-spam.rb:
  33. thread.each do |msg, depth, parent|
  34. next unless msg
  35. next if msg == :fake_root
  36.  
  37. # This also gets run after removing the spam label, so we need to figure
  38. # out which options need to get passed to bogo.
  39. # -s for spam, -n for unlearn-as-spam.
  40. options = "-s"
  41. treatment = "spam"
  42.  
  43. if not msg.has_label? :spam
  44. options = "-Sn"
  45. treatment = "ham"
  46. end
  47.  
  48. log "running bogofilter to learn #{msg.id} as #{treatment}"
  49. IO.popen "bogofilter #{options}", "w" do |bogo|
  50. written = bogo.write(msg.raw_message)
  51. expected = msg.raw_message.length
  52. log "short write to bogofilter (#{written} out of #{expected} written): #{$!}" if written != expected
  53. end
  54. end
  55. #thread.toggle_label :inbox
  56. thread.remove_label :unread
  57.  
  58. /home/pi/.sup/hooks/mime-decode.rb:
  59. unless sibling_types.member? "text/plain"
  60. case content_type
  61. when "text/html": `/usr/bin/elinks -dump -dump-width 132 -no-numbering -force-html '#{filename}'`
  62. end
  63. end
  64.  
  65. /home/pi/.sup/hooks/signature.rb:
  66. #!/usr/bin/ruby
  67. `fortune ~/.sigs/sigs 2>&1`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement