amazon_auth 0.4.3 → 0.6.0

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
- 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.