You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.5 KiB
60 lines
1.5 KiB
#!/usr/bin/env ruby |
|
|
|
# Original script by Harisankar P S (https://github.com/coderhs) |
|
# at https://github.com/xmpp4r/xmpp4r/blob/master/data/doc/xmpp4r/examples/basic/jabbersend.rb |
|
# |
|
# This script will send a jabber message to the specified JID by the '-t' option. |
|
# The subject can be specified using the '-s' option, and the body can be |
|
# specified using the '-b' option. If the body is omitted, it will be taken from |
|
# stdin on run. |
|
|
|
# settings |
|
myJID = '' |
|
myPassword = '' |
|
########## |
|
|
|
require 'optparse' |
|
require 'xmpp4r' |
|
include Jabber |
|
|
|
if myJID.empty? || myPassword.empty? |
|
puts "Please fill myJID and myPassword in the script." |
|
exit 1 |
|
end |
|
|
|
myJID = JID.new(myJID) |
|
to = nil |
|
subject = '' |
|
body = nil |
|
OptionParser.new do |opts| |
|
opts.banner = 'Usage: jabbersend [-b \'body\'] -s \'subject\' -t dest@domain' |
|
opts.separator '' |
|
opts.on('-s', '--subject SUBJECT', 'sets the message\'s subject') { |
|
|s| subject = s } |
|
opts.on('-b', '--body BODY', 'sets the message\'s body') { |b| body = b } |
|
opts.on('-t', '--to JID', 'sets the receiver') { |t| to = JID.new(t) } |
|
opts.on_tail('-h', '--help', 'show this message') { |
|
puts opts |
|
exit |
|
} |
|
opts.parse!(ARGV) |
|
end |
|
|
|
if to.nil? |
|
puts "No receiver specified. See jabbersend -h" |
|
exit 1 |
|
end |
|
|
|
if body.nil? |
|
puts "No body provided, so you can grab one now.\n\n" |
|
body = STDIN.readlines.join |
|
end |
|
|
|
cl = Client.new(myJID) |
|
cl.connect |
|
cl.auth(myPassword) |
|
|
|
m = Message.new(to, body).set_type(:normal).set_id('1').set_subject(subject) |
|
puts m.to_s |
|
cl.send(m) |
|
cl.close
|
|
|