Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. require 'blather/client'
  2. require 'vcard'
  3.  
  4. tels = ARGV.slice!(2..-1).flat_map do |file|
  5. Vcard::Vcard.decode(open(file).read).flat_map do |vcard|
  6. vcard.telephones.select {|tel| tel.location.include?('cell') }.map { |tel|
  7. tel = tel.to_s.gsub(/[^0-9\+]/, '')
  8. tel = "+1#{tel}" if tel.length == 10 && tel[0] != '+'
  9. { tel: tel, fn: vcard.name.fullname }
  10. }
  11. end
  12. end
  13.  
  14. Blather.logger = Class.new {
  15. def send(level, message)
  16. warn message
  17. end
  18. }.new
  19.  
  20. subscription :request? do |s|
  21. if s.from.domain == "cheogram.com"
  22. puts "Approving #{s.from}"
  23. write_to_stream s.approve!
  24. end
  25. end
  26.  
  27. when_ready do
  28. puts "Connected..."
  29.  
  30. tels.each do |tel|
  31. item = Blather::RosterItem.new(Blather::JID.new(tel[:tel], "cheogram.com"))
  32. item.name = tel[:fn]
  33. item.groups = ['SMS']
  34.  
  35. puts "Adding #{item.jid}"
  36. my_roster << item
  37. self << Blather::Stanza::Presence::Subscription.new(item.jid, :subscribe)
  38. end
  39. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement