amazon_auth 0.4.3 → 0.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ea1813a746339a62a99590ceb61c86c4e26a50b1
4
- data.tar.gz: 71a1511fe0582cf36b1a3226a6efca496cdaf755
2
+ SHA256:
3
+ metadata.gz: a45eff39c70d3750f6bb7edd67f68ae06f9e8b8290601aa4fe30f4ac89f3ec9c
4
+ data.tar.gz: d22f3c9195a3120b5f900824357093003b3c2760c8d3ff9d1a17d323ce5cc8ed
5
5
  SHA512:
6
- metadata.gz: ed72f566bc716cc31fccbae412889faa255fb1cdb93247d3328ecd5cd2d21b0a94d6d0ce0f1f9d44fabe87dfc90dd765b6d85324c83f5b4f03034478f1943a29
7
- data.tar.gz: 651537cd232764dbfe1fe6f2eab87197e4f55b9cfea98ad3b022be0452ddf8005f91e6eb8f622930406e96100d8c51888eedc556cd4ae9d41b313dc0d7e62185
6
+ metadata.gz: 4fc2ef8f1b551796f6b3efb359987db8a48d05ce51d75d055275c639dd950e51d8f99a90fe5afc4b646940b9bb142b49adc984ee2a922d1b0d2c7cbbc988e022
7
+ data.tar.gz: 2571de906fdc1470088cb9e71db7d6ac87748e649f6be73beceede17447865e5f597ad9f1cf44edd5748db747e7b15bf45daaf9eb5887d9306472766bdb25b89
@@ -1,7 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.7
5
- - 2.3.4
6
- - 2.4.1
7
- before_install: gem install bundler -v 1.14.6
4
+ - 2.5.8
5
+ - 2.6.6
6
+ - 2.7.1
7
+ before_install: gem install bundler
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'amazon_auth/version'
@@ -3,12 +3,10 @@
3
3
  require_relative "../lib/amazon_auth"
4
4
  require 'highline/import'
5
5
 
6
- result = []
7
-
8
- domain = ask("Enter your amazon domain: ") { |q| q.echo = true ; q.default = AmazonInfo.domain }
6
+ domain = ask("Enter your amazon domain: ") { |q| q.echo = true; q.default = AmazonInfo.domain }
9
7
  login = ask("Enter your #{domain} username: ") { |q| q.echo = true }
10
8
  passwd = ask("Enter your #{domain} password: ") { |q| q.echo = "*" }
11
- salt = ask("Enter your salt: ") { |q| q.default = AmazonAuth::Converter.default_salt ; q.echo = true }
9
+ salt = ask("Enter your salt: ") { |q| q.default = AmazonAuth::Converter.default_salt; q.echo = true }
12
10
 
13
11
  raise "Empty login or password" if login.to_s.size == 0 || passwd.to_s.size == 0
14
12
 
@@ -1,6 +1,5 @@
1
1
  module AmazonAuth
2
2
  module CommonExtension
3
-
4
3
  def log(message)
5
4
  return unless (@options[:debug] || @options[:verbose])
6
5
  puts "[#{Time.current.strftime('%Y-%m-%d %H:%M:%S')}] #{message}" +
@@ -1,6 +1,5 @@
1
1
  module AmazonAuth
2
2
  module SessionExtension
3
-
4
3
  def doc
5
4
  Nokogiri.HTML(session.html)
6
5
  end
@@ -30,7 +29,7 @@ module AmazonAuth
30
29
  session.visit url
31
30
  debug "Visiting #{url}"
32
31
  restore_cookies if keep_cookie?
33
- if (link = links_for('a').find{|link| link =~ %r{\A/gp/navigation/redirector.html} })
32
+ if (link = find_sign_in_link)
34
33
  debug "link: [#{link}]"
35
34
  session.visit(link)
36
35
  end
@@ -50,11 +49,20 @@ module AmazonAuth
50
49
  end
51
50
 
52
51
  def submit_signin_form
53
- session.first('.cvf-account-switcher-profile-details').click if session.has_selector?('.cvf-account-switcher-profile-details')
52
+ # Click account switcher if it is displayed
53
+ dom_account_switcher = '.cvf-account-switcher-profile-details, .cvf-account-switcher-claim'
54
+ session.first(dom_account_switcher).click if session.has_selector?(dom_account_switcher)
55
+
54
56
  debug "Begin submit_signin_form"
55
57
  unless session.has_selector?('#signInSubmit')
56
- log "signInSubmit button not found in this page"
57
- return false
58
+ if session.has_selector?('input#continue') && session.has_selector?('input#ap_email')
59
+ log "Found a form which asks only email"
60
+ session.fill_in 'ap_email', with: login
61
+ session.first('input#continue').click
62
+ else
63
+ log "signInSubmit button not found in this page"
64
+ return false
65
+ end
58
66
  end
59
67
  session.fill_in 'ap_email', with: login if session.first('#ap_email', minimum: 0) && session.first('#ap_email').value.blank?
60
68
  session.fill_in 'ap_password', with: password
@@ -97,13 +105,32 @@ module AmazonAuth
97
105
  session.has_selector?('#auth-captcha-image-container')
98
106
  end
99
107
 
100
- private
108
+ def find_sign_in_link
109
+ m1 = session.html.match(%r{(/ap/signin[^'"]+)['"]})
110
+ return CGI.unescapeHTML(m1[1]) if m1
101
111
 
102
- def login
103
- options.fetch(:login, Converter.decode(ENV['AMAZON_USERNAME_CODE']))
112
+ # Maybe the following patterns are deprecated
113
+ link = links_for('a').find{|l| l =~ %r{\A/gp/navigation/redirector.html} }
114
+ if link
115
+ debug "Found a link [#{link}]"
116
+ return link
104
117
  end
105
- def password
106
- options.fetch(:password, Converter.decode(ENV['AMAZON_PASSWORD_CODE']))
118
+ m2 = session.html.match(%r{'(/gp/navigation/redirector.html[^']+)'})
119
+ if m2
120
+ debug "Found a link (.html.match) [#{m2[1]}]"
121
+ return m2[1]
107
122
  end
123
+ nil
124
+ end
125
+
126
+ private
127
+
128
+ def login
129
+ options.fetch(:login, Converter.decode(ENV['AMAZON_USERNAME_CODE']))
130
+ end
131
+
132
+ def password
133
+ options.fetch(:password, Converter.decode(ENV['AMAZON_PASSWORD_CODE']))
134
+ end
108
135
  end
109
136
  end
@@ -1,3 +1,3 @@
1
1
  module AmazonAuth
2
- VERSION = "0.4.3"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuho Yamaguchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-20 00:00:00.000000000 Z
11
+ date: 2021-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -196,8 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  requirements: []
199
- rubyforge_project:
200
- rubygems_version: 2.6.8
199
+ rubygems_version: 3.0.3
201
200
  signing_key:
202
201
  specification_version: 4
203
202
  summary: Login amazon.