chagol 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/chagol +19 -15
- data/lib/chagol/cli.rb +36 -1
- data/lib/chagol/version.rb +1 -1
- metadata +2 -2
data/bin/chagol
CHANGED
@@ -9,7 +9,16 @@ if !Dir.exists?(Dir.home + "/.chagol")
|
|
9
9
|
Chagol.install_chagol
|
10
10
|
puts "Please enter your contacts in ~/.chagol/contacts.json\n
|
11
11
|
Modify the one that already exists and add as many more as \n
|
12
|
-
you want in the same format
|
12
|
+
you want in the same format.\n
|
13
|
+
Before using chagol you need to edit your configuration file ~/.chagol/config.rb"
|
14
|
+
exit
|
15
|
+
end
|
16
|
+
|
17
|
+
require File.expand_path("~/.chagol/config")
|
18
|
+
# Check if the user has configured chagol exit if not done
|
19
|
+
if $user[:phone_no] == "" || $user[:password] == ""
|
20
|
+
puts "Please enter your phone no and your password in ~/.chagol/config.rb"
|
21
|
+
exit
|
13
22
|
end
|
14
23
|
|
15
24
|
# Parse the command line options with the awesome optionparser
|
@@ -39,26 +48,20 @@ end.parse!
|
|
39
48
|
# A message is necessary for all actions except quering
|
40
49
|
# for the version of the gem
|
41
50
|
if options[:message] && (options[:users] || options[:lists])
|
42
|
-
# Load the contacts in from the json
|
51
|
+
# Load the contacts in from the json
|
43
52
|
contacts = Array.new
|
44
53
|
File.open(File.expand_path("~/.chagol/contacts.json","r")).each_line do |line|
|
45
54
|
contacts << JSON.parse(line)
|
46
55
|
end
|
47
|
-
#
|
48
|
-
require File.expand_path("~/.chagol/config")
|
56
|
+
# Instantiate the messenger with the users configuration
|
49
57
|
messenger = Chagol::SmsSender.new($user[:phone_no], $user[:password], $user[:provider])
|
50
58
|
# Send messages to individual users
|
51
59
|
if options[:users] && options[:users].length > 0
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
puts "#{target}, #{contact.phone} => #{options[:message]}"
|
58
|
-
messenger.send(contact.phone,options[:message])
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
60
|
+
phone_nos = Chagol.get_phone_nos_from_name(contacts, options[:users])
|
61
|
+
phone_nos.each do |no|
|
62
|
+
messenger.send(no,options[:message])
|
63
|
+
puts no
|
64
|
+
end
|
62
65
|
end
|
63
66
|
# Send messages to user created lists
|
64
67
|
if options[:lists] && options[:lists].length > 0
|
@@ -69,5 +72,6 @@ if options[:message] && (options[:users] || options[:lists])
|
|
69
72
|
else
|
70
73
|
puts "The great chagol isn't a mind reader!
|
71
74
|
Please specify a recipient or a list of recipients
|
72
|
-
to whom you want the message delivered.
|
75
|
+
to whom you want the message delivered.
|
76
|
+
Run chagol -h to learn what it can do."
|
73
77
|
end
|
data/lib/chagol/cli.rb
CHANGED
@@ -8,8 +8,43 @@ module Chagol
|
|
8
8
|
Dir.mkdir(chagol_path)
|
9
9
|
# Create the sample json files for the contacts
|
10
10
|
File.open(chagol_path + "/contacts.json", "w") do |f|
|
11
|
-
f.write('{"json_class":"Contact","data":{"id":1,"name":"Nikhil","phone":"9900000018"}}')
|
11
|
+
f.write('{"json_class":"Chagol::Contact","data":{"id":1,"name":"Nikhil","phone":"9900000018"}}')
|
12
12
|
end
|
13
13
|
# Create the json for the lists
|
14
|
+
#
|
15
|
+
# Create the user configuration
|
16
|
+
File.open(chagol_path + "/config.rb", "w") do |f|
|
17
|
+
f.write('# Please change this file to replace your phone no, password and provider
|
18
|
+
# The password is your way2sms/160by2/provider password
|
19
|
+
|
20
|
+
$user = { phone_no: "",
|
21
|
+
password: "",
|
22
|
+
provider: "way2sms" }')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# More helper methods
|
27
|
+
|
28
|
+
# This finds the phone nos for the users whose names have been passed as
|
29
|
+
# command line arguments also it returns phones no's that were passed
|
30
|
+
# directly. The messages are to be sent to each no returned from here.
|
31
|
+
def self.get_phone_nos_from_name(contacts, names)
|
32
|
+
phone_nos = Array.new
|
33
|
+
# Parse out phone no's first and remove them from the names first
|
34
|
+
names.delete_if do |ph_no|
|
35
|
+
if /[7-9][0-9]{9}/.match(ph_no)
|
36
|
+
phone_nos << ph_no
|
37
|
+
end
|
38
|
+
end
|
39
|
+
# And find the phone no's from the contacts next
|
40
|
+
names.each do |target|
|
41
|
+
contacts.each do |contact|
|
42
|
+
if target.casecmp(contact.name) == 0
|
43
|
+
# puts "#{target}, #{contact.phone}" # debug mode info
|
44
|
+
phone_nos << contact.phone
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return phone_nos.uniq
|
14
49
|
end
|
15
50
|
end
|
data/lib/chagol/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chagol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-29 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Chagol can send messages to any Indian mobile no
|
15
15
|
email:
|