ehbrs_ruby_utils 0.49.2 → 0.50.1
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 +4 -4
- data/lib/ehbrs_ruby_utils/bga/parsers/game_in_progress.rb +12 -1
- data/lib/ehbrs_ruby_utils/bga/session/cookies_consent.rb +19 -0
- data/lib/ehbrs_ruby_utils/bga/session/login.rb +24 -6
- data/lib/ehbrs_ruby_utils/bga/session/skip_trophies.rb +3 -2
- data/lib/ehbrs_ruby_utils/bga/session/user.rb +2 -2
- data/lib/ehbrs_ruby_utils/fs/to_file_format.rb +1 -1
- data/lib/ehbrs_ruby_utils/version.rb +1 -1
- data/lib/ehbrs_ruby_utils/videos/file.rb +9 -0
- metadata +20 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e27fa8e7b9de67f4c480a9d60988c49fdcd84240e1932c41f73eb46802e974d4
|
|
4
|
+
data.tar.gz: cafca570ed8faae4d48ea9be69bced3aa0dadf987a6b0ee7d767b5c544133c4e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 19b9c40f54a1f47eed3cdd57c6fced7378b3e67442e65d775a15b2c8ecd8c4460f8aace63bf5b470d243e245561a841a452b78f196638ed8ffab7d8b0a227ef2
|
|
7
|
+
data.tar.gz: edb00210dad61f083e695f1f0258b9f03a973e9d42b7b4a2239c58a290bb3e273e0bc11c8c9e5f9507b6817526e3aa8bcb44c14c7b13b544f23aab3a10ce593c
|
|
@@ -7,6 +7,7 @@ module EhbrsRubyUtils
|
|
|
7
7
|
DEFAULT_STATUS = 'asyncplay'
|
|
8
8
|
ID_PARSER = /table=(\d+)/.to_parser { |m| m[1].to_i }
|
|
9
9
|
ITEMS_XPATH = '//*[@id = "section-play"]//a[contains(@href, "table=")]'
|
|
10
|
+
NO_TABLES_XPATH = '//p[normalize-space(text()) = "Nenhum jogo em andamento"]'
|
|
10
11
|
STATUS_CLASS_PATTERN = /\Agametable_status_(.+)\z/
|
|
11
12
|
STATUS_CLASS_PARSER = STATUS_CLASS_PATTERN.to_parser { |m| m[1] }
|
|
12
13
|
TABLE_COUNT_XPATH =
|
|
@@ -37,7 +38,17 @@ module EhbrsRubyUtils
|
|
|
37
38
|
|
|
38
39
|
# @return [Integer]
|
|
39
40
|
def table_count
|
|
40
|
-
nokogiri.at_xpath(TABLE_COUNT_XPATH).if_present(
|
|
41
|
+
nokogiri.at_xpath(TABLE_COUNT_XPATH).if_present(no_tables_count) { |v| v.text.to_i }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @return [Integer]
|
|
45
|
+
def no_tables_count
|
|
46
|
+
no_tables? ? 0 : -1
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# @return [Boolean]
|
|
50
|
+
def no_tables?
|
|
51
|
+
nokogiri.at_xpath(NO_TABLES_XPATH).present?
|
|
41
52
|
end
|
|
42
53
|
end
|
|
43
54
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module EhbrsRubyUtils
|
|
4
|
+
module Bga
|
|
5
|
+
class Session < ::SimpleDelegator
|
|
6
|
+
module CookiesConsent
|
|
7
|
+
REJECT_ALL_BUTTON_SELECTOR = { id: 'didomi-notice-disagree-button' }.freeze
|
|
8
|
+
REJECT_ALL_BUTTON_TIMEOUT = 5
|
|
9
|
+
|
|
10
|
+
# @return [void]
|
|
11
|
+
def dismiss_cookies_banner
|
|
12
|
+
wait_for_click(REJECT_ALL_BUTTON_SELECTOR, REJECT_ALL_BUTTON_TIMEOUT)
|
|
13
|
+
rescue ::Selenium::WebDriver::Error::TimeoutError
|
|
14
|
+
nil
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -5,14 +5,21 @@ module EhbrsRubyUtils
|
|
|
5
5
|
class Session < ::SimpleDelegator
|
|
6
6
|
module Login
|
|
7
7
|
LOGIN_PATH = 'account'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
STEP1_SELECTOR = { css: '.bga-account-manager-form__step1' }.freeze
|
|
9
|
+
STEP2_SELECTOR = { css: '.bga-account-manager-form__step2' }.freeze
|
|
10
|
+
EMAIL_INPUT_SELECTOR = { css: "#{STEP1_SELECTOR[:css]} input[name=\"email\"]" }.freeze
|
|
11
|
+
NEXT_BUTTON_SELECTOR = { css: "#{STEP1_SELECTOR[:css]} a.bga-button--blue" }.freeze
|
|
12
|
+
PASSWORD_INPUT_SELECTOR = {
|
|
13
|
+
css: "#{STEP2_SELECTOR[:css]} input[type=\"password\"]"
|
|
14
|
+
}.freeze
|
|
15
|
+
LOGIN_BUTTON_SELECTOR = { css: "#{STEP2_SELECTOR[:css]} a.bga-button--blue" }.freeze
|
|
16
|
+
URL_LOGIN_PAGE_COMPONENT = 'page=login'
|
|
11
17
|
|
|
12
18
|
# @return [Boolean]
|
|
13
19
|
def login # rubocop:disable Naming/PredicateMethod
|
|
14
20
|
navigate_to_login_page
|
|
15
21
|
input_username
|
|
22
|
+
submit_username
|
|
16
23
|
input_password
|
|
17
24
|
submit_login
|
|
18
25
|
logged?
|
|
@@ -26,18 +33,29 @@ module EhbrsRubyUtils
|
|
|
26
33
|
|
|
27
34
|
def navigate_to_login_page
|
|
28
35
|
navigate.to(login_url)
|
|
36
|
+
dismiss_cookies_banner
|
|
29
37
|
end
|
|
30
38
|
|
|
31
39
|
def input_username
|
|
32
|
-
wait_for_element(
|
|
40
|
+
wait_for_element(EMAIL_INPUT_SELECTOR).send_keys(username)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def submit_username
|
|
44
|
+
wait_for_click(NEXT_BUTTON_SELECTOR)
|
|
33
45
|
end
|
|
34
46
|
|
|
35
47
|
def input_password
|
|
36
|
-
wait_for_element(
|
|
48
|
+
wait_for_element(PASSWORD_INPUT_SELECTOR).send_keys(password)
|
|
37
49
|
end
|
|
38
50
|
|
|
51
|
+
# @return [void]
|
|
39
52
|
def submit_login
|
|
40
|
-
wait_for_click(
|
|
53
|
+
wait_for_click(LOGIN_BUTTON_SELECTOR)
|
|
54
|
+
begin
|
|
55
|
+
wait.until { current_url.exclude?(URL_LOGIN_PAGE_COMPONENT) }
|
|
56
|
+
rescue ::Selenium::WebDriver::Error::TimeoutError
|
|
57
|
+
nil
|
|
58
|
+
end
|
|
41
59
|
end
|
|
42
60
|
end
|
|
43
61
|
end
|
|
@@ -17,12 +17,13 @@ module EhbrsRubyUtils
|
|
|
17
17
|
e
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def on_skip_trophies(
|
|
21
|
-
error = on_rescue_timeout(
|
|
20
|
+
def on_skip_trophies(&block)
|
|
21
|
+
error = on_rescue_timeout(&block)
|
|
22
22
|
return unless error
|
|
23
23
|
raise error unless skip_trophy_overlay?
|
|
24
24
|
|
|
25
25
|
skip_trophies
|
|
26
|
+
block.call
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def skip_trophies
|
|
@@ -10,9 +10,9 @@ module EhbrsRubyUtils
|
|
|
10
10
|
logged_username == username
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
# @return [String]
|
|
13
|
+
# @return [String, nil]
|
|
14
14
|
def logged_username
|
|
15
|
-
find_or_not_element(xpath: '//*[@id = "
|
|
15
|
+
find_or_not_element(xpath: '//*[@id = "real_player_name"]')&.attribute('innerHTML')&.strip
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def on_logged(&block)
|
|
@@ -61,7 +61,7 @@ module EhbrsRubyUtils
|
|
|
61
61
|
def file_type?(*include)
|
|
62
62
|
return false unless ::File.file?(file)
|
|
63
63
|
|
|
64
|
-
include.any? { |i| file_type.include?(i) }
|
|
64
|
+
include.any? { |i| file_type.include?(i) }
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def file_type_uncached
|
|
@@ -28,6 +28,15 @@ module EhbrsRubyUtils
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
# @return [ActiveSupport::Duration, nil]
|
|
32
|
+
def duration
|
|
33
|
+
probe_data[:format].if_present do |x|
|
|
34
|
+
x[:duration].if_present do |v|
|
|
35
|
+
::ActiveSupport::Duration.build(v.to_f)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
31
40
|
# @param provider [UltimateLyrics::Provider]
|
|
32
41
|
# @return [UltimateLyrics::Lyrics]
|
|
33
42
|
def lyrics_by_provider(provider)
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ehbrs_ruby_utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.50.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eduardo H. Bogoni
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: aranha
|
|
@@ -51,6 +50,9 @@ dependencies:
|
|
|
51
50
|
- - "~>"
|
|
52
51
|
- !ruby/object:Gem::Version
|
|
53
52
|
version: '0.14'
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: 0.14.1
|
|
54
56
|
type: :runtime
|
|
55
57
|
prerelease: false
|
|
56
58
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -58,26 +60,23 @@ dependencies:
|
|
|
58
60
|
- - "~>"
|
|
59
61
|
- !ruby/object:Gem::Version
|
|
60
62
|
version: '0.14'
|
|
63
|
+
- - ">="
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: 0.14.1
|
|
61
66
|
- !ruby/object:Gem::Dependency
|
|
62
67
|
name: avm
|
|
63
68
|
requirement: !ruby/object:Gem::Requirement
|
|
64
69
|
requirements:
|
|
65
70
|
- - "~>"
|
|
66
71
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0.
|
|
68
|
-
- - ">="
|
|
69
|
-
- !ruby/object:Gem::Version
|
|
70
|
-
version: 0.102.3
|
|
72
|
+
version: '0.103'
|
|
71
73
|
type: :runtime
|
|
72
74
|
prerelease: false
|
|
73
75
|
version_requirements: !ruby/object:Gem::Requirement
|
|
74
76
|
requirements:
|
|
75
77
|
- - "~>"
|
|
76
78
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: '0.
|
|
78
|
-
- - ">="
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: 0.102.3
|
|
79
|
+
version: '0.103'
|
|
81
80
|
- !ruby/object:Gem::Dependency
|
|
82
81
|
name: avm-eac_rails_base0
|
|
83
82
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -107,7 +106,7 @@ dependencies:
|
|
|
107
106
|
version: '3.5'
|
|
108
107
|
- - ">="
|
|
109
108
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 3.5.
|
|
109
|
+
version: 3.5.8
|
|
111
110
|
type: :runtime
|
|
112
111
|
prerelease: false
|
|
113
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -117,7 +116,7 @@ dependencies:
|
|
|
117
116
|
version: '3.5'
|
|
118
117
|
- - ">="
|
|
119
118
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: 3.5.
|
|
119
|
+
version: 3.5.8
|
|
121
120
|
- !ruby/object:Gem::Dependency
|
|
122
121
|
name: eac_fs
|
|
123
122
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -127,7 +126,7 @@ dependencies:
|
|
|
127
126
|
version: '0.20'
|
|
128
127
|
- - ">="
|
|
129
128
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 0.20.
|
|
129
|
+
version: 0.20.3
|
|
131
130
|
type: :runtime
|
|
132
131
|
prerelease: false
|
|
133
132
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -137,7 +136,7 @@ dependencies:
|
|
|
137
136
|
version: '0.20'
|
|
138
137
|
- - ">="
|
|
139
138
|
- !ruby/object:Gem::Version
|
|
140
|
-
version: 0.20.
|
|
139
|
+
version: 0.20.3
|
|
141
140
|
- !ruby/object:Gem::Dependency
|
|
142
141
|
name: eac_rest
|
|
143
142
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -159,7 +158,7 @@ dependencies:
|
|
|
159
158
|
- - "~>"
|
|
160
159
|
- !ruby/object:Gem::Version
|
|
161
160
|
version: '0.1'
|
|
162
|
-
- - "
|
|
161
|
+
- - ">="
|
|
163
162
|
- !ruby/object:Gem::Version
|
|
164
163
|
version: 0.1.1
|
|
165
164
|
type: :runtime
|
|
@@ -169,7 +168,7 @@ dependencies:
|
|
|
169
168
|
- - "~>"
|
|
170
169
|
- !ruby/object:Gem::Version
|
|
171
170
|
version: '0.1'
|
|
172
|
-
- - "
|
|
171
|
+
- - ">="
|
|
173
172
|
- !ruby/object:Gem::Version
|
|
174
173
|
version: 0.1.1
|
|
175
174
|
- !ruby/object:Gem::Dependency
|
|
@@ -260,16 +259,14 @@ dependencies:
|
|
|
260
259
|
requirements:
|
|
261
260
|
- - "~>"
|
|
262
261
|
- !ruby/object:Gem::Version
|
|
263
|
-
version: '0.
|
|
262
|
+
version: '0.15'
|
|
264
263
|
type: :development
|
|
265
264
|
prerelease: false
|
|
266
265
|
version_requirements: !ruby/object:Gem::Requirement
|
|
267
266
|
requirements:
|
|
268
267
|
- - "~>"
|
|
269
268
|
- !ruby/object:Gem::Version
|
|
270
|
-
version: '0.
|
|
271
|
-
description:
|
|
272
|
-
email:
|
|
269
|
+
version: '0.15'
|
|
273
270
|
executables: []
|
|
274
271
|
extensions: []
|
|
275
272
|
extra_rdoc_files: []
|
|
@@ -295,6 +292,7 @@ files:
|
|
|
295
292
|
- lib/ehbrs_ruby_utils/bga/parsers/table/options.rb
|
|
296
293
|
- lib/ehbrs_ruby_utils/bga/player.rb
|
|
297
294
|
- lib/ehbrs_ruby_utils/bga/session.rb
|
|
295
|
+
- lib/ehbrs_ruby_utils/bga/session/cookies_consent.rb
|
|
298
296
|
- lib/ehbrs_ruby_utils/bga/session/login.rb
|
|
299
297
|
- lib/ehbrs_ruby_utils/bga/session/player.rb
|
|
300
298
|
- lib/ehbrs_ruby_utils/bga/session/player_tables_on_game_in_progress.rb
|
|
@@ -449,10 +447,8 @@ files:
|
|
|
449
447
|
- template/ehbrs_ruby_utils/music/lyrics_book/main.html.erb
|
|
450
448
|
- template/ehbrs_ruby_utils/music/lyrics_book/resource/main.html.erb
|
|
451
449
|
- template/ehbrs_ruby_utils/music/lyrics_book/song/inner.html.erb
|
|
452
|
-
homepage:
|
|
453
450
|
licenses: []
|
|
454
451
|
metadata: {}
|
|
455
|
-
post_install_message:
|
|
456
452
|
rdoc_options: []
|
|
457
453
|
require_paths:
|
|
458
454
|
- lib
|
|
@@ -467,8 +463,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
467
463
|
- !ruby/object:Gem::Version
|
|
468
464
|
version: '0'
|
|
469
465
|
requirements: []
|
|
470
|
-
rubygems_version: 3.
|
|
471
|
-
signing_key:
|
|
466
|
+
rubygems_version: 3.6.9
|
|
472
467
|
specification_version: 4
|
|
473
468
|
summary: Utilities for EHB/RS's Ruby projects.
|
|
474
469
|
test_files: []
|