xdrp 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/xdrp.rb +60 -45
  4. data.tar.gz.sig +0 -0
  5. metadata +10 -10
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 737ab10b27c806f92b76fd5c622e913df7ae8b97d3027a30c2d37cf27714ca33
4
- data.tar.gz: 1145d42168fddfb29b70c8339d4a80717873160d261a93cfced4ea17186bf2c4
3
+ metadata.gz: 617fbc32a4b2adaf234769104583696286e5e9b76f4bf11a0f131e107362c6ca
4
+ data.tar.gz: 91f2f6c128055b9e895bfb64449d58e0869def96bccf288b81a872a919701119
5
5
  SHA512:
6
- metadata.gz: 7de5de83cfae5ff60214a93ec8ffab23f5d0429656c8c86273dcb54c330fa99059ac4a9d1d5fbf5787d9fde50d065c63c18c7d2ea4e26241c0ead56b1ca603f3
7
- data.tar.gz: 6fc90d8cb24aafde37c44895563b17b585bf50eb9d3794f387c6cd62d32a4dc386cfd3ab3e0104b308965085915f667da604fe4f32f9b74ad5d8a95a47df04d8
6
+ metadata.gz: 1eaec277d3c3929b9b1b978510e1357d63125f41ae3138f03f77f1793147df35efc8bfacfd66f19b7fadabf34c9982669e5b79334a9d925f182e92c6edf6f4ba
7
+ data.tar.gz: d58741546686f94390594a42a8ca0b11fc5e2bac1827392252ac2ca108df7f86e54ed610a0e7ba2ef525fefd0941e587cc74b018e17582bddcbfd6badd3bec8e
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/xdrp.rb CHANGED
@@ -19,22 +19,22 @@ MOUSE = 1
19
19
  KEYBOARD = 2
20
20
  KEYBOARD_MOUSE = 3
21
21
 
22
-
22
+
23
23
  module Xdrp
24
24
 
25
25
  class Recorder
26
26
 
27
27
  attr_reader :xml
28
-
28
+
29
29
  # level:
30
30
  # 1 = mouse
31
31
  # 2 = keyboard
32
32
  # 3 = keyboard + mouse
33
33
 
34
34
  def initialize(levelx=KEYBOARD_MOUSE, level: levelx, debug: false)
35
-
35
+
36
36
  @mouse, @keyboard = false, false
37
-
37
+
38
38
  case level
39
39
  when 1
40
40
  @mouse = true
@@ -46,13 +46,13 @@ module Xdrp
46
46
 
47
47
 
48
48
  @xiw = XInputWrapper.new(verbose: true, debug: debug, callback: self)
49
-
49
+
50
50
  @wm = WMCtrl.display
51
51
  @win_title = ''
52
-
52
+
53
53
  end
54
54
 
55
- def on_keypress(key, keycode, modifier=nil)
55
+ def on_keypress(key, keycode, modifier=nil)
56
56
 
57
57
  if @debug then
58
58
  puts 'key: ' + key.inspect
@@ -61,32 +61,32 @@ module Xdrp
61
61
  end
62
62
 
63
63
  stop() if modifier and modifier[0] == :alt and key == :z
64
-
65
- return unless @keyboard
64
+
65
+ return unless @keyboard
66
66
 
67
67
  add_sleep() if Time.now > (@t1 + 2)
68
-
68
+
69
69
 
70
70
  if @a.length >= 1 and @a[-1][0] == :type then
71
71
 
72
72
  if modifier.nil? or (modifier and modifier.empty?) then
73
73
  @a[-1][2] += key.to_s.sub('{space}', ' ')
74
74
  else
75
-
75
+
76
76
  if modifier.length < 2 then
77
-
77
+
78
78
  if modifier.first == :shift and (keycode.between?(10,21) \
79
79
  or keycode.between?(24,35) \
80
80
  or keycode.between?(38,48)) then
81
-
81
+
82
82
  char = if key.to_s =~ /[a-z]/ then
83
83
  key.to_s.upcase
84
84
  elsif key.to_s =~ /[0-9]/
85
85
  %w[) ! " £ $ % ^ & * ( ][key.to_s.to_i]
86
86
  else
87
-
87
+
88
88
  lsym = %i(` - = [ ] ; ' # \ , . /)
89
-
89
+
90
90
  if lsym.include? key then
91
91
 
92
92
  usym = %w(¬ _ + { } : @ ~ | < > ?)
@@ -95,14 +95,14 @@ module Xdrp
95
95
  end
96
96
 
97
97
  end
98
-
98
+
99
99
  @a[-1][2] += char
100
-
100
+
101
101
  else
102
- @a << [modifier.first, {key: key}]
102
+ @a << [modifier.first, {key: key}]
103
103
  end
104
104
  end
105
- end
105
+ end
106
106
 
107
107
  else
108
108
 
@@ -123,9 +123,9 @@ module Xdrp
123
123
 
124
124
  def on_mousedown(button, x, y)
125
125
 
126
- return unless @mouse
127
- monitor_app()
128
-
126
+ return unless @mouse
127
+ monitor_app()
128
+
129
129
  puts "mouse %s button down at %s, %s" % [button, x, y] if @debug
130
130
  add_sleep() if Time.now > (@t1 + 2)
131
131
  @a << [:mouse, {click: button, x: x, y: y}]
@@ -133,7 +133,7 @@ module Xdrp
133
133
  end
134
134
 
135
135
  def on_mouseup(button, x, y)
136
-
136
+
137
137
  return unless @mouse
138
138
  puts "mouse %s button up at %s, %s" % [button, x, y] if @debug
139
139
  end
@@ -141,7 +141,7 @@ module Xdrp
141
141
  def on_mousemove(x, y)
142
142
 
143
143
  return unless @mouse
144
-
144
+
145
145
  puts 'mouse is moving at ' + x.to_s + ' y ' + y.to_s if @debug
146
146
  add_sleep() if Time.now > (@t1 + 2)
147
147
  @a << [:mousemove, {x: x, y: y}]
@@ -151,7 +151,7 @@ module Xdrp
151
151
  def on_mouse_scrolldown()
152
152
 
153
153
  return unless @mouse
154
-
154
+
155
155
  puts 'mouse is scrolling down' if @debug
156
156
  add_sleep() if Time.now > (@t1 + 2)
157
157
  @a << [:mousewheel, {scroll: 'down'}]
@@ -161,32 +161,32 @@ module Xdrp
161
161
  def on_mouse_scrollup()
162
162
 
163
163
  return unless @mouse
164
-
164
+
165
165
  puts 'mouse is scrolling up ' if @debug
166
166
  add_sleep() if Time.now > (@t1 + 2)
167
167
  @a << [:mousewheel, {scroll: 'up'}]
168
168
 
169
169
  end
170
-
170
+
171
171
  def save(filepath)
172
172
  File.write filepath, xml()
173
173
  end
174
174
 
175
175
  def start()
176
-
176
+
177
177
  @a = []
178
178
  Thread.new { @xiw.listen }
179
179
  puts 'recording ...'
180
180
  @t1 = Time.now
181
-
181
+
182
182
  end
183
183
 
184
184
  def stop()
185
-
185
+
186
186
  @xiw.stop = true
187
187
  @doc = Rexle.new(['xdrp', {}, '', *@a])
188
188
  puts 'recording stopped'
189
-
189
+
190
190
  end
191
191
 
192
192
  def xml()
@@ -199,21 +199,22 @@ module Xdrp
199
199
  @a << [:sleep, {duration: (Time.now - @t1).round}]
200
200
  @t1 = Time.now
201
201
  end
202
-
203
- def monitor_app()
204
202
 
205
- win = @wm.windows.find {|x| x.active}
206
-
203
+ def monitor_app()
204
+
205
+ win = @wm.windows.find {|x| x.active}
206
+
207
207
  if win.title != @win_title then
208
208
  @win_title = win.title
209
209
  @a << [:window, {activate: win.title}]
210
210
  end
211
-
211
+
212
212
  end
213
213
 
214
214
  end
215
215
 
216
216
  class Player
217
+ using ColouredText
217
218
 
218
219
  def initialize(src, debug: false)
219
220
 
@@ -226,8 +227,17 @@ module Xdrp
226
227
  def play()
227
228
 
228
229
  @doc.root.elements.each do |e|
229
- puts 'e: ' + e.xml.inspect if @debug
230
- method('xdo_' + e.name.to_s).call(e.text || e.attributes)
230
+
231
+ if @debug then
232
+ puts ('e: ' + e.xml.inspect).debug
233
+ puts 'e.class: ' + e.class.inspect.debug
234
+ end
235
+
236
+ if e.attributes.any? then
237
+ method('xdo_' + e.name.to_s).call(**(e.attributes))
238
+ else
239
+ method('xdo_' + e.name.to_s).call(e.text)
240
+ end
231
241
  end
232
242
 
233
243
  end
@@ -239,17 +249,17 @@ module Xdrp
239
249
  end
240
250
 
241
251
  def xdo_mouse(click: 'left', x: 0, y: 0)
242
- XDo::Mouse.click(x.to_i, y.to_i,
252
+ XDo::Mouse.click(x.to_i, y.to_i,
243
253
  Object.const_get('XDo::Mouse::' + click.upcase))
244
254
  end
245
255
 
246
256
  def xdo_mousemove(x: 0, y: 0)
247
257
  XDo::Mouse.move(x.to_i, y.to_i)
248
258
  end
249
-
259
+
250
260
  def xdo_mousewheel(scroll: 'down')
251
261
  XDo::Mouse.wheel(Object.const_get('XDo::Mouse::' + scroll.upcase, 4))
252
- end
262
+ end
253
263
 
254
264
  def xdo_sleep(duration: 0)
255
265
  sleep duration.to_f
@@ -262,15 +272,20 @@ module Xdrp
262
272
  def xdo_type(s)
263
273
  XDo::Keyboard.simulate(s.gsub('{enter}', "\n"))
264
274
  end
265
-
275
+
266
276
  def xdo_window(activate: '')
267
-
277
+
278
+ if @debug then
279
+ puts 'inside xdo_window'
280
+ puts 'activate: ' + activate.inspect
281
+ end
282
+
268
283
  wm = WMCtrl.display
269
284
  window = wm.windows.find {|x| x.title == activate}
270
285
  window.activate
271
-
286
+
272
287
  end
273
-
288
+
274
289
 
275
290
  end
276
291
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xdrp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  TiejpssCygWf9HFO3IZRrjH3OzSduilBf7oorCJZqxI5d7KbuK6ceM00aCBJibQO
36
36
  K2bW5QcTuyp9GEliuroid41b
37
37
  -----END CERTIFICATE-----
38
- date: 2021-11-01 00:00:00.000000000 Z
38
+ date: 2021-11-16 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: xdo
@@ -121,24 +121,24 @@ dependencies:
121
121
  name: keystroker
122
122
  requirement: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 0.3.0
127
124
  - - "~>"
128
125
  - !ruby/object:Gem::Version
129
126
  version: '0.3'
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 0.3.1
130
130
  type: :runtime
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: 0.3.0
137
134
  - - "~>"
138
135
  - !ruby/object:Gem::Version
139
136
  version: '0.3'
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 0.3.1
140
140
  description:
141
- email: james@jamesrobertson.eu
141
+ email: digital.robertson@gmail.com
142
142
  executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
@@ -156,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: 3.0.2
160
160
  required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - ">="
metadata.gz.sig CHANGED
Binary file