locatine 0.02653 → 0.02710
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/locatine/element.rb +4 -0
- data/lib/locatine/results_helpers/find_by_magic.rb +16 -4
- data/lib/locatine/results_helpers/guess.rb +5 -0
- data/lib/locatine/session.rb +3 -3
- data/lib/locatine/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56487180200c449f68c037e000f60aa54165623f2fa8ccfab887d8756c7e848c
|
4
|
+
data.tar.gz: 8cc1c4a8edffdc0bab1dc2ca4f32038f106412a3bc4864d11547bc27ddcf091e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edb0be42a2a0b1d624a53975cf0ace45688df57b20b8e75bfaf6eca1c1adf992a64848b94ef984517ca8de8f14856c6795738b0ef14c4b5928727b11b91da595
|
7
|
+
data.tar.gz: e20848ead9b6346734b19062568d70025d579f314773fed3ee66c2104732c83c30dce86f1b0e0101df51b5831ffbae4fa79b5b048ee9688f17416bc8a84486e8
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ That's it.
|
|
14
14
|
|
15
15
|
## Stage of development:
|
16
16
|
|
17
|
-
Version of Locatine is **0.
|
17
|
+
Version of Locatine is **0.02710**. The 3rd version since rewriting. 10-15 next versions is dedicated to bug fixing, tweaking.
|
18
18
|
|
19
19
|
## Attention
|
20
20
|
|
data/lib/locatine/element.rb
CHANGED
@@ -28,12 +28,17 @@ module Locatine
|
|
28
28
|
classic = classic_thread
|
29
29
|
magic = magic_thread
|
30
30
|
sleep 0.1 while timer && !similar?
|
31
|
-
classic
|
32
|
-
magic
|
31
|
+
kill_join(classic)
|
32
|
+
kill_join(magic)
|
33
33
|
normalize_indexes(magic['out']) if empty? && (magic['out'].to_h != {})
|
34
34
|
self
|
35
35
|
end
|
36
36
|
|
37
|
+
def kill_join(thread)
|
38
|
+
thread.kill
|
39
|
+
thread.join
|
40
|
+
end
|
41
|
+
|
37
42
|
def magic_routine(data)
|
38
43
|
Thread.current['out'] = {}
|
39
44
|
page = @session.page
|
@@ -54,14 +59,21 @@ module Locatine
|
|
54
59
|
end
|
55
60
|
|
56
61
|
def magic_find(data = known)
|
62
|
+
@everything = all_elements
|
57
63
|
magic_routine(data)
|
58
64
|
normalize_indexes
|
59
65
|
end
|
60
66
|
|
61
|
-
def
|
67
|
+
def all_elements
|
62
68
|
all = { 'using' => 'tag name', 'value' => '*' }
|
63
69
|
list = @session.api_request('/elements', 'Post', all.to_json).body
|
64
|
-
|
70
|
+
JSON.parse(list)['value']
|
71
|
+
end
|
72
|
+
|
73
|
+
def normalize_indexes(indexes = Thread.current['out'])
|
74
|
+
list = all_elements
|
75
|
+
return warn_unstable_page if list != @everything
|
76
|
+
|
65
77
|
answers = max_indexes(indexes).map { |index| list[index.to_i] }
|
66
78
|
answers.each do |item|
|
67
79
|
push Locatine::Element.new(@session, item)
|
data/lib/locatine/session.rb
CHANGED
@@ -64,9 +64,9 @@ module Locatine
|
|
64
64
|
|
65
65
|
def execute_script(script, *args)
|
66
66
|
args.map! { |item| item.class == Locatine::Element ? item.answer : item }
|
67
|
-
|
68
|
-
|
69
|
-
|
67
|
+
response = api_request('/execute/sync', 'Post',
|
68
|
+
{ script: script, args: args }.to_json).body
|
69
|
+
value = JSON.parse(response, max_nesting: false)['value']
|
70
70
|
error_present = (value.class == Hash) && value['error']
|
71
71
|
raise_script_error(script, args, value) if error_present
|
72
72
|
|
data/lib/locatine/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: locatine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.02710'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei Seleznev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|