.rubocop.yml 🔗
@@ -143,5 +143,8 @@ Style/FrozenStringLiteralComment:
Exclude:
- forms/**/*.rb
+Style/RescueModifier:
+ Enabled: false
+
Naming/AccessorMethodName:
Enabled: false
Stephen Paul Weber created
.rubocop.yml | 3 +++
sgx_endstream.rb | 22 ++++++++++++++++++++--
2 files changed, 23 insertions(+), 2 deletions(-)
@@ -143,5 +143,8 @@ Style/FrozenStringLiteralComment:
Exclude:
- forms/**/*.rb
+Style/RescueModifier:
+ Enabled: false
+
Naming/AccessorMethodName:
Enabled: false
@@ -155,6 +155,8 @@ ibr type: :set do |iq|
end
message from: /@sms.chat.1pcom.net\Z/ do |m|
+ json = JSON.parse(m.body) rescue nil
+
tel = if m.from.node.length > 7
"+#{m.from.node}"
else
@@ -164,6 +166,22 @@ message from: /@sms.chat.1pcom.net\Z/ do |m|
m.from = Blather::JID.new(tel, CONFIG[:component][:jid])
m.to = ProxiedJID.new(m.to).unproxied
m.subject = nil # They send a generic subject for some reason
+
+ if json.is_a?(Hash) && json["response"]
+ log.info("SMS Status", json)
+ resp = json["response"]
+ m.id = resp["id"]
+ swap = m.from
+ m.from = m.to
+ m.to = swap
+ m.body = ""
+ m = m.as_error(
+ "recipient-unavailable",
+ :cancel,
+ "#{resp['text']} (#{resp['code']} #{resp['subcode']} #{resp['dlrid']})"
+ )
+ end
+
self << m
end
@@ -195,12 +213,12 @@ message ->(m) { !m.oobs.empty? }, to: /\A\+?\d+@/ do |m|
self << OutgoingMMS.for(m).to_stanza(id: m.id, from: m.from)
end
-def too_long_for_sms(m)
+def too_long_for_sms?(m)
# ~3 segments
m.body.length > (m.body.ascii_only? ? 160 : 70) * 3
end
-message :body, method(:too_long_for_sms).to_proc, to: /\A\+?\d+@/ do |m|
+message :body, method(:too_long_for_sms?).to_proc, to: /\A\+?\d+@/ do |m|
self << OutgoingMMS.for(m).to_stanza(id: m.id, from: m.from)
end