ehbrs_ruby_utils 0.25.0 → 0.25.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/session/player.rb +1 -12
- data/lib/ehbrs_ruby_utils/bga/session/player_tables_on_game_stats.rb +2 -3
- data/lib/ehbrs_ruby_utils/bga/session/skip_trophies.rb +45 -0
- data/lib/ehbrs_ruby_utils/bga/table_whatsapp_formatter/format_option.rb +1 -1
- data/lib/ehbrs_ruby_utils/bga/table_whatsapp_formatter/format_player.rb +1 -1
- data/lib/ehbrs_ruby_utils/bga/table_whatsapp_formatter.rb +1 -1
- data/lib/ehbrs_ruby_utils/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c7b8c03f444eeecd6bc0cf3294b7fdb87d853e794d882a33075fc144d6e0643
|
4
|
+
data.tar.gz: 6d9ea47d713deb5f42930df49bf59beaa5d7feeadcaf1f317c2f72265e5645ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 337fc2b2871c7546da3c36e7362463541466f77f94a32ac7813c68692dce1c0e0883d6dd765bbc1b0226a502ed0a9049f6b49debbf920f68d370e2b478ead4b5
|
7
|
+
data.tar.gz: db9aefd67166403008410368a68b5bde75777b3d819b7e0c829fb0b83a687af08f7b3e320ce2d840a0cfd38abaca8fbdf036adc785c3de4fbe8ae9451e5a4241
|
@@ -1,26 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ehbrs_ruby_utils/bga/parsers/game_stats'
|
4
|
-
require 'ehbrs_ruby_utils/bga/urls'
|
5
3
|
require 'eac_ruby_utils/core_ext'
|
6
4
|
|
7
5
|
module EhbrsRubyUtils
|
8
6
|
module Bga
|
9
7
|
class Session < ::SimpleDelegator
|
10
8
|
class Player
|
11
|
-
include ::EhbrsRubyUtils::Bga::Urls
|
12
|
-
GAME_HISTORY_XPATH = '//h3[text() = "Games history"]'
|
13
9
|
common_constructor :session, :player_id
|
14
10
|
|
15
11
|
def tables
|
16
|
-
session.
|
17
|
-
session.wait_for_element(xpath: GAME_HISTORY_XPATH)
|
18
|
-
::EhbrsRubyUtils::Bga::Parsers::GameStats.from_content(session.current_source).data
|
19
|
-
end
|
20
|
-
|
21
|
-
# @return [Addressable::URI]
|
22
|
-
def game_stats_url
|
23
|
-
session.url("/gamestats?player=#{player_id}")
|
12
|
+
session.player_tables_on_game_stats(player_id)
|
24
13
|
end
|
25
14
|
end
|
26
15
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ehbrs_ruby_utils/bga/parsers/
|
4
|
-
require 'ehbrs_ruby_utils/bga/table'
|
3
|
+
require 'ehbrs_ruby_utils/bga/parsers/game_stats'
|
5
4
|
require 'ehbrs_ruby_utils/bga/urls'
|
6
5
|
require 'eac_ruby_utils/core_ext'
|
7
6
|
|
@@ -56,7 +55,7 @@ module EhbrsRubyUtils
|
|
56
55
|
def list_end_reached?
|
57
56
|
previous_count = current_data.count
|
58
57
|
result = nil
|
59
|
-
session.wait_for_click(id: SEE_MORE_BUTTON_ID)
|
58
|
+
session.on_skip_trophies { session.wait_for_click(id: SEE_MORE_BUTTON_ID) }
|
60
59
|
session.wait.until do
|
61
60
|
result = list_end_reached_non_waiting(previous_count)
|
62
61
|
!result.nil?
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EhbrsRubyUtils
|
6
|
+
module Bga
|
7
|
+
class Session < ::SimpleDelegator
|
8
|
+
module SkipTrophies
|
9
|
+
TROPHY_SKIP_BUTTON_XPATH = '//*[@id = "splashedNotifications_overlay"]' \
|
10
|
+
'//*[starts-with(@id, "continue_btn_")]'
|
11
|
+
TROPHY_SKIP_TIMEOUT = 5
|
12
|
+
|
13
|
+
# @param &block [Proc]
|
14
|
+
# @return [Selenium::WebDriver::Error::TimeoutError, nil]
|
15
|
+
def on_rescue_timeout(&block)
|
16
|
+
block.call
|
17
|
+
nil
|
18
|
+
rescue ::Selenium::WebDriver::Error::TimeoutError => e
|
19
|
+
e
|
20
|
+
end
|
21
|
+
|
22
|
+
def on_skip_trophies(&block)
|
23
|
+
error = on_rescue_timeout(&block)
|
24
|
+
return unless error
|
25
|
+
raise error unless skip_trophy_overlay?
|
26
|
+
|
27
|
+
skip_trophies
|
28
|
+
end
|
29
|
+
|
30
|
+
def skip_trophies
|
31
|
+
loop do
|
32
|
+
wait_for_click({ xpath: TROPHY_SKIP_BUTTON_XPATH }, TROPHY_SKIP_TIMEOUT)
|
33
|
+
rescue ::Selenium::WebDriver::Error::TimeoutError
|
34
|
+
break
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [Boolean]
|
39
|
+
def skip_trophy_overlay?
|
40
|
+
find_element(xpath: TROPHY_SKIP_BUTTON_XPATH).present?
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ehbrs_ruby_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.25.
|
4
|
+
version: 0.25.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha
|
@@ -50,6 +50,20 @@ dependencies:
|
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 0.19.1
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: aranha-selenium
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.6'
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.6'
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: avm
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,6 +226,7 @@ files:
|
|
212
226
|
- lib/ehbrs_ruby_utils/bga/session/login.rb
|
213
227
|
- lib/ehbrs_ruby_utils/bga/session/player.rb
|
214
228
|
- lib/ehbrs_ruby_utils/bga/session/player_tables_on_game_stats.rb
|
229
|
+
- lib/ehbrs_ruby_utils/bga/session/skip_trophies.rb
|
215
230
|
- lib/ehbrs_ruby_utils/bga/session/table.rb
|
216
231
|
- lib/ehbrs_ruby_utils/bga/table.rb
|
217
232
|
- lib/ehbrs_ruby_utils/bga/table/option.rb
|