navi_client 1.0.1 → 1.0.2
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 +5 -5
- data/lib/client.rb +22 -14
- data/lib/cloud/navi_cloud_client.rb +1 -2
- data/lib/http_service/naviai.rb +9 -6
- data/lib/local/navi_local_client.rb +2 -2
- data/lib/navi_client/version.rb +1 -1
- metadata +16 -17
- data/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 07a660e29a51bd335bf13e164ef1d265cbc72fa4
|
4
|
+
data.tar.gz: 55144c6419251828e9ff25266d534a03d5fe8e74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5a41ada36cc8242359d68c622c3c097cabf3510a85af4b836456a48c58b6bec5b250a75f6aad1fcae702aa0cb962788a1f62baf59e5f940dde80bd7b12da8d7
|
7
|
+
data.tar.gz: 76e6b2e83e89a590b5e88bd7e3cdc22ffc59da0dbaa9c2f1bf94aa464a114e033cbfa2391ece9264f200d1661574435b567b4539329ab24d303045438b5daf83
|
data/lib/client.rb
CHANGED
@@ -9,7 +9,8 @@ module Client
|
|
9
9
|
# login to the navi-cloud and get the authentication token
|
10
10
|
#
|
11
11
|
def login
|
12
|
-
|
12
|
+
url = "#{@sso_web_url/oauth/token}"
|
13
|
+
provider_url = url
|
13
14
|
@token = HTTParty.post(provider_url,
|
14
15
|
body: {
|
15
16
|
client_id: config["uid"], # get from sso_web application
|
@@ -69,20 +70,16 @@ module Client
|
|
69
70
|
@logger.debug "\nProcessing #{message_ids.count} mails.\n"
|
70
71
|
end
|
71
72
|
end
|
72
|
-
|
73
73
|
message_ids.each_with_index do |message_id, i|
|
74
74
|
# fetch all the email contents
|
75
75
|
data = imap.fetch(message_id, "RFC822")
|
76
|
-
|
77
76
|
data.each do |d|
|
78
77
|
msg = d.attr['RFC822']
|
79
78
|
# instantiate a Mail object to avoid further IMAP parameters nightmares
|
80
79
|
mail = Mail.read_from_string msg
|
81
80
|
|
82
81
|
# call the block with mail object as param
|
83
|
-
|
84
|
-
last = (i == message_ids-1)
|
85
|
-
process_email_block.call mail, start, last
|
82
|
+
process_email_block.call mail
|
86
83
|
|
87
84
|
# mark as read
|
88
85
|
if @mark_as_read
|
@@ -119,7 +116,10 @@ module Client
|
|
119
116
|
|
120
117
|
# We're out, which means there are some emails ready for us.
|
121
118
|
# Go do a search for UNSEEN and fetch them.
|
122
|
-
|
119
|
+
filenames = []
|
120
|
+
retrieve_emails(imap, search_condition, folder) { |mail| filenames << process_email mail }
|
121
|
+
self.send_request(filenames)
|
122
|
+
|
123
123
|
@logger.debug "Process Completed." if @debug
|
124
124
|
|
125
125
|
rescue SignalException => e
|
@@ -143,7 +143,18 @@ module Client
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
|
-
def
|
146
|
+
def send_request(in_filenames = [])
|
147
|
+
download_path = config['download_path']
|
148
|
+
filename = download_path + "inputs/" + (Time.now.to_f * 1000).to_s
|
149
|
+
|
150
|
+
File.open(filename, 'w') do |f|
|
151
|
+
in_filenames.each { |element| f.puts(element) }
|
152
|
+
end
|
153
|
+
|
154
|
+
HttpService::NaviAI.start(filename, @client_type, @token)
|
155
|
+
end
|
156
|
+
|
157
|
+
def process_email(mail)
|
147
158
|
meta = Hash.new
|
148
159
|
custom_uid = (Time.now.to_f * 1000).to_s + "_" + mail.__id__.to_s
|
149
160
|
|
@@ -155,18 +166,15 @@ module Client
|
|
155
166
|
|
156
167
|
if mail.multipart?
|
157
168
|
for i in 0...mail.parts.length
|
158
|
-
m =
|
169
|
+
m = download(mail, custom_uid)
|
159
170
|
meta.merge!(m) unless m.nil?
|
160
171
|
end
|
161
172
|
else
|
162
|
-
m =
|
173
|
+
m = download(mail, custom_uid)
|
163
174
|
meta.merge!(m) unless m.nil?
|
164
175
|
end
|
165
176
|
|
166
|
-
|
167
|
-
pid = Process.spawn(@cmd+" -f=#{meta_file_path} -t=#{@token}")
|
168
|
-
|
169
|
-
HTTPService::NaviAI.start(start, last)
|
177
|
+
save(meta, "meta/#{custom_uid}")
|
170
178
|
end
|
171
179
|
|
172
180
|
def save(data={}, filename)
|
@@ -3,7 +3,7 @@ require Gem::Specification.find_by_name("navi_client").gem_dir+"/lib/client"
|
|
3
3
|
module NaviClient
|
4
4
|
class Cloud
|
5
5
|
include Client
|
6
|
-
def initialize
|
6
|
+
def initialize(sso_web_url = "http://localhost:3008/")
|
7
7
|
# flag to print Ruby library debug info (very detailed)
|
8
8
|
@net_imap_debug = false
|
9
9
|
|
@@ -19,7 +19,6 @@ module NaviClient
|
|
19
19
|
|
20
20
|
# naviai command
|
21
21
|
@cmd = 'naviai'
|
22
|
-
|
23
22
|
# authentication token received from sso_web used to authenticate the request to database_api
|
24
23
|
@token = nil
|
25
24
|
end
|
data/lib/http_service/naviai.rb
CHANGED
@@ -2,16 +2,19 @@ require "httparty"
|
|
2
2
|
|
3
3
|
GO_SERVER_URL = 'http://localhost:9090'
|
4
4
|
|
5
|
-
CLIENT_TYPE = 'locallockbox'
|
6
|
-
|
7
5
|
module HTTPService
|
8
6
|
class NaviAI
|
9
7
|
|
10
|
-
def self.start(
|
8
|
+
def self.start(file_path, client_type, token)
|
9
|
+
if client_type == 'local'
|
10
|
+
go_url = 'http://localhost:9090'
|
11
|
+
else
|
12
|
+
go_url = ''
|
13
|
+
end
|
11
14
|
HTTParty.post(GO_SERVER_URL, body: {
|
12
|
-
client_type:
|
13
|
-
|
14
|
-
|
15
|
+
client_type: client_type,
|
16
|
+
list_meta_path: file_path,
|
17
|
+
token: token
|
15
18
|
})
|
16
19
|
end
|
17
20
|
end
|
@@ -2,7 +2,7 @@ require Gem::Specification.find_by_name("navi_client").gem_dir+"/lib/client"
|
|
2
2
|
module NaviClient
|
3
3
|
class Local
|
4
4
|
include Client
|
5
|
-
def initialize
|
5
|
+
def initialize(sso_web_url = 'http://localhost:3008')
|
6
6
|
# flag to print Ruby library debug info (very detailed)
|
7
7
|
@net_imap_debug = false
|
8
8
|
|
@@ -16,9 +16,9 @@ module NaviClient
|
|
16
16
|
mkdir_if_not_exist(config['client_log_file'])
|
17
17
|
@logger = Logger.new(config['client_log_file'])
|
18
18
|
|
19
|
+
@sso_web_url = sso_web_url
|
19
20
|
# naviai command
|
20
21
|
@cmd = 'naviai'
|
21
|
-
|
22
22
|
# authentication token received from sso_web used to authenticate the request to database_api
|
23
23
|
@token = nil
|
24
24
|
end
|
data/lib/navi_client/version.rb
CHANGED
metadata
CHANGED
@@ -1,80 +1,80 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: navi_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Surya
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '1.11'
|
19
|
-
name: bundler
|
20
|
-
prerelease: false
|
21
20
|
type: :development
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '10.0'
|
33
|
-
name: rake
|
34
|
-
prerelease: false
|
35
34
|
type: :development
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
45
|
- - "~>"
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '3.0'
|
47
|
-
name: rspec
|
48
|
-
prerelease: false
|
49
48
|
type: :development
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
59
|
- - ">="
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '0'
|
61
|
-
name: httparty
|
62
|
-
prerelease: false
|
63
62
|
type: :runtime
|
63
|
+
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: mail
|
70
71
|
requirement: !ruby/object:Gem::Requirement
|
71
72
|
requirements:
|
72
73
|
- - ">="
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: '0'
|
75
|
-
name: mail
|
76
|
-
prerelease: false
|
77
76
|
type: :runtime
|
77
|
+
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
@@ -87,7 +87,6 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- ".DS_Store"
|
91
90
|
- ".gitignore"
|
92
91
|
- ".rspec"
|
93
92
|
- ".travis.yml"
|
@@ -110,7 +109,7 @@ homepage: http://navihq.com
|
|
110
109
|
licenses:
|
111
110
|
- MIT
|
112
111
|
metadata: {}
|
113
|
-
post_install_message:
|
112
|
+
post_install_message:
|
114
113
|
rdoc_options: []
|
115
114
|
require_paths:
|
116
115
|
- lib
|
@@ -125,9 +124,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
124
|
- !ruby/object:Gem::Version
|
126
125
|
version: '0'
|
127
126
|
requirements: []
|
128
|
-
rubyforge_project:
|
129
|
-
rubygems_version: 2.6.
|
130
|
-
signing_key:
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 2.6.12
|
129
|
+
signing_key:
|
131
130
|
specification_version: 4
|
132
131
|
summary: Write a short summary, because Rubygems requires one.
|
133
132
|
test_files: []
|
data/.DS_Store
DELETED
Binary file
|