slack_status_tracker 0.1.0.pre → 0.1.0.pre.1
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.
- checksums.yaml +4 -4
- data/README.md +28 -0
- data/exe/slack_status_tracker +0 -0
- data/lib/slack_status_tracker/report_manager.rb +45 -3
- data/lib/slack_status_tracker/version.rb +1 -1
- data/lib/slack_status_tracker.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf46e949211f3729296e03c2521f0b5ef7d0376f
|
4
|
+
data.tar.gz: 1d2c56ffeb23198a31fe5b5b8c02353cb2f5cc56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bc9a2575e75fab6cf128132d561299ee6eb8e21a8daeabaaeb94b8667ba86f9ccaf4f2876199cbf49fce4e6ba9254dd410cc882f32ab08c68822ba87f80b5ec
|
7
|
+
data.tar.gz: e668a263023471cbe21e109b2772edb98c5479e9b75b728aebdd5a6628c918c85f60bcad2ecaf50dec4c828ee3a24fde4631a8640fe8507073825099f49087e6
|
data/README.md
CHANGED
@@ -31,6 +31,7 @@ You should get the available options:
|
|
31
31
|
Usage: slack_status_tracker [options]
|
32
32
|
-s, --start Start to track
|
33
33
|
-o, --output [FILE_PATH] Output file (default slack_online_users.txt)
|
34
|
+
-i, --input [FILE_PATH] JSON file with credentials about channels
|
34
35
|
--channels c1,c2,c3 Slack channels
|
35
36
|
--driver [BROWSER_DRIVER] Browser Driver (default chrome)
|
36
37
|
-f, --frequency [MINUTES] Time minutes frequency (default 30)
|
@@ -82,6 +83,33 @@ Time Online Users
|
|
82
83
|
2016-08-01 09:00:55 +0000 11
|
83
84
|
```
|
84
85
|
|
86
|
+
### Multiple channels
|
87
|
+
In order to support multiple channels you need to pass a JSON configuration
|
88
|
+
file with the username and password for each channel. Specify the path to the
|
89
|
+
file with the proper settings.
|
90
|
+
|
91
|
+
```json
|
92
|
+
// spec/fixtures/sample_input.json
|
93
|
+
{
|
94
|
+
"channels": [
|
95
|
+
{
|
96
|
+
"name": "channel 1",
|
97
|
+
"username": "user1",
|
98
|
+
"password": "secret1"
|
99
|
+
},
|
100
|
+
{
|
101
|
+
"name": "channel 2",
|
102
|
+
"username": "user2",
|
103
|
+
"password": "secret2"
|
104
|
+
}
|
105
|
+
]
|
106
|
+
}
|
107
|
+
```
|
108
|
+
|
109
|
+
```bash
|
110
|
+
slack_status_tracker -i spec/fixtures/sample_input.json
|
111
|
+
```
|
112
|
+
|
85
113
|
## Development
|
86
114
|
|
87
115
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/exe/slack_status_tracker
CHANGED
File without changes
|
@@ -3,23 +3,53 @@ module SlackStatusTracker
|
|
3
3
|
include Singleton
|
4
4
|
|
5
5
|
attr_accessor :output_path
|
6
|
+
attr_accessor :json_hash
|
6
7
|
|
7
8
|
def cmd
|
8
9
|
options = parse_options ARGV
|
9
10
|
set_output options
|
11
|
+
set_json_hash options
|
10
12
|
frequency = options.fetch :frequency
|
11
13
|
append_to_output "Time\t\t\t\tOnline Users"
|
12
14
|
if options[:start]
|
13
15
|
while true
|
14
|
-
|
16
|
+
verify_options options
|
15
17
|
sleep frequency*60
|
16
18
|
end
|
17
19
|
else
|
18
|
-
|
20
|
+
verify_options options
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
|
-
def
|
24
|
+
def verify_options(options = {})
|
25
|
+
if self.json_hash.nil?
|
26
|
+
process_options options
|
27
|
+
else
|
28
|
+
process_json options
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_json(options)
|
33
|
+
driver = options.fetch :driver
|
34
|
+
total = 0
|
35
|
+
time = Time.now
|
36
|
+
|
37
|
+
self.json_hash[:channels].each do |channel_hash|
|
38
|
+
scrapper = SlackStatusTracker::Scrapper.new(channel_hash[:username],
|
39
|
+
channel_hash[:password],
|
40
|
+
driver,
|
41
|
+
channel_hash[:name])
|
42
|
+
begin
|
43
|
+
scrapper.retrieve_users
|
44
|
+
total += scrapper.current_online_users
|
45
|
+
rescue => e
|
46
|
+
puts e.backtrace
|
47
|
+
end
|
48
|
+
end
|
49
|
+
append_to_output "#{time}\t#{total}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def process_options(options = {})
|
23
53
|
channels = options.fetch :channels
|
24
54
|
username = options.fetch :username
|
25
55
|
password = options.fetch :password
|
@@ -54,6 +84,11 @@ module SlackStatusTracker
|
|
54
84
|
options[:output] = o
|
55
85
|
end
|
56
86
|
|
87
|
+
opts.on("-i", "--input [FILE_PATH]",
|
88
|
+
"JSON file with credentials about channels") do |i|
|
89
|
+
options[:input] = i
|
90
|
+
end
|
91
|
+
|
57
92
|
opts.on("--channels c1,c2,c3", Array,
|
58
93
|
"Slack channels") do |channels|
|
59
94
|
options[:channels] = channels
|
@@ -109,5 +144,12 @@ module SlackStatusTracker
|
|
109
144
|
self.output_path = File.join(Dir.pwd, 'slack_online_users.txt')
|
110
145
|
end
|
111
146
|
end
|
147
|
+
|
148
|
+
def set_json_hash(options)
|
149
|
+
if (input_path = options[:input])
|
150
|
+
self.json_hash =
|
151
|
+
JSON.parse(File.read(input_path), symbolize_names: true)
|
152
|
+
end
|
153
|
+
end
|
112
154
|
end
|
113
155
|
end
|
data/lib/slack_status_tracker.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack_status_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre
|
4
|
+
version: 0.1.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyoto Kopz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: watir
|
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
159
|
version: 1.3.1
|
160
160
|
requirements: []
|
161
161
|
rubyforge_project:
|
162
|
-
rubygems_version: 2.
|
162
|
+
rubygems_version: 2.5.1
|
163
163
|
signing_key:
|
164
164
|
specification_version: 4
|
165
165
|
summary: Command line tool to get the status of current users
|