diff --git a/lib/addresses.rb b/lib/addresses.rb index 95e59f6e92707b84da6addf8858cdaa61077777f..89b437b1322e37f7b6df5b44d0bdd6de67a5c3ad 100644 --- a/lib/addresses.rb +++ b/lib/addresses.rb @@ -68,18 +68,3 @@ class Addresses < Blather::XMPPNode end end end - -module Blather - class Stanza - class Message - def addresses - find( - "/message/ns:addresses", - ns: "http://jabber.org/protocol/address" - ).first&.then do |node| - Addresses.import(node) - end - end - end - end -end diff --git a/lib/blather_ext.rb b/lib/blather_ext.rb deleted file mode 100644 index f8ca01a17c3ad8b6a8a22bb73dd1af818e40a6c6..0000000000000000000000000000000000000000 --- a/lib/blather_ext.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -module Blather - class JID - def with(node: self.node, domain: self.domain, resource: self.resource) - self.class.new(node, domain, resource) - end - end - - class Stanza - # @param message [Blather::Stanza::Message] - def recipients(message) - if message.addresses - message.addresses.map { |a| a.jid.node } - else - [message.to.node] - end - end - end -end diff --git a/lib/blather_ext/jid.rb b/lib/blather_ext/jid.rb new file mode 100644 index 0000000000000000000000000000000000000000..eb85cf55185873997d6fefb383d009986e4c265f --- /dev/null +++ b/lib/blather_ext/jid.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module Blather + class JID + def with(node: self.node, domain: self.domain, resource: self.resource) + self.class.new(node, domain, resource) + end + end +end diff --git a/lib/blather_ext/stanza/message.rb b/lib/blather_ext/stanza/message.rb new file mode 100644 index 0000000000000000000000000000000000000000..2f5ef9dcfa2a4639ef44469a9bdd2aaa9b529806 --- /dev/null +++ b/lib/blather_ext/stanza/message.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require_relative "../../addresses" +require_relative "../../oob" + +module Blather + class Stanza + class Message + def recipients + if addresses + addresses.map { |a| a.jid.node } + else + [to.node] + end + end + + def addresses + find( + "/message/ns:addresses", + ns: "http://jabber.org/protocol/address" + ).first&.then do |node| + Addresses.import(node) + end + end + + def oobs + find("/message/ns:x", ns: "jabber:x:oob").map do |node| + OOB.import(node) + end + end + end + end +end diff --git a/lib/oob.rb b/lib/oob.rb index 3bf2a3bd722f3c29a30f913ee204261be3ab1cf8..38847a5570b68f0a3d89b94152af38c07433c8e4 100644 --- a/lib/oob.rb +++ b/lib/oob.rb @@ -52,15 +52,3 @@ class OOB < Blather::XMPPNode self << i end end - -module Blather - class Stanza - class Message - def oobs - find("/message/ns:x", ns: "jabber:x:oob").map do |node| - OOB.import(node) - end - end - end - end -end diff --git a/sgx_endstream.rb b/sgx_endstream.rb index 434209bd36b565c4f7759b4a2a8cd89fa9139666..00f5541699dba32eee88d512621146cb1dc771c9 100755 --- a/sgx_endstream.rb +++ b/sgx_endstream.rb @@ -12,7 +12,6 @@ require "sentry-ruby" require_relative "lib/addresses" require_relative "lib/blather_client" -require_relative "lib/blather_ext" require_relative "lib/em" require_relative "lib/event_emitter" require_relative "lib/incoming_mms" @@ -20,6 +19,9 @@ require_relative "lib/oob" require_relative "lib/outgoing_mms" require_relative "lib/proxied_jid" require_relative "lib/registration_repo" +Dir["#{File.dirname(__FILE__)}/lib/blather_ext/**/*.rb"] + .sort + .each(&Kernel.method(:require)) singleton_class.class_eval do include Blather::DSL