monese_csv_downloader 0.1.1 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03fb870ee09316e5107b77fd475bc4d6816fe8332b935cc0c21f85ddae3bc8d0
4
- data.tar.gz: 9c939090f5e6a7d325df5056f597e03a875e540368354e7e20071075fbfaf406
3
+ metadata.gz: 6c304bc9d8a0ff6eccdc922ce18889a446b6fd067efceb0ee45ae540e730b765
4
+ data.tar.gz: 48128be9ce625de36870011808f0a97a54c0ea8b459973598d7554011f025045
5
5
  SHA512:
6
- metadata.gz: a6fc7e4f493982502d0f752fed4eb3bf493d1280cf2c1c43faee519a27eccea4d976fad984a309a86c15cc7dcb1ea31172eaf5291120b866f6f6585c7dcd0faf
7
- data.tar.gz: 359a058f0204daa6f61db28cef942591a6e413424ab93ddc7b99987fb8a42762f60c6593ec4fa8d9746ce51a8005221ff343272f333a400c542440b6b0e90254
6
+ metadata.gz: 772572a64565961f9a0ab3156a2717660e05fbf2995accc1782558985dce15248d5cc0f377ea7d004c97f5d92a1a28e9defae9f815a85a886c0839987c247645
7
+ data.tar.gz: ff99dd19aa2c3ff014cef1fb174fdf0c969290ff1c4684d4b8746d8e9c83a9cdce1dca5eec08cd362ee8161208e65bfa52b1843f7683c63c49b0a0c5eafe9ebf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- monese_csv_downloader (0.1.1)
4
+ monese_csv_downloader (0.1.6)
5
5
  thor (~> 1.1)
6
6
  watir (~> 6.19)
7
7
  webdrivers (~> 4.5.0)
@@ -10,8 +10,10 @@ GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  childprocess (3.0.0)
13
+ mini_portile2 (2.5.1)
13
14
  minitest (5.14.4)
14
- nokogiri (1.11.4-x86_64-darwin)
15
+ nokogiri (1.11.5)
16
+ mini_portile2 (~> 2.5.0)
15
17
  racc (~> 1.4)
16
18
  racc (1.5.2)
17
19
  rake (10.5.0)
@@ -10,9 +10,10 @@ module MoneseCsvDownloader
10
10
  desc "download FILE", "Downloads an account statement to FILE"
11
11
  method_option :phone_number, desc: "Phone number for Monese account", required: true
12
12
  method_option :password, desc: "Password for Monese account", required: true
13
+ method_option :account_type, desc: "Account type: joint/personal", default: "personal"
13
14
  def download(file)
14
15
  puts "downloading to #{file}"
15
- contents = MoneseCsvDownloader::WebClient.new(options.fetch(:phone_number), options.fetch(:password)).download
16
+ contents = MoneseCsvDownloader::WebClient.new(options[:phone_number], options[:password]).download(options[:account_type].to_sym)
16
17
  File.write(file, contents)
17
18
  end
18
19
  end
@@ -1,3 +1,3 @@
1
1
  module MoneseCsvDownloader
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -12,6 +12,12 @@ module MoneseCsvDownloader
12
12
  def browser
13
13
  sleep(1) # Act like a human
14
14
  @browser ||= self.firefox_browser
15
+
16
+ @screenshot_count ||= 0
17
+ @screenshot_count += 1
18
+ @browser.screenshot.save "/tmp/monese-csv-downloader-screenshot-#{@screenshot_count}.png"
19
+
20
+ @browser
15
21
  end
16
22
 
17
23
  def downloaded_file
@@ -50,16 +56,22 @@ module MoneseCsvDownloader
50
56
  Watir::Browser.new :firefox, options: { profile: profile }
51
57
  end
52
58
 
53
- def download
59
+ # account_type: :personal, or :joint
60
+ def download(account_type)
54
61
  # Login
55
62
  self.browser.goto "https://web.monese.com/"
56
- self.browser.text_field(data_testid: "login-input").set @monese_account_phone_number[4..-1]
63
+ self.browser.text_field(data_testid: "login-input").send_keys @monese_account_phone_number[4..-1]
57
64
  self.browser.button(data_testid: "login-submit-button").click
58
- self.browser.text_field(data_testid: "inut-password").set @monese_account_password
65
+ self.browser.text_field(data_testid: "input-password").send_keys @monese_account_password
59
66
  self.browser.button(data_testid: "form-submit").click
60
67
 
61
- # Select joint account
62
- self.browser.a(data_testid: "account-link-1-MONESE_JOINT").click
68
+ if account_type.eql?(:joint)
69
+ self.browser.a(data_testid: /account-link-\d-MONESE_JOINT/).click
70
+ elsif account_type.eql?(:personal)
71
+ self.browser.a(data_testid: /account-link-\d-PRIVATE/).click
72
+ else
73
+ raise ArgumentError, "Invalid account_type: #{account_type}"
74
+ end
63
75
 
64
76
  self.browser.button(data_testid: "download-statement-button").click
65
77
  self.browser.div(class: /DownloadModal-module__InputWrapper/, index: 1).click
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monese_csv_downloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Kuruvilla
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-16 00:00:00.000000000 Z
11
+ date: 2021-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler