my-lib 0.0.1.3 → 0.0.1.4
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.
- data/TAGS +242 -62
- data/VERSION +1 -1
- data/lib/lib/anisoku.rb +0 -2
- data/lib/lib/job.rb +130 -0
- data/lib/lib/machine.rb +115 -0
- data/lib/my-lib.rb +2 -0
- data/my-lib.gemspec +1 -1
- metadata +22 -22
data/TAGS
CHANGED
|
@@ -2,65 +2,245 @@
|
|
|
2
2
|
(null),18
|
|
3
3
|
def hogehoge2,6
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
class
|
|
7
|
-
def
|
|
8
|
-
|
|
9
|
-
def
|
|
10
|
-
def
|
|
11
|
-
|
|
12
|
-
def
|
|
13
|
-
def
|
|
14
|
-
def
|
|
15
|
-
|
|
16
|
-
def
|
|
17
|
-
def
|
|
18
|
-
def
|
|
19
|
-
def
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def
|
|
28
|
-
def
|
|
29
|
-
def
|
|
30
|
-
def
|
|
31
|
-
def
|
|
32
|
-
|
|
33
|
-
def
|
|
34
|
-
|
|
35
|
-
def
|
|
36
|
-
def
|
|
37
|
-
def
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class
|
|
42
|
-
def
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
def
|
|
48
|
-
def
|
|
49
|
-
def
|
|
50
|
-
def
|
|
51
|
-
def
|
|
52
|
-
|
|
53
|
-
def
|
|
54
|
-
|
|
55
|
-
def
|
|
56
|
-
def
|
|
57
|
-
|
|
58
|
-
def
|
|
59
|
-
def
|
|
60
|
-
def
|
|
61
|
-
|
|
62
|
-
def
|
|
63
|
-
def
|
|
64
|
-
def
|
|
65
|
-
def
|
|
66
|
-
|
|
5
|
+
,530
|
|
6
|
+
class MyJobAnisokuMyJobAnisoku21,555
|
|
7
|
+
def initialize(args = { })initialize25,600
|
|
8
|
+
def tokkakaritokkakari39,1001
|
|
9
|
+
def secondsecond60,1484
|
|
10
|
+
def kobetukobetu82,2073
|
|
11
|
+
def thirdthird115,2878
|
|
12
|
+
def fc2fc2152,3906
|
|
13
|
+
def videovideo170,4466
|
|
14
|
+
def runrun196,5430
|
|
15
|
+
class MyMachineAnisokuMyMachineAnisoku227,5922
|
|
16
|
+
def initialize(args={ })initialize239,6248
|
|
17
|
+
def gogo255,6600
|
|
18
|
+
def finalize_filesfinalize_files271,6919
|
|
19
|
+
def setupjobssetupjobs279,7070
|
|
20
|
+
def should_stop_machine?should_stop_machine?287,7205
|
|
21
|
+
|
|
22
|
+
wn,0
|
|
23
|
+
|
|
24
|
+
lib/lib/job.rb,671
|
|
25
|
+
class MyJobAnisokuMyJobAnisoku18,554
|
|
26
|
+
def initialize(args = { })initialize22,599
|
|
27
|
+
def tokkakaritokkakari36,1000
|
|
28
|
+
def secondsecond57,1483
|
|
29
|
+
def kobetukobetu79,2072
|
|
30
|
+
def thirdthird112,2877
|
|
31
|
+
def fc2fc2149,3905
|
|
32
|
+
def videovideo167,4465
|
|
33
|
+
def runrun193,5429
|
|
34
|
+
class MyDojinJobMyDojinJob215,5741
|
|
35
|
+
def initialize(args = { })initialize217,5759
|
|
36
|
+
def runrun241,6500
|
|
37
|
+
def do_connectdo_connect247,6545
|
|
38
|
+
def save_content(content)save_content275,7292
|
|
39
|
+
def checkdircheckdir283,7487
|
|
40
|
+
def file_already_saved?file_already_saved?291,7603
|
|
41
|
+
class MyDojinJobEventMachine < MyDojinJobMyDojinJobEventMachine299,7736
|
|
42
|
+
def do_connectdo_connect303,7794
|
|
43
|
+
|
|
44
|
+
,814
|
|
45
|
+
module MyMachineMyMachine6,83
|
|
46
|
+
def initializeinitialize12,150
|
|
47
|
+
def setupsetup17,220
|
|
48
|
+
def gogo22,270
|
|
49
|
+
def retry(job)retry26,327
|
|
50
|
+
def setupjobssetupjobs32,382
|
|
51
|
+
def setupmachinesetupmachine36,456
|
|
52
|
+
module DojinMachineDojinMachine43,539
|
|
53
|
+
def initialize(args={ })initialize46,580
|
|
54
|
+
def bookend(booknum)bookend55,746
|
|
55
|
+
def bookended?(booknum)bookended?59,801
|
|
56
|
+
def setupjobssetupjobs65,874
|
|
57
|
+
class DojinEventMachine DojinEventMachine82,1210
|
|
58
|
+
def initialize(args={ })initialize85,1259
|
|
59
|
+
def gogo94,1450
|
|
60
|
+
def connection_exceed?connection_exceed?110,1748
|
|
61
|
+
def connection_count!connection_count!114,1826
|
|
62
|
+
def connection_end!connection_end!119,1889
|
|
63
|
+
def setupjobssetupjobs126,1988
|
|
64
|
+
def setupmachinesetupmachine142,2351
|
|
65
|
+
def should_stop_machine?should_stop_machine?146,2413
|
|
66
|
+
|
|
67
|
+
,236
|
|
68
|
+
module MyAtModuleMyAtModule18,335
|
|
69
|
+
def initializeinitialize19,353
|
|
70
|
+
def gcaljobs_2_atgcaljobs_2_at23,413
|
|
71
|
+
def jobs2at(job)jobs2at28,499
|
|
72
|
+
def _at_scriptpath(job)_at_scriptpath41,833
|
|
73
|
+
def _at_command(job)_at_command45,949
|
|
74
|
+
|
|
75
|
+
,212
|
|
76
|
+
class MyConfigMyConfig3,90
|
|
77
|
+
def self.set(filename)set7,136
|
|
78
|
+
def self.hogehoge11,190
|
|
79
|
+
def self.getget16,269
|
|
80
|
+
def self.readread23,349
|
|
81
|
+
def self.reloadreload31,532
|
|
82
|
+
def self.disposedispose35,571
|
|
83
|
+
|
|
84
|
+
,128
|
|
85
|
+
module MyDBModuleMyDBModule24,474
|
|
86
|
+
def set_my_dbset_my_db32,581
|
|
87
|
+
def insert_DB(key='test_app',value='')insert_DB53,1175
|
|
88
|
+
|
|
89
|
+
,247
|
|
90
|
+
module MyGCalModuleMyGCalModule17,348
|
|
91
|
+
def gcal_readgcal_read20,430
|
|
92
|
+
def gcal_write(eventdata)gcal_write27,536
|
|
93
|
+
def gcal_parse_2_jobsgcal_parse_2_jobs40,885
|
|
94
|
+
def gcal_checkout(event)gcal_checkout61,1430
|
|
95
|
+
def serviceservice68,1567
|
|
96
|
+
|
|
97
|
+
lib/lib/mylogger.rb,158
|
|
98
|
+
class MyLoggerMyLogger7,134
|
|
99
|
+
def self.ln(message)ln13,234
|
|
100
|
+
def self.lw(message)lw21,407
|
|
101
|
+
def self.beforebefore29,545
|
|
102
|
+
def self.afterafter35,671
|
|
103
|
+
|
|
104
|
+
lib/lib/myobject.rb,64
|
|
105
|
+
class MyObjectMyObject7,193
|
|
106
|
+
def initializeinitialize8,208
|
|
107
|
+
|
|
108
|
+
lib/lib/mypusher.rb,202
|
|
109
|
+
module MyPusherModuleMyPusherModule22,522
|
|
110
|
+
def set_my_pusherset_my_pusher28,646
|
|
111
|
+
def push_pusher(app_name='test_app',data='test')push_pusher43,1016
|
|
112
|
+
def get_puhser_htmlget_puhser_html56,1286
|
|
113
|
+
|
|
114
|
+
lib/lib/runpersec.rb,374
|
|
115
|
+
module RunPerSecModuleRunPerSecModule16,348
|
|
116
|
+
def run(sec)run24,659
|
|
117
|
+
def init_run_per_sec_moduleinit_run_per_sec_module39,901
|
|
118
|
+
def stop_runstop_run44,988
|
|
119
|
+
def before_run_loopbefore_run_loop49,1117
|
|
120
|
+
def loop_hook_preloop_hook_pre53,1206
|
|
121
|
+
def main_loopmain_loop57,1284
|
|
122
|
+
def loop_hook_postloop_hook_post61,1372
|
|
123
|
+
def after_run_loopafter_run_loop65,1476
|
|
124
|
+
|
|
125
|
+
lib/lib/anisoku.rb,530
|
|
126
|
+
class MyJobAnisokuMyJobAnisoku21,555
|
|
127
|
+
def initialize(args = { })initialize25,600
|
|
128
|
+
def tokkakaritokkakari39,1001
|
|
129
|
+
def secondsecond60,1484
|
|
130
|
+
def kobetukobetu82,2073
|
|
131
|
+
def thirdthird115,2878
|
|
132
|
+
def fc2fc2152,3906
|
|
133
|
+
def videovideo170,4466
|
|
134
|
+
def runrun196,5430
|
|
135
|
+
class MyMachineAnisokuMyMachineAnisoku227,5922
|
|
136
|
+
def initialize(args={ })initialize239,6248
|
|
137
|
+
def gogo255,6600
|
|
138
|
+
def finalize_filesfinalize_files271,6919
|
|
139
|
+
def setupjobssetupjobs279,7070
|
|
140
|
+
def should_stop_machine?should_stop_machine?287,7205
|
|
141
|
+
|
|
142
|
+
,0
|
|
143
|
+
|
|
144
|
+
lib/lib/job.rb,671
|
|
145
|
+
class MyJobAnisokuMyJobAnisoku18,554
|
|
146
|
+
def initialize(args = { })initialize22,599
|
|
147
|
+
def tokkakaritokkakari36,1000
|
|
148
|
+
def secondsecond57,1483
|
|
149
|
+
def kobetukobetu79,2072
|
|
150
|
+
def thirdthird112,2877
|
|
151
|
+
def fc2fc2149,3905
|
|
152
|
+
def videovideo167,4465
|
|
153
|
+
def runrun193,5429
|
|
154
|
+
class MyDojinJobMyDojinJob215,5741
|
|
155
|
+
def initialize(args = { })initialize217,5759
|
|
156
|
+
def runrun241,6500
|
|
157
|
+
def do_connectdo_connect247,6545
|
|
158
|
+
def save_content(content)save_content275,7292
|
|
159
|
+
def checkdircheckdir283,7487
|
|
160
|
+
def file_already_saved?file_already_saved?291,7603
|
|
161
|
+
class MyDojinJobEventMachine < MyDojinJobMyDojinJobEventMachine299,7736
|
|
162
|
+
def do_connectdo_connect303,7794
|
|
163
|
+
|
|
164
|
+
,814
|
|
165
|
+
module MyMachineMyMachine6,83
|
|
166
|
+
def initializeinitialize12,150
|
|
167
|
+
def setupsetup17,220
|
|
168
|
+
def gogo22,270
|
|
169
|
+
def retry(job)retry26,327
|
|
170
|
+
def setupjobssetupjobs32,382
|
|
171
|
+
def setupmachinesetupmachine36,456
|
|
172
|
+
module DojinMachineDojinMachine43,539
|
|
173
|
+
def initialize(args={ })initialize46,580
|
|
174
|
+
def bookend(booknum)bookend55,746
|
|
175
|
+
def bookended?(booknum)bookended?59,801
|
|
176
|
+
def setupjobssetupjobs65,874
|
|
177
|
+
class DojinEventMachine DojinEventMachine82,1210
|
|
178
|
+
def initialize(args={ })initialize85,1259
|
|
179
|
+
def gogo94,1450
|
|
180
|
+
def connection_exceed?connection_exceed?110,1748
|
|
181
|
+
def connection_count!connection_count!114,1826
|
|
182
|
+
def connection_end!connection_end!119,1889
|
|
183
|
+
def setupjobssetupjobs126,1988
|
|
184
|
+
def setupmachinesetupmachine142,2351
|
|
185
|
+
def should_stop_machine?should_stop_machine?146,2413
|
|
186
|
+
|
|
187
|
+
�n,236
|
|
188
|
+
module MyAtModuleMyAtModule18,335
|
|
189
|
+
def initializeinitialize19,353
|
|
190
|
+
def gcaljobs_2_atgcaljobs_2_at23,413
|
|
191
|
+
def jobs2at(job)jobs2at28,499
|
|
192
|
+
def _at_scriptpath(job)_at_scriptpath41,833
|
|
193
|
+
def _at_command(job)_at_command45,949
|
|
194
|
+
|
|
195
|
+
,212
|
|
196
|
+
class MyConfigMyConfig3,90
|
|
197
|
+
def self.set(filename)set7,136
|
|
198
|
+
def self.hogehoge11,190
|
|
199
|
+
def self.getget16,269
|
|
200
|
+
def self.readread23,349
|
|
201
|
+
def self.reloadreload31,532
|
|
202
|
+
def self.disposedispose35,571
|
|
203
|
+
|
|
204
|
+
�n,128
|
|
205
|
+
module MyDBModuleMyDBModule24,474
|
|
206
|
+
def set_my_dbset_my_db32,581
|
|
207
|
+
def insert_DB(key='test_app',value='')insert_DB53,1175
|
|
208
|
+
|
|
209
|
+
,247
|
|
210
|
+
module MyGCalModuleMyGCalModule17,348
|
|
211
|
+
def gcal_readgcal_read20,430
|
|
212
|
+
def gcal_write(eventdata)gcal_write27,536
|
|
213
|
+
def gcal_parse_2_jobsgcal_parse_2_jobs40,885
|
|
214
|
+
def gcal_checkout(event)gcal_checkout61,1430
|
|
215
|
+
def serviceservice68,1567
|
|
216
|
+
|
|
217
|
+
lib/lib/mylogger.rb,158
|
|
218
|
+
class MyLoggerMyLogger7,134
|
|
219
|
+
def self.ln(message)ln13,234
|
|
220
|
+
def self.lw(message)lw21,407
|
|
221
|
+
def self.beforebefore29,545
|
|
222
|
+
def self.afterafter35,671
|
|
223
|
+
|
|
224
|
+
lib/lib/myobject.rb,64
|
|
225
|
+
class MyObjectMyObject7,193
|
|
226
|
+
def initializeinitialize8,208
|
|
227
|
+
|
|
228
|
+
lib/lib/mypusher.rb,202
|
|
229
|
+
module MyPusherModuleMyPusherModule22,522
|
|
230
|
+
def set_my_pusherset_my_pusher28,646
|
|
231
|
+
def push_pusher(app_name='test_app',data='test')push_pusher43,1016
|
|
232
|
+
def get_puhser_htmlget_puhser_html56,1286
|
|
233
|
+
|
|
234
|
+
lib/lib/runpersec.rb,374
|
|
235
|
+
module RunPerSecModuleRunPerSecModule16,348
|
|
236
|
+
def run(sec)run24,659
|
|
237
|
+
def init_run_per_sec_moduleinit_run_per_sec_module39,901
|
|
238
|
+
def stop_runstop_run44,988
|
|
239
|
+
def before_run_loopbefore_run_loop49,1117
|
|
240
|
+
def loop_hook_preloop_hook_pre53,1206
|
|
241
|
+
def main_loopmain_loop57,1284
|
|
242
|
+
def loop_hook_postloop_hook_post61,1372
|
|
243
|
+
def after_run_loopafter_run_loop65,1476
|
|
244
|
+
|
|
245
|
+
�n,27
|
|
246
|
+
class StringString21,352
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.1.
|
|
1
|
+
0.0.1.4
|
data/lib/lib/anisoku.rb
CHANGED
data/lib/lib/job.rb
CHANGED
|
@@ -210,3 +210,133 @@ class MyJobAnisoku
|
|
|
210
210
|
end
|
|
211
211
|
|
|
212
212
|
end
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class MyJobDojin
|
|
216
|
+
|
|
217
|
+
def initialize(args = { })
|
|
218
|
+
require 'net/http'
|
|
219
|
+
@args = args
|
|
220
|
+
|
|
221
|
+
#sample http://1patu.net/data/20591/preview/000.jpg
|
|
222
|
+
@args[:path] = "/data/#{@args[:book].to_s}/preview/" +
|
|
223
|
+
sprintf("%0#{3}d", @args[:page]) + ".jpg"
|
|
224
|
+
@args[:cookie] ||= { 'Cookie' => '1patu_view=1'}
|
|
225
|
+
@args[:status] = :new
|
|
226
|
+
@args[:try] = 0
|
|
227
|
+
|
|
228
|
+
@args[:savedir] ||= "/Users/seijiro/Downloads/jpg"
|
|
229
|
+
@args[:savebookdir] = "#{@args[:savedir].to_s}/#{@args[:book].to_s}"
|
|
230
|
+
checkdir
|
|
231
|
+
@args[:savepath] = "#{@args[:savebookdir]}/" +
|
|
232
|
+
sprintf("%0#{3}d", @args[:page]) + ".jpg"
|
|
233
|
+
@machine = @args[:machine]
|
|
234
|
+
|
|
235
|
+
#debug
|
|
236
|
+
@args[:debug] ||= false
|
|
237
|
+
@args[:savepath] = '/dev/null' if @args[:debug]
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def run
|
|
241
|
+
do_connect
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
private
|
|
245
|
+
|
|
246
|
+
def do_connect
|
|
247
|
+
puts "Do Connect".green
|
|
248
|
+
return if @machine.bookended?(@args[:book])
|
|
249
|
+
return if file_already_saved?
|
|
250
|
+
|
|
251
|
+
Net::HTTP.start(@args[:server]) do |http|
|
|
252
|
+
response = http.get(@args[:path],@args[:cookie])
|
|
253
|
+
|
|
254
|
+
case response
|
|
255
|
+
when Net::HTTPSuccess then
|
|
256
|
+
save_content(response.body)
|
|
257
|
+
when Net::HTTPClientError then
|
|
258
|
+
@machine.bookend(@args[:book])
|
|
259
|
+
when Net::HTTPServerError then
|
|
260
|
+
puts "Net::HTTPSereverError".red
|
|
261
|
+
Thread.sleep 2
|
|
262
|
+
@args[:try] += 1
|
|
263
|
+
if @args[:try] < 6
|
|
264
|
+
@machine.retry(self)
|
|
265
|
+
else
|
|
266
|
+
end
|
|
267
|
+
when Net::HTTPRedirection then
|
|
268
|
+
puts "Net::HTTPRedirection"
|
|
269
|
+
else
|
|
270
|
+
puts (response.error!).red.bold
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def save_content(content)
|
|
276
|
+
open(@args[:savepath],"wb") do |io|
|
|
277
|
+
io.write(content)
|
|
278
|
+
end
|
|
279
|
+
print "fetched:".green.bold + @args[:path]
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
# ダウンロード保存先を作る
|
|
283
|
+
def checkdir
|
|
284
|
+
begin
|
|
285
|
+
Dir::mkdir(@args[:savebookdir], 0777)
|
|
286
|
+
rescue => ex
|
|
287
|
+
# warn ex
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
def file_already_saved?
|
|
292
|
+
File.exist?(@args[:savepath]) && FileTest.size(@args[:savepath]) > 0
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
# for EventMachine
|
|
299
|
+
class MyJobDojinEventMachine < MyJobDojin
|
|
300
|
+
|
|
301
|
+
private
|
|
302
|
+
|
|
303
|
+
def do_connect
|
|
304
|
+
return if @machine.bookended?(@args[:book])
|
|
305
|
+
return if file_already_saved?
|
|
306
|
+
|
|
307
|
+
if @machine.connection_exceed? #コネクション限界を超えていないか?
|
|
308
|
+
@machine.retry(self)
|
|
309
|
+
return
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
@machine.connection_count!
|
|
313
|
+
|
|
314
|
+
@http = EventMachine::Protocols::HttpClient.request(
|
|
315
|
+
:host => @args[:server],
|
|
316
|
+
:port => @args[:port],
|
|
317
|
+
:request => @args[:path],
|
|
318
|
+
:cookie => @args[:cookie]['Cookie']
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
@http.callback {|response|
|
|
322
|
+
@machine.connection_end!
|
|
323
|
+
if response[:status] == 200
|
|
324
|
+
# 200 はレスポンスの中身を保存する
|
|
325
|
+
save_content(response[:content])
|
|
326
|
+
elsif response[:status] == 503 ||
|
|
327
|
+
response[:status] == 500 ||
|
|
328
|
+
response[:status] == 403
|
|
329
|
+
# 503/500/403はリトライする
|
|
330
|
+
@args[:try] += 1
|
|
331
|
+
@machine.retry(self) if @args[:try] < 6
|
|
332
|
+
elsif response[:status] == 404
|
|
333
|
+
# 404は終了する
|
|
334
|
+
@machine.bookend(@args[:book])
|
|
335
|
+
else
|
|
336
|
+
puts response[:status].to_s.red.bold
|
|
337
|
+
puts response[:headers].to_s.red.bold
|
|
338
|
+
end
|
|
339
|
+
}
|
|
340
|
+
end
|
|
341
|
+
end
|
|
342
|
+
|
data/lib/lib/machine.rb
CHANGED
|
@@ -40,4 +40,119 @@ module MyMachine
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
module MyMachineDojin
|
|
44
|
+
include MyMachine
|
|
45
|
+
|
|
46
|
+
def initialize(args={ })
|
|
47
|
+
super()
|
|
48
|
+
@args = args
|
|
49
|
+
@args[:start] ||= 3000
|
|
50
|
+
@args[:stop] ||= 3100
|
|
51
|
+
@args[:concurrency] ||= 10
|
|
52
|
+
@args[:savedir] ||= "#{ENV['HOME']}/Downloads/jpg"
|
|
53
|
+
@endbooks = []
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def bookend(booknum)
|
|
57
|
+
@endbooks << booknum
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def bookended?(booknum)
|
|
61
|
+
@endbooks.index(booknum)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
def setupjobs
|
|
67
|
+
(0..100).each do |p|
|
|
68
|
+
(@args[:start]..@args[:stop]).each do |b|
|
|
69
|
+
job = MyDojinJob.new(
|
|
70
|
+
:server => '1patu.net',
|
|
71
|
+
:book => b,
|
|
72
|
+
:page => p,
|
|
73
|
+
:machine => self,
|
|
74
|
+
:debug => @args[:debug] ||= false
|
|
75
|
+
)
|
|
76
|
+
@queue.push job
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class MyEventMachineDojin
|
|
84
|
+
include MyMachineDojin
|
|
85
|
+
|
|
86
|
+
def initialize(args={ })
|
|
87
|
+
super args
|
|
88
|
+
# queをEventMachineで再定義
|
|
89
|
+
require 'rubygems'
|
|
90
|
+
require 'eventmachine'
|
|
91
|
+
@connection_count = 0
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# EventMachine用の定義
|
|
95
|
+
def go
|
|
96
|
+
@a=1;@b=0;@c=0;@d=0;
|
|
97
|
+
EM.run do
|
|
98
|
+
EM.add_periodic_timer(0.00001) do
|
|
99
|
+
@a-@b;@b-@c;@c-@d;@d-@a
|
|
100
|
+
print 1>@a? "l".green: "l".yellow
|
|
101
|
+
print 1>@b? "o".red: "o".white
|
|
102
|
+
print 1>@c? "o".cyan: "o".green
|
|
103
|
+
print 1>@d? "o".red: "o".green
|
|
104
|
+
EM.stop if should_stop_machine?
|
|
105
|
+
if !connection_exceed?
|
|
106
|
+
@queue.pop.run unless @queue.empty?
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
p @endbooks
|
|
111
|
+
@endbooks = []
|
|
112
|
+
puts "End of fetch".green.bold
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def connection_exceed?
|
|
116
|
+
@args[:concurrency] <= @connection_count
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def connection_count!
|
|
120
|
+
@connection_count += 1
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def connection_end!
|
|
125
|
+
@connection_count -= 1
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
private
|
|
129
|
+
|
|
130
|
+
# EventMachine用に再定義
|
|
131
|
+
def setupjobs
|
|
132
|
+
(0..100).each do |p|
|
|
133
|
+
(@args[:start]..@args[:stop]).each do |b|
|
|
134
|
+
job = MyJobDojinEventMachine.new(
|
|
135
|
+
:savedir => @args[:savedir],
|
|
136
|
+
:server => '1patu.net',
|
|
137
|
+
:book => b,
|
|
138
|
+
:page => p,
|
|
139
|
+
:machine => self,
|
|
140
|
+
:debug => @args[:debug] ||= false
|
|
141
|
+
)
|
|
142
|
+
@queue.push job
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# 何もしない
|
|
148
|
+
def setupmachine
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Machineは終了すべきか?
|
|
152
|
+
def should_stop_machine?
|
|
153
|
+
print " q:"+ @queue.size.to_s + "/c:" + @connection_count.to_s + " "
|
|
154
|
+
return @queue.size == 0 && @connection_count == 0
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
end
|
|
43
158
|
|
data/lib/my-lib.rb
CHANGED
data/my-lib.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: my-lib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.1.
|
|
4
|
+
version: 0.0.1.4
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,7 +13,7 @@ date: 2011-09-02 00:00:00.000000000Z
|
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: term-ansicolor
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2156214500 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2156214500
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: eventmachine
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2156187340 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2156187340
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: mechanize
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2156184080 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2156184080
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: rspec
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &2156175340 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>'
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: 2.3.0
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *2156175340
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: yard
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &2156172320 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>'
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: 0.6.0
|
|
66
66
|
type: :development
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *2156172320
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: bundler
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &2156161360 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>'
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: 1.0.0
|
|
77
77
|
type: :development
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *2156161360
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: jeweler
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &2156158860 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ! '>='
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '0'
|
|
88
88
|
type: :development
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *2156158860
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: rcov
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &2156155600 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,10 +98,10 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :development
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *2156155600
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
103
|
name: guard
|
|
104
|
-
requirement: &
|
|
104
|
+
requirement: &2156145720 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
107
|
- - ! '>='
|
|
@@ -109,10 +109,10 @@ dependencies:
|
|
|
109
109
|
version: '0'
|
|
110
110
|
type: :development
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *2156145720
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: guard-spork
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &2156143900 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,7 +120,7 @@ dependencies:
|
|
|
120
120
|
version: '0'
|
|
121
121
|
type: :development
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *2156143900
|
|
124
124
|
description: longer description of your gem
|
|
125
125
|
email: modeverv@gmail.com
|
|
126
126
|
executables: []
|
|
@@ -169,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
169
169
|
version: '0'
|
|
170
170
|
segments:
|
|
171
171
|
- 0
|
|
172
|
-
hash:
|
|
172
|
+
hash: 4340705816426141079
|
|
173
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
174
|
none: false
|
|
175
175
|
requirements:
|