X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dc2a2c8ebd1a11e4a64555fda22c6859a51defff..94008d90596352b37db475f2c61a1d7257e0c3f0:/script/deliver-message?ds=inline diff --git a/script/deliver-message b/script/deliver-message index 04dcb881b..6907637a6 100755 --- a/script/deliver-message +++ b/script/deliver-message @@ -2,28 +2,33 @@ require File.dirname(__FILE__) + "/../config/environment" -exit 0 unless recipient = ARGV[0].match(/^([cm])-(\d+)-(.*)$/) - -if recipient[1] == "c" - comment = DiaryComment.find(recipient[2]) +if recipient = ARGV[0].match(/^c-(\d+)-(\d+)-(.*)$/) + comment = DiaryComment.find(recipient[1]) digest = comment.digest - date = diary_comment.created_at - from = comment.diary_entry.user + date = comment.created_at + from = comment.diary_entry.subscribers.find(recipient[2]) to = comment.user -else - message = Message.find(recipient[2]) + token = recipient[3] +elsif recipient = ARGV[0].match(/^m-(\d+)-(.*)$/) + message = Message.find(recipient[1]) digest = message.digest date = message.sent_on from = message.recipient to = message.sender + token = recipient[2] +else + exit 0 end -exit 0 unless recipient[3] == digest[0, 6] +exit 0 unless from.active? +exit 0 unless token == digest[0, 6] exit 0 if date < 1.month.ago -message.update_attribute(:message_read, true) if message +message&.update(:message_read => true) -mail = Mail.new(STDIN.readlines.join) +mail = Mail.new($stdin.read + .encode(:universal_newline => true) + .encode(:crlf_newline => true)) message = Message.from_mail(mail, from, to) message.save!