ba 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/ba.gemspec +2 -2
- data/lib/ba/banks/bancolombia.rb +14 -49
- data/lib/ba/helpers/bancolombia_helper.rb +64 -0
- data/lib/ba/version.rb +1 -1
- data/spec/lib/ba/cli_spec.rb +1 -1
- metadata +5 -2
data/ba.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'ba/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "ba"
|
8
8
|
spec.version = Ba::VERSION
|
9
|
-
spec.authors = ["Li Ellis Gallardo"]
|
10
|
-
spec.email = ["lellisga@gmail.com"]
|
9
|
+
spec.authors = ["Li Ellis Gallardo", "Jean Pierre Guarin"]
|
10
|
+
spec.email = ["lellisga@gmail.com", "escribimepues@gmail.com"]
|
11
11
|
spec.description = %q{BankBalance Gem is used to check your bank account balance}
|
12
12
|
spec.summary = %q{Checking your bank account is now much faster}
|
13
13
|
spec.homepage = ""
|
data/lib/ba/banks/bancolombia.rb
CHANGED
@@ -1,38 +1,30 @@
|
|
1
|
+
require 'ba/helpers/bancolombia_helper'
|
2
|
+
|
1
3
|
module Ba::Banks
|
2
4
|
class Bancolombia < Thor
|
5
|
+
include Ba::Helpers::BancolombiaHelper
|
3
6
|
|
4
7
|
desc "balance optional: [username] [password]", "Returns the Bancolombia account balance"
|
5
8
|
def balance(username = nil , password = nil)
|
6
9
|
go_to_root
|
7
10
|
process_username_authentication(username)
|
8
11
|
process_password_authentication(password)
|
9
|
-
|
10
|
-
|
11
|
-
balancePage = agent.get("/olb/BeginInitializeActionFromCM?from=pageTabs")
|
12
|
-
balance = balancePage.search(".contentTotalNegrita").last.children.text
|
13
|
-
puts "Your actual balance is: $#{balance}"
|
12
|
+
process_questions if need_to_answer_banks_questions?
|
13
|
+
puts "Your actual balance is: $#{get_balance}"
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
|
-
def
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def need_to_answer_banks_questions?(page)
|
23
|
-
!get_question_form(page).nil?
|
24
|
-
end
|
25
|
-
|
26
|
-
def get_question_form(page)
|
27
|
-
@question_form ||= page.form_with(name: "checkChallQuestForm")
|
18
|
+
def get_balance
|
19
|
+
get_balance_page.search(".contentTotalNegrita").last.children.text
|
28
20
|
end
|
29
21
|
|
30
22
|
def process_password_authentication(password)
|
31
|
-
passwordPageHtml =
|
23
|
+
passwordPageHtml = password_path_body
|
32
24
|
##Insert \r for correct regex on password scripts
|
33
25
|
passwordPageHtml.gsub!(/document.getElementById/, "\r\n\t document.getElementById")
|
34
26
|
enc_password = ""
|
35
|
-
password = password ||
|
27
|
+
password = password || get_password
|
36
28
|
password.to_s.split('').each do |n|
|
37
29
|
passwordPageHtml.match(/\'td_#{n}\'\)\.addEventListener\(\'click\'\,\sfunction\(\)\{\S*\(\"(.*)\"\)\;\}/)
|
38
30
|
enc_password << $1
|
@@ -53,47 +45,20 @@ module Ba::Banks
|
|
53
45
|
end
|
54
46
|
|
55
47
|
def process_username_authentication(username)
|
56
|
-
form =
|
57
|
-
f.userId = username || ask("Username: ")
|
58
|
-
end
|
59
|
-
|
48
|
+
form = login_path_form(username)
|
60
49
|
form.click_button
|
61
50
|
end
|
62
|
-
|
63
|
-
def go_to_root
|
64
|
-
agent.get "https://bancolombia.olb.todo1.com/olb/Init"
|
65
|
-
end
|
66
51
|
|
67
|
-
def
|
68
|
-
agent.get "https://bancolombia.olb.todo1.com/olb/Login"
|
69
|
-
end
|
70
|
-
|
71
|
-
def get_password_path
|
72
|
-
@password_path ||= agent.get("https://bancolombia.olb.todo1.com/olb/GetUserProfile")
|
73
|
-
end
|
74
|
-
|
75
|
-
def process_questions(page)
|
52
|
+
def process_questions
|
76
53
|
puts "The answer for the following questions will not be saved"
|
77
|
-
first_question = first_question
|
78
|
-
second_question = second_question
|
54
|
+
first_question = first_question
|
55
|
+
second_question = second_question
|
79
56
|
|
80
|
-
form = get_question_form
|
57
|
+
form = get_question_form do |f|
|
81
58
|
f.userAnswer1 = first_question
|
82
59
|
f.userAnswer2 = secound_question
|
83
60
|
end
|
84
61
|
agent.submit(form)
|
85
62
|
end
|
86
|
-
|
87
|
-
def first_question(page)
|
88
|
-
ask(page.search("#luserAnswer1").text.strip)
|
89
|
-
end
|
90
|
-
|
91
|
-
def second_question(page)
|
92
|
-
ask(page.search("#luserAnswer2").text.strip)
|
93
|
-
end
|
94
|
-
|
95
|
-
def agent
|
96
|
-
@agent ||= Mechanize.new
|
97
|
-
end
|
98
63
|
end
|
99
64
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Ba
|
2
|
+
module Helpers
|
3
|
+
module BancolombiaHelper
|
4
|
+
private
|
5
|
+
def go_to_authentication_path
|
6
|
+
@auth_path ||= agent.get("https://bancolombia.olb.todo1.com/olb/Authentication")
|
7
|
+
end
|
8
|
+
|
9
|
+
def need_to_answer_banks_questions?
|
10
|
+
!get_question_form.nil?
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_question_form
|
14
|
+
@question_form ||= go_to_authentication_path.form_with(name: "checkChallQuestForm")
|
15
|
+
end
|
16
|
+
|
17
|
+
def go_to_root
|
18
|
+
agent.get "https://bancolombia.olb.todo1.com/olb/Init"
|
19
|
+
end
|
20
|
+
|
21
|
+
def login_path
|
22
|
+
agent.get "https://bancolombia.olb.todo1.com/olb/Login"
|
23
|
+
end
|
24
|
+
|
25
|
+
def login_path_form(username)
|
26
|
+
login_path.form_with(name: "authenticationForm") do |f|
|
27
|
+
f.userId = username || get_username
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_password_path
|
32
|
+
@password_path ||= agent.get("https://bancolombia.olb.todo1.com/olb/GetUserProfile")
|
33
|
+
end
|
34
|
+
|
35
|
+
def password_path_body
|
36
|
+
get_password_path.body
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_username
|
40
|
+
ask("Username: ")
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_password
|
44
|
+
ask("Password: ") { |q| q.echo = false }
|
45
|
+
end
|
46
|
+
|
47
|
+
def first_question
|
48
|
+
ask(go_to_authentication_path.search("#luserAnswer1").text.strip)
|
49
|
+
end
|
50
|
+
|
51
|
+
def second_question(page)
|
52
|
+
ask(go_to_authentication_path.search("#luserAnswer2").text.strip)
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_balance_page
|
56
|
+
balancePage = agent.get("/olb/BeginInitializeActionFromCM?from=pageTabs")
|
57
|
+
end
|
58
|
+
|
59
|
+
def agent
|
60
|
+
@agent ||= Mechanize.new
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/lib/ba/version.rb
CHANGED
data/spec/lib/ba/cli_spec.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Li Ellis Gallardo
|
9
|
+
- Jean Pierre Guarin
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-
|
13
|
+
date: 2013-04-01 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: thor
|
@@ -142,6 +143,7 @@ dependencies:
|
|
142
143
|
description: BankBalance Gem is used to check your bank account balance
|
143
144
|
email:
|
144
145
|
- lellisga@gmail.com
|
146
|
+
- escribimepues@gmail.com
|
145
147
|
executables:
|
146
148
|
- ba
|
147
149
|
extensions: []
|
@@ -162,6 +164,7 @@ files:
|
|
162
164
|
- lib/ba/banks/bank.sample.rb
|
163
165
|
- lib/ba/banks/payoneer.rb
|
164
166
|
- lib/ba/cli.rb
|
167
|
+
- lib/ba/helpers/bancolombia_helper.rb
|
165
168
|
- lib/ba/version.rb
|
166
169
|
- spec/lib/ba/cli_spec.rb
|
167
170
|
- spec/lib/ba/version_spec.rb
|