Use either the HTML or the text part of an email, not both
[rails.git] / script / deliver-message
1 #!/usr/bin/env ruby
2
3 require File.dirname(__FILE__) + '/../config/environment'
4
5 exit 0 unless recipient = ARGV[0].match(/^([cm])-(\d+)-(.*)$/)
6
7 if recipient[1] == "c"
8   comment = DiaryComment.find(recipient[2])
9   digest = comment.digest
10   from = comment.diary_entry.user
11   to = comment.user
12 else
13   message = Message.find(recipient[2])
14   digest = message.digest
15   from = message.recipient
16   to = message.sender
17 end
18
19 exit 0 unless recipient[3] == digest[0,6]
20
21 mail = Mail.new(STDIN.readlines.join)
22 body = mail.html_part || mail.text_part
23
24 message = Message.new(:sender => from, :recipient => to,
25                       :sent_on => mail.date.new_offset(0),
26                       :title => mail.subject.sub(/\[OpenStreetMap\] */, ""),
27                       :body => body.decoded)
28 message.save!
29
30 Notifier.message_notification(message).deliver
31
32 exit 0