soonje_3 0.0.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.

Potentially problematic release.


This version of soonje_3 might be problematic. Click here for more details.

Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/soonje_3.rb +2680 -0
  3. metadata +43 -0
data/lib/soonje_3.rb ADDED
@@ -0,0 +1,2680 @@
1
+ require 'glimmer-dsl-libui'
2
+ require 'selenium-webdriver'
3
+ require 'webdrivers'
4
+ require 'nokogiri'
5
+ require 'http'
6
+ require 'nokogiri'
7
+ require 'json'
8
+ require 'down'
9
+ require 'rmagick'
10
+ require 'fileutils'
11
+ require 'rest-client'
12
+ require 'open3'
13
+ require 'zlib'
14
+ require 'stringio'
15
+
16
+ class Wordpress
17
+ include Glimmer
18
+
19
+ def login_check2(user_id, user_pw)
20
+ json = Hash.new
21
+ json['url'] = '%2Fbbs%2FbuyListManager7.php'
22
+ json['mb_id'] = user_id.to_s
23
+ json['mb_password'] = user_pw.to_s
24
+ http = HTTP.post('http://marketingduo.co.kr/bbs/login_check.php', :form => json)
25
+ if http.to_s.length == 0
26
+ http = HTTP.get('http://marketingduo.co.kr/bbs/buyListManager7.php')
27
+ noko = Nokogiri::HTML(http.to_s)
28
+ c = noko.xpath('//*[@id="at-main"]/div/table/tbody').to_s.split('<tr>').length-1
29
+ for n in 1..c
30
+ tt = noko.xpath('//*[@id="at-main"]/div/table/tbody/tr['+n.to_s+']').to_s
31
+ if tt.include?(user_id.to_s) and tt.include?('백링크 등록 프로그램')
32
+ if noko.xpath('//*[@id="at-main"]/div/table/tbody/tr['+n.to_s+']/td[7]/label[1]/input').to_s.include?('checked')
33
+ if mac_check(user_id) == 1
34
+ return 1
35
+ else
36
+ return 44
37
+ end
38
+ else
39
+ return 22
40
+ end
41
+ end
42
+ end
43
+ else
44
+ return 33
45
+ end
46
+ end
47
+
48
+ def mac_check(userid)
49
+ json = Hash.new
50
+ json['mb_id'] = 'marketingduo'
51
+ json['mb_password'] = 'mhhs0201'
52
+
53
+ http = HTTP.post('http://marketingduo.co.kr/bbs/login_check.php', :form => json)
54
+ cookie = Hash.new
55
+ http.cookies.each do |i|
56
+ cookie[i.to_s.split('=')[0]] = i.to_s.split('=')[1]
57
+ end
58
+
59
+ http = HTTP.cookies(cookie).get('http://marketingduo.co.kr/bbs/board.php?bo_table=product&sca=&sfl=wr_subject&sop=and&stx='+userid+'--백링크 등록 프로그램')
60
+ noko = Nokogiri::HTML(http.to_s)
61
+ mac_history = Array.new
62
+ mac_url = Array.new
63
+ for n in 1..5
64
+ begin
65
+ url = noko.css('#fboardlist > div.list-board > ul > li:nth-child('+n.to_s+') > div.wr-subject > a').to_s.split('href="')[1].split('"')[0]
66
+ url = url.split('amp;').join('')
67
+ mac_url << url
68
+ rescue
69
+ break
70
+ end
71
+ end
72
+
73
+ mac_url.each do |i|
74
+ http = HTTP.cookies(cookie).get(i)
75
+ noko = Nokogiri::HTML(http.to_s)
76
+ title = noko.css('#at-main > div > section:nth-child(1) > article > div:nth-child(3) > div.view-content').to_s
77
+ title = title.split('>')[1].split('<')[0].split("\t").join('').split("\n").join('').split(' ').join('')
78
+ p title
79
+ mac_history << title
80
+ end
81
+
82
+ mac_address, stderr, status = Open3.capture3('getmac /v')
83
+ mac_address = mac_address.force_encoding('cp949').encode('utf-8')
84
+ mac_address = mac_address.split("\n").join('').split(' ').join
85
+ puts mac_address
86
+ if mac_history.length >= 5
87
+ puts '최대 5대 기기 사용가능 로그인실패'
88
+ return 3
89
+ else
90
+ if mac_history.include?(mac_address)
91
+ puts '등록 맥주소 확인 완료'
92
+ return 1
93
+ else
94
+ puts '신규 기기 등록'
95
+ http = HTTP.cookies(cookie).post('http://marketingduo.co.kr/bbs/write_token.php', :form => {'bo_table' => 'product'})
96
+ token = http.to_s.split('token":"')[1].split('"')[0]
97
+ year = Time.now.to_s.split(' ')[0].split('-').join('')
98
+ year2 = Time.now.to_s.split(' ')[1].split(':').join('')
99
+ uid = year+year2
100
+ puts uid
101
+ json = {'token' => token, 'uid' => uid, 'bo_table' => 'product', 'wr_id' => '0', 'wr_subject' => userid+'--백링크 등록 프로그램', 'wr_content' => mac_address}
102
+ http = HTTP.cookies(cookie).post('http://marketingduo.co.kr/bbs/write_update.php', :form => json)
103
+ return 1
104
+ end
105
+ end
106
+ end
107
+
108
+ def get_naver_text(q)
109
+ @driver = Selenium::WebDriver.for :chrome
110
+ @driver.get('https://search.naver.com/search.naver?display=15&f=&filetype=0&page=3&query='+q.to_s+'&research_url=&sm=tab_pge&start=16&where=web')
111
+ noko = Nokogiri::HTML(@driver.page_source)
112
+ tt = noko.xpath('//*[@id="main_pack"]/section/div/ul').text
113
+ for page in 3..8
114
+ @driver.get('https://www.google.com/search?q='+q.to_s+'&start='+(page*10).to_s)
115
+ noko = Nokogiri::HTML(@driver.page_source)
116
+ for n in 1..15
117
+ tt2 = noko.xpath('//*[@id="rso"]/div['+n.to_s+']/div/div/div[2]/div').text
118
+ if tt2.length < 5
119
+
120
+ else
121
+ tt2 = tt2.split('...').join('')
122
+ tt += tt2
123
+ end
124
+ end
125
+ end
126
+ @driver.close
127
+ tt = tt.split(' ').shuffle.join(' ')[0..5000]
128
+ m = Array.new
129
+ for n in 0..19
130
+ m << tt[(n*100)..(n*100+100)]
131
+ end
132
+ return m.join("\n")
133
+ end
134
+
135
+ def chrome_start(url, user_id, user_pw)
136
+ @url = url
137
+ @user_id = user_id
138
+ @user_pw = user_pw
139
+ end
140
+
141
+ def url_check22(url)
142
+ http = HTTP.get(url+'/sign-in')
143
+ if http.to_s.length == 0
144
+ return 0
145
+ else
146
+ return 1
147
+ end
148
+ end
149
+
150
+ def word2_login(url, user_id, user_pw)
151
+ session_id = ''
152
+ if url_check22(url) == 1
153
+ http = HTTP.post(url+'/sign-in', :form=>{'username' => user_id,'password'=> user_pw ,'sent'=>'1','login'=>'1'})
154
+ http.cookies.each do |i|
155
+ puts i
156
+ end
157
+ begin
158
+ session_id = http.to_s.split('session_id", "')[1].split('"')[0]
159
+ rescue
160
+ session_id = ''
161
+ end
162
+
163
+ puts session_id
164
+ else
165
+ http = HTTP.post(url+'/login', :form=>{'error'=>0,'jsession'=>'abcd','username'=>user_id,'password'=>user_pw,'login'=>'Log In'})
166
+ begin
167
+ session_id = http.to_s.split("session_id','")[1].split("'")[0]
168
+ rescue
169
+ session_id = ''
170
+ end
171
+
172
+ puts session_id
173
+
174
+ if session_id == ''
175
+ http = HTTP.post(url+'/login', :form=>{'usr'=>user_id,'pass'=>user_pw,'rememberme'=>'on','login'=>'Log In'})
176
+ begin
177
+ session_id = http.to_s.split("session_id','")[1].split("'")[0]
178
+ rescue
179
+ session_id = ''
180
+ end
181
+ puts session_id
182
+ puts 'final ...'
183
+ end
184
+ end
185
+
186
+ return session_id
187
+ end
188
+
189
+ def login
190
+ begin
191
+ session_id22 = word2_login(@url,@user_id,@user_pw)
192
+
193
+ @cookie = Hash.new
194
+ @cookie['session_id'] = session_id22
195
+
196
+ if session_id22 == ''
197
+ puts '로그인실패...'
198
+ return 0
199
+ else
200
+ puts '로그인성공...'
201
+ return 1
202
+ end
203
+ rescue
204
+ return 0
205
+ end
206
+ end
207
+
208
+ def update
209
+ http = HTTP.cookies(@cookie).get(@url+'/new-post')
210
+ noko = Nokogiri::HTML(http.to_s)
211
+ @http_error_check = false
212
+ begin
213
+ @wpnonce = http.to_s.split('_wpnonce":"')[1].split('"')[0]
214
+ rescue
215
+ ccc = ''
216
+ @cookie.each do |key,v|
217
+ ccc += key+'='+v+'; '
218
+ end
219
+ @h2 = {
220
+ 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
221
+ 'Accept-Encoding' => 'gzip, deflate',
222
+ 'Accept-Language' => 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
223
+ 'Connection' => 'keep-alive',
224
+ 'Cookie' => ccc,
225
+ 'Upgrade-Insecure-Requests' => 1,
226
+ 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
227
+ }
228
+ http = HTTP.headers(@h2).get(@url+'/wp-admin/post-new.php')
229
+ noko = Nokogiri::HTML(http.to_s)
230
+ @wpnonce = http.to_s.split('_wpnonce":"')[1].split('"')[0]
231
+ @http_error_check = true
232
+ end
233
+ @data2 = Hash.new
234
+ @data2['_wpnonce'] = noko.xpath('//*[@id="_wpnonce"]')[0]['value']
235
+ @data2['_wp_http_referer'] = '/wp-admin/post-new.php'
236
+ @data2['user_ID'] = '1'
237
+ @data2['action'] = 'editpost'
238
+ @data2['originalaction'] = 'editpost'
239
+ @data2['post_author'] = '1'
240
+ @data2['post_type'] = 'post'
241
+ @data2['original_post_status'] = 'auto-draft'
242
+ @data2['referredby'] = @url+'/wp-admin/update-core.php'
243
+ @data2['_wp_original_http_referer'] = @url+'/wp-admin/update-core.php'
244
+ @data2['auto_draft'] = nil
245
+ @data2['post_ID'] = noko.xpath('//*[@id="post_ID"]')[0]['value']
246
+ @data2['meta-box-order-nonce'] = noko.xpath('//*[@id="meta-box-order-nonce"]')[0]['value']
247
+ @data2['closedpostboxesnonce'] = noko.xpath('//*[@id="closedpostboxesnonce"]')[0]['value']
248
+ @data2['post_title'] = 'title3'
249
+ @data2['samplepermalinknonce'] = noko.xpath('//*[@id="samplepermalinknonce"]')[0]['value']
250
+ @data2['content'] = 'content3'
251
+ @data2['wp-preview'] = nil
252
+ @data2['hidden_post_status'] = 'draft'
253
+ @data2['post_status'] = 'draft'
254
+ @data2['hidden_post_password'] = nil
255
+ @data2['hidden_post_visibility'] = 'public'
256
+ @data2['visibility'] = 'post'
257
+ @data2['post_password'] = nil
258
+ @data2['mm'] = '10'
259
+ @data2['jj'] = '24'
260
+ @data2['aa'] = '2022'
261
+ @data2['hh'] = '02'
262
+ @data2['mn'] = '41'
263
+ @data2['ss'] = '32'
264
+ @data2['hidden_mm'] = '10'
265
+ @data2['cur_mm'] = '10'
266
+ @data2['hidden_jj'] = '24'
267
+ @data2['cur_jj'] = '24'
268
+ @data2['hidden_aa'] = '2022'
269
+ @data2['cur_aa'] = '2022'
270
+ @data2['hidden_hh'] = '02'
271
+ @data2['cur_hh'] = '02'
272
+ @data2['hidden_mn'] = '41'
273
+ @data2['cur_mn'] = '41'
274
+ @data2['original_publish'] = '공개'
275
+ @data2['publish'] = '공개'
276
+ @data2['post_format'] = '0'
277
+ @data2['post_category[]'] = '0'
278
+ @data2['newcategory'] = '새 카테고리 이름'
279
+ @data2['newcategory_parent'] = -1
280
+ @data2['_ajax_nonce-add-category'] = noko.xpath('//*[@id="_ajax_nonce-add-category"]')[0]['value']
281
+ @data2['tax_input[post_tag]'] = nil
282
+ @data2['newtag[post_tag]'] = nil
283
+ @data2['_thumbnail_id'] = -1
284
+ @data2['excerpt'] = nil
285
+ @data2['trackback_url'] = nil
286
+ @data2['metakeyinput'] = nil
287
+ @data2['metavalue'] = nil
288
+ @data2['_ajax_nonce-add-meta'] = noko.xpath('//*[@id="_ajax_nonce-add-meta"]')[0]['value']
289
+ @data2['advanced_view'] = '1'
290
+ @data2['comment_status'] = 'open'
291
+ @data2['ping_status'] = 'open'
292
+ @data2['post_name'] = nil
293
+ @data2['post_author_override'] = '1'
294
+ #result_http = HTTP.cookies(@cookie).post(@url+'/wp-admin/post.php', :form => @data)
295
+ return @data2
296
+ end
297
+
298
+ def auto_image
299
+ begin
300
+ page = rand(1..15)
301
+ http = HTTP.get('https://unsplash.com/napi/photos?per_page=12&page='+page.to_s)
302
+ json = JSON.parse(http.to_s)
303
+ mm = Array.new
304
+ json.each do |i|
305
+ mm << i['urls']['full']
306
+ end
307
+ url = mm.sample
308
+ Down.download(url, destination: "./image/memory.png")
309
+ rescue
310
+ puts 'image auto download error 5초후 재시도...'
311
+ sleep(5)
312
+ retry
313
+ end
314
+ end
315
+
316
+ def color_image
317
+ color = File.open('./color.ini', 'r', :encoding => 'utf-8').read().split("\n")
318
+ image = Magick::Image.new(740, 740) { |k| k.background_color = color.sample }
319
+ image.write('./image/memory.png')
320
+ end
321
+
322
+ def save_image
323
+ if @data['이미지설정']['이미지'].length == 0
324
+
325
+ else
326
+ if @data['이미지설정']['순서사용'].checked?
327
+ image_path = @data['이미지설정']['이미지'][@image_counter][2]
328
+ @image_counter += 1
329
+ if @image_counter > @data['이미지설정']['이미지'].length-1
330
+ @image_counter = 0
331
+ end
332
+ else
333
+ image_path = @data['이미지설정']['이미지'].sample[2]
334
+ end
335
+ img = Magick::Image.read(image_path).first
336
+ img.write('./image/memory.png')
337
+ end
338
+ end
339
+
340
+ def change_image_size(w)
341
+ img = Magick::Image.read('./image/memory.png').first
342
+ width = img.columns
343
+ height = img.rows
344
+ begin
345
+ if @data['image_type'][0].checked? or @data['image_type'][2].checked?
346
+ img.resize!(w, w*(height.to_f/width.to_f))
347
+ else
348
+ img.resize!(w, w)
349
+ end
350
+ rescue
351
+ img.resize!(w, w)
352
+ end
353
+ img.write('./image/memory.png')
354
+ end
355
+
356
+ def image_text(text1, text2)
357
+ begin
358
+ color = File.open('./color.ini', 'r', :encoding => 'utf-8').read().split("\n")
359
+ font = Dir.entries('./fonts')
360
+ img = Magick::Image.read('./image/memory.png').first
361
+ text = Magick::Draw.new
362
+ color2 = color.sample
363
+ font2 = './fonts/'+font.sample
364
+ message = text1.to_s+"\n"+text2.to_s
365
+ begin
366
+ size = rand(@data['이미지설정']['이미지글자1크기1'].text.to_i..@data['이미지설정']['이미지글자1크기2'].text.to_i)
367
+ rescue
368
+ size = 30
369
+ end
370
+ if @data['이미지설정']['글자그림자'].checked?
371
+ img.annotate(text, 0,0, +3,+3, message) do
372
+ text.gravity = Magick::CenterGravity
373
+ text.pointsize = size
374
+ text.fill = '#000000'
375
+ text.font = font2
376
+ end
377
+ end
378
+
379
+ img.annotate(text, 0,0,0,0, message) do
380
+ text.gravity = Magick::CenterGravity
381
+ text.pointsize = size
382
+ if @data['이미지설정']['글자테두리'].checked?
383
+ text.stroke_width = 2
384
+ text.stroke = '#000000'
385
+ end
386
+ text.fill = color2
387
+ text.font = font2
388
+ end
389
+
390
+ img.write('./image/memory.png')
391
+ rescue
392
+ puts '이미지 폰트 불러오기 오류 재시도...'
393
+ sleep(3)
394
+ retry
395
+ end
396
+ end
397
+
398
+ def border()
399
+ color = File.open('./color.ini', 'r',:encoding => 'utf-8').read().split("\n")
400
+ img = Magick::Image.read('./image/memory.png').first
401
+ size = rand(@data['이미지설정']['테두리크기1'].text.to_i..@data['이미지설정']['테두리크기2'].text.to_i)
402
+ img.border!(size,size,color.sample)
403
+ img.write('./image/memory.png')
404
+ end
405
+
406
+ def image_filter
407
+ img = Magick::Image.read('./image/memory.png').first
408
+ random_filter = [img.edge, img.emboss, img.charcoal, img.blur_image, img.equalize]
409
+ img = random_filter.sample
410
+ img.write('./image/memory.png')
411
+ end
412
+
413
+ def get_image_file
414
+ if @data['image_type'][0].checked?
415
+ save_image()
416
+ elsif @data['image_type'][1].checked?
417
+ color_image()
418
+ elsif @data['image_type'][2].checked?
419
+ auto_image()
420
+ else
421
+ auto_image()
422
+ end
423
+
424
+ image_size = [480,740,650,550,480]
425
+ size = 0
426
+ for n in 0..4
427
+ if @data['image_size'][n].checked?
428
+ if n == 0
429
+ size = image_size.sample
430
+ else
431
+ size = image_size[n]
432
+ end
433
+ end
434
+ end
435
+ if size == 0
436
+ size = 480
437
+ end
438
+
439
+ change_image_size(size)
440
+
441
+ if @data['이미지설정']['필터사용'].checked?
442
+ image_filter()
443
+ end
444
+
445
+ insert_image_text1 = ''
446
+ insert_image_text2 = ''
447
+ if @data['이미지설정']['글자삽입1'].checked?
448
+ insert_image_text1 = @data['이미지설정']['이미지글자1'].sample
449
+ end
450
+
451
+ if @data['이미지설정']['글자삽입2'].checked?
452
+ insert_image_text2 = @data['이미지설정']['이미지글자2'].sample
453
+ end
454
+
455
+ if @data['이미지설정']['글자삽입1'].checked? or @data['이미지설정']['글자삽입2'].checked?
456
+ image_text(insert_image_text1, insert_image_text2)
457
+ end
458
+
459
+ if @data['이미지설정']['테두리사용'].checked?
460
+ border()
461
+ end
462
+
463
+ time = Time.now.to_s.split(' ')[0..1].join('').split(':').join('').split('-').join('')
464
+ FileUtils.cp('./image/memory.png', './image/'+@keyword+time+'.png')
465
+ end
466
+
467
+ def image_update22
468
+ @h = Hash.new
469
+ @h['Host'] = @url.split('//')[1]
470
+ @h['Accept'] = '*/*'
471
+ @h['Connection'] = 'keep-alive'
472
+ @h['Accept-Encoding'] = 'gzip, deflate'
473
+ @h['Accept-Language'] = 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'
474
+ @h['Content-Length'] = File.size('./image/memory.png')+604
475
+ @h['Content-Type'] = 'multipart/form-data; boundary=----WebKitFormBoundaryUaArJLkcivRFMgid'
476
+ @h['Origin'] = @url
477
+ @h['Referer'] = @url+'/wp-admin/post-new.php'
478
+ @h['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
479
+ cookie = ''
480
+ @cookie.each do |key,v|
481
+ cookie += key+'='+v+'; '
482
+ end
483
+ @h['Cookie'] = cookie
484
+
485
+ image_json = {
486
+ 'name' => 'memory10.png',
487
+ 'action' => 'upload-attachment',
488
+ '_wpnonce' => @wpnonce,
489
+ 'post_id' => @data2['post_ID'].to_s,
490
+ 'async-upload' => File.new('./image/memory.png')
491
+ }
492
+ r = RestClient.post(@url+'/wp-admin/async-upload.php', image_json , headers=@h)
493
+ begin
494
+ gz = Zlib::GzipReader.new(StringIO.new(r.body.to_s))
495
+ uncompressed_string = gz.read
496
+ puts uncompressed_string
497
+ rescue
498
+
499
+ end
500
+ begin
501
+ json = JSON.parse(r.body)
502
+ rescue
503
+ json = JSON.parse(uncompressed_string)
504
+ end
505
+ return [json['data']['url'], json['data']['id']]
506
+ end
507
+
508
+ def image_update
509
+ @h = Hash.new
510
+ @h['Host'] = @url.split('//')[1]
511
+ @h['Accept'] = '*/*'
512
+ @h['Connection'] = 'keep-alive'
513
+ @h['Accept-Encoding'] = 'gzip, deflate, br'
514
+ @h['Accept-Language'] = 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'
515
+ @h['Content-Length'] = File.size('./image/memory.png')+604
516
+ @h['Content-Type'] = 'multipart/form-data; boundary=----WebKitFormBoundaryUaArJLkcivRFMgid'
517
+ @h['Origin'] = @url
518
+ @h['Referer'] = @url+'/wp-admin/post-new.php'
519
+ @h['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
520
+ cookie = ''
521
+ @cookie.each do |key,v|
522
+ cookie += key+'='+v+'; '
523
+ end
524
+ @h['Cookie'] = cookie
525
+
526
+ image_json = {
527
+ 'name' => 'memory10.png',
528
+ 'action' => 'upload-attachment',
529
+ '_wpnonce' => @wpnonce,
530
+ 'post_id' => @data2['post_ID'].to_s,
531
+ 'async-upload' => File.new('./image/memory.png')
532
+ }
533
+ r = RestClient.post(@url+'/wp-admin/async-upload.php', image_json , headers=@h)
534
+ begin
535
+ gz = Zlib::GzipReader.new(StringIO.new(r.body.to_s))
536
+ uncompressed_string = gz.read
537
+ puts uncompressed_string
538
+ rescue
539
+ return image_update22()
540
+ end
541
+ begin
542
+ json = JSON.parse(r.body)
543
+ rescue
544
+ json = JSON.parse(uncompressed_string)
545
+ end
546
+ return [json['data']['url'], json['data']['id']]
547
+ end
548
+
549
+ def get_image_url
550
+ get_image_file()
551
+ sleep(1)
552
+ url_id = image_update()
553
+ return url_id
554
+ end
555
+
556
+ def start
557
+ black_users = Array.new
558
+ text_emoticon = [' ☆ ', ' ○ ', ' ◆ ', ' ★ ', ' ▲ ', ' ♠ ']
559
+ title_soon = 0
560
+ keyword_soon = 0
561
+ content_soon = 0
562
+ @image_counter = 0
563
+ while true
564
+ for n in 0..@data['table'].length-1
565
+ @data['table'][n][6] = 0
566
+ end
567
+
568
+ while true
569
+ check_success = 0
570
+ @data['table'].each_with_index do |table,index|
571
+ # begin
572
+ # if black_users.include?(table[1].to_s)
573
+ # next
574
+ # end
575
+ if table[4].to_i > table[6].to_i
576
+ if @data['포스트설정']['테더링'].checked?
577
+ puts 'tedering ip change...'
578
+ stdout, stderr, status = Open3.capture3('./adb devices')
579
+ if status.success?
580
+ device_id = stdout.split("\n")[1].split("\t")[0]
581
+ puts device_id
582
+ puts 'adb -s '+device_id+' shell svc data disable'
583
+ stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
584
+ sleep(3)
585
+ puts 'adb -s '+device_id+' shell svc data enable'
586
+ Open3.capture3('./adb -s '+device_id+' shell svc data enable')
587
+ sleep(3)
588
+ puts 'adb ok'
589
+ sleep(8)
590
+ robot_ip = lambda do
591
+ http = HTTP.get('https://www.findip.kr/')
592
+ noko = Nokogiri::HTML(http.to_s)
593
+ if noko.xpath('/html/body/header/h2').text != @my_ip
594
+ @my_ip = noko.xpath('/html/body/header/h2').text
595
+ else
596
+ puts @my_ip
597
+ puts '제시도...'
598
+ sleep(3)
599
+ robot_ip[]
600
+ end
601
+ end
602
+ robot_ip[]
603
+ else
604
+ puts 'adb error pass'
605
+ end
606
+ end
607
+
608
+ check_success = 1
609
+ @data['table'][index][7] = 0
610
+ if @data['제목설정']['제목'].length == 0
611
+ title = ''
612
+ else
613
+ if @data['제목설정']['랜덤사용'].checked?
614
+ title = @data['제목설정']['제목'].sample[1]
615
+ else
616
+ title = @data['제목설정']['제목'][title_soon][1]
617
+ title_soon += 1
618
+ if title_soon >= @data['제목설정']['제목'].length-1
619
+ title_soon = 0
620
+ end
621
+ end
622
+ end
623
+ @data['table'][index][7] = 5
624
+ @data['table'] << []
625
+ @data['table'].pop
626
+ if @data['키워드설정']['키워드'].length == 0
627
+ keyword = ''
628
+ else
629
+ if @data['키워드설정']['랜덤사용'].checked?
630
+ keyword = @data['키워드설정']['키워드'].sample[1]
631
+ else
632
+ keyword = @data['키워드설정']['키워드'][keyword_soon][1]
633
+ keyword_soon += 1
634
+ if keyword_soon > @data['키워드설정']['키워드'].length-1
635
+ keyword_soon = 0
636
+ end
637
+ end
638
+ end
639
+ @data['table'][index][7] = 10
640
+ @data['table'] << []
641
+ @data['table'].pop
642
+ @keyword = keyword
643
+
644
+ if @data['내용설정']['내용'].length == 0
645
+ content = ''
646
+ else
647
+ if @data['내용설정']['랜덤사용'].checked?
648
+ content = @data['내용설정']['내용'].sample[2]
649
+ else
650
+ content = @data['내용설정']['내용'][content_soon][2]
651
+ content_soon += 1
652
+ if content_soon > @data['내용설정']['내용'].length-1
653
+ content_soon = 0
654
+ end
655
+ end
656
+ end
657
+ @data['table'][index][7] = 15
658
+ @data['table'] << []
659
+ @data['table'].pop
660
+ #단어 가저오기
661
+ if @data['포스트설정']['제목을랜덤'].checked? or @data['포스트설정']['내용을자동생성'].checked? or @data['포스트설정']['내용과자동생성'].checked?
662
+ auto_text = get_naver_text(keyword)
663
+ end
664
+ @data['table'][index][7] = 20
665
+ @data['table'] << []
666
+ @data['table'].pop
667
+ #포스팅 get 데이터 가저오기#############################
668
+ url = table[1].to_s
669
+ user_id = table[2].to_s
670
+ user_pw = table[3].to_s
671
+ chrome_start(url, user_id, user_pw)
672
+ @data['table'][index][7] = 25
673
+ @data['table'] << []
674
+ @data['table'].pop
675
+ login_check = login()
676
+ if login_check == 0
677
+ black_users << table[1].to_s
678
+ next
679
+ end
680
+
681
+ @data2 = update()
682
+ @data['table'][index][7] = 30
683
+ @data['table'] << []
684
+ @data['table'].pop
685
+ ######################################################
686
+
687
+
688
+ #제목시작
689
+ if @data['포스트설정']['제목을랜덤'].checked?
690
+ begin
691
+ title = auto_text.split(' ')[0..5].join(' ')
692
+ rescue
693
+ puts '제목을 랜덤 단어 조합 error'
694
+ end
695
+ end
696
+
697
+ title = " #{title} "
698
+
699
+ if @data['포스트설정']['제목키워드변경'].checked?
700
+ puts '제목키워드변경...'
701
+ @data['포스트설정']['제목키워드변경단어'].text.to_s.split(',').each do |change_text|
702
+ title = title.split(change_text.force_encoding('utf-8')).join(keyword)
703
+ end
704
+ end
705
+ @data['table'][index][7] = 35
706
+ @data['table'] << []
707
+ @data['table'].pop
708
+ if @data['포스트설정']['제목단어변경'].checked?
709
+ puts '제목단어변경...'
710
+ @data['포스트설정']['제목특정단어변경데이터'].each do |key,v|
711
+ title = title.split(key).join(v.sample)
712
+ end
713
+ end
714
+
715
+ if @data['포스트설정']['제목에키워드삽입'].checked?
716
+ puts '제목에키워드삽입...'
717
+ snumber = @data['포스트설정']['제목에키워드삽입숫자1'].text.to_i
718
+ enumber = @data['포스트설정']['제목에키워드삽입숫자2'].text.to_i
719
+ inumber = rand(snumber..enumber)
720
+ puts inumber
721
+ itext = ''
722
+ if @data['키워드설정']['랜덤사용'].checked?
723
+ for n in 1..inumber
724
+ begin
725
+ if n == 1
726
+ if @data['포스트설정']['특수문자'].checked?
727
+ itext += keyword+' '+text_emoticon.sample
728
+ else
729
+ itext += keyword+' '
730
+ end
731
+ else
732
+ if @data['포스트설정']['특수문자'].checked?
733
+ itext += @data['키워드설정']['키워드'].sample[1]+' '+text_emoticon.sample
734
+ else
735
+ itext += @data['키워드설정']['키워드'].sample[1]+' '
736
+ end
737
+ end
738
+ rescue
739
+ puts '제목에키워드삽입 error'
740
+ end
741
+ end
742
+ else
743
+ inumber2 = 0
744
+ for n in 1..inumber
745
+ begin
746
+ if n == 1
747
+ if @data['포스트설정']['특수문자'].checked?
748
+ itext += keyword+' '+text_emoticon.sample
749
+ else
750
+ itext += keyword+' '
751
+ end
752
+ else
753
+ if keyword_soon+inumber2-1 > @data['키워드설정']['키워드'].length-1
754
+ inumber2 = 1-keyword_soon
755
+ end
756
+ if @data['포스트설정']['특수문자'].checked?
757
+ itext += @data['키워드설정']['키워드'][keyword_soon+inumber2-1][1]+' '+text_emoticon.sample
758
+ else
759
+ itext += @data['키워드설정']['키워드'][keyword_soon+inumber2-1][1]+' '
760
+ end
761
+ inumber2 += 1
762
+ end
763
+ rescue
764
+ puts '제목에키워드삽입 순서 error'
765
+ end
766
+ end
767
+ end
768
+
769
+ if @data['포스트설정']['제목뒤'].checked?
770
+ title = title + ' ' + itext
771
+ else
772
+ title = itext + ' ' + title
773
+ end
774
+
775
+ puts title
776
+ end
777
+
778
+ title = title.split(' ').join(' ')
779
+
780
+ change_memory = Hash.new
781
+ @data['포스트설정']['내용자동변경값'].each do |key,v|
782
+ change_memory[key] = v.sample
783
+ end
784
+
785
+ if @data['포스트설정']['제목에도적용'].checked?
786
+ @data['포스트설정']['내용자동변경값'].each do |key,v|
787
+ title = title.split(key).join(change_memory[key])
788
+ end
789
+ end
790
+
791
+
792
+ @data['table'][index][7] = 40
793
+ @data['table'] << []
794
+ @data['table'].pop
795
+ #제목끝
796
+ content = " #{content} "
797
+
798
+ if @data['포스트설정']['특정단어굵기'].checked?
799
+ content2 = ''
800
+ content.split('@@').each_with_index do |i,index|
801
+
802
+ if index%2 == 0
803
+ content2 += i+'<strong>'
804
+ else
805
+ content2 += i+'</strong>'
806
+ end
807
+
808
+ end
809
+
810
+ if content2.length != 0
811
+ content = content2
812
+ end
813
+ end
814
+
815
+ if @data['포스트설정']['단어색상변경'].checked?
816
+ content2 = ''
817
+ color = File.open('./color.ini',:encoding => 'utf-8').read.split("\n")
818
+ content.split('%%').each_with_index do |i,index|
819
+ if index%2 == 0
820
+ content2 += i+'<span style="color: '+color.sample+';">'
821
+ else
822
+ content2 += i+'</span>'
823
+ end
824
+ end
825
+
826
+ if content2.length != 0
827
+ content = content2
828
+ end
829
+ end
830
+ @data['table'][index][7] = 35
831
+ @data['table'] << []
832
+ @data['table'].pop
833
+ if @data['포스트설정']['단어크기변경'].checked?
834
+ content2 = ''
835
+ content.split('&&').each do |i|
836
+ if i.include?('&')
837
+ i2 = " #{i} ".split('&')
838
+ content2 += i2[0].to_s+'<span style="font-size: '+i2[1].to_s+'px;">'+i2[2].to_s+'</span>'
839
+ else
840
+ content2 += i
841
+ end
842
+ end
843
+ if content2.length != 0
844
+ content = content2
845
+ end
846
+ end
847
+
848
+ @data['table'][index][7] = 50
849
+ @data['table'] << []
850
+ @data['table'].pop
851
+ if @data['포스트설정']['내용을자동생성'].checked?
852
+ content = auto_text
853
+ elsif @data['포스트설정']['내용과자동생성'].checked?
854
+ content = content + "\n(자동생성글)\n" + auto_text
855
+ end
856
+
857
+ if @data['포스트설정']['내용키워드삽입'].checked?
858
+ puts '내용키워드삽입...'
859
+ start_number = @data['포스트설정']['키워드삽입시작숫자'].text.to_i
860
+ number_end = @data['포스트설정']['키워드삽입끝숫자'].text.to_i
861
+ keyword_insert_counter = rand(start_number..number_end)
862
+ position = Array.new
863
+ if keyword_insert_counter > 0
864
+ for n in 1..keyword_insert_counter
865
+ joongbok_check = 0
866
+ counter10 = 0
867
+ while joongbok_check == 0
868
+ if @data['포스트설정']['내용과자동생성'].checked?
869
+ content22 = content.split("(자동생성글)")[1].split("\n")
870
+ else
871
+ content22 = content.split("\n")
872
+ end
873
+ position_point = rand(0..(content22.length-2))
874
+ if position.include?(position_point)
875
+
876
+ else
877
+ position << position_point
878
+ joongbok_check = 1
879
+ end
880
+ counter10 += 1
881
+ if counter10 == 50
882
+ break
883
+ end
884
+ end
885
+ end
886
+ end
887
+
888
+ if @data['포스트설정']['내용을자동생성'].checked?
889
+ content2 = content.split("\n")
890
+ end
891
+
892
+ if @data['포스트설정']['내용과자동생성'].checked?
893
+ content2 = content.split("(자동생성글)")[1].split("\n")
894
+ position.pop
895
+ end
896
+
897
+ if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false
898
+ content2 = content.split("\n")
899
+ end
900
+
901
+ while true
902
+ check10 = 0
903
+ for nn in 0..position.length-1
904
+ if content2[position[nn]].to_s.include?('style') or content[position[nn]].to_s.include?('<') or content[position[nn]].to_s.include?('>')
905
+ check10 = 1
906
+ position[nn] += 1
907
+ end
908
+ end
909
+ puts 'check10 => '+check10.to_s
910
+ if check10 == 0
911
+ break
912
+ end
913
+ end
914
+
915
+
916
+ content3 = Array.new
917
+
918
+ if @data['포스트설정']['내용을자동생성'].checked?
919
+ content2.each_with_index do |con, index|
920
+ if position.include?(index)
921
+ insert_keyword_text = keyword.to_s
922
+ if @data['포스트설정']['키워드삽입'].checked?
923
+ insert_keyword_text = ' <a href="'+@data['포스트설정']['키워드삽입시링크'].text.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
924
+ end
925
+ con2 = con.split('')
926
+ if con == '(자동생성글)'
927
+ con2.insert(0, insert_keyword_text)
928
+ else
929
+ con2.insert(rand(0..con2.length), insert_keyword_text)
930
+ end
931
+ content3 << con2.join('')
932
+ else
933
+ content3 << con
934
+ end
935
+ end
936
+ content = content3.join("\n")
937
+ end
938
+
939
+ if @data['포스트설정']['내용과자동생성'].checked?
940
+ content2.each_with_index do |con, index|
941
+ if position.include?(index)
942
+ insert_keyword_text = keyword.to_s
943
+ if @data['포스트설정']['키워드삽입'].checked?
944
+ insert_keyword_text = ' <a href="'+@data['포스트설정']['키워드삽입시링크'].text.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
945
+ end
946
+ con2 = con.split('')
947
+ if con == '(자동생성글)'
948
+ con2.insert(0, insert_keyword_text)
949
+ else
950
+ con2.insert(rand(0..con2.length), insert_keyword_text)
951
+ end
952
+ content3 << con2.join('')
953
+ else
954
+ content3 << con
955
+ end
956
+ end
957
+ content = content.split("(자동생성글)")[0]+"\n\n"+ ' <a href="'+@data['포스트설정']['키워드삽입시링크'].text.to_s+'" title="'+keyword.to_s+'">'+keyword.to_s+'</a> ' + "\n(자동생성글)\n" + content3.join("\n")
958
+ end
959
+
960
+ if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false
961
+ content2.each_with_index do |con, index|
962
+ if position.include?(index)
963
+ insert_keyword_text = keyword.to_s
964
+ if @data['포스트설정']['키워드삽입'].checked?
965
+ insert_keyword_text = ' <a href="'+@data['포스트설정']['키워드삽입시링크'].text.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
966
+ end
967
+ con2 = con.split('')
968
+ content3 << con2.join('')
969
+ content3 << insert_keyword_text
970
+ else
971
+ content3 << con
972
+ end
973
+ end
974
+ content = content3.join("\n")
975
+ end
976
+ end
977
+
978
+ @data['table'][index][7] = 60
979
+ @data['table'] << []
980
+ @data['table'].pop
981
+
982
+ if @data['포스트설정']['내용투명'].checked?
983
+ if @data['포스트설정']['내용을자동생성'].checked?
984
+ content = '<div style="overflow:hidden; width:1px; height:1px" hidden><table width="165" style="width: 124pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0"><tbody><tr height="22" style="height: 16.5pt;"><td width="165" height="22" style="width: 124pt; text-align: center; font-size: 8pt; vertical-align: bottom; white-space: nowrap;"> '+content+'</td></tr></tbody></table></div>'
985
+ else
986
+ puts '내용투명...'
987
+ content4 = content.split('(자동생성글)')
988
+ content_real = content4[0].to_s
989
+ content_auto = content4[1].to_s
990
+ content_auto = '<div style="overflow:hidden; width:1px; height:1px" hidden><table width="165" style="width: 124pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0"><tbody><tr height="22" style="height: 16.5pt;"><td width="165" height="22" style="width: 124pt; text-align: center; font-size: 8pt; vertical-align: bottom; white-space: nowrap;"> '+content_auto+'</td></tr></tbody></table></div>'
991
+ content = content_real + '(자동생성글)' + content_auto
992
+ end
993
+ end
994
+
995
+ if @data['포스트설정']['내용자동변경'].checked?
996
+ puts '내용자동변경...'
997
+ @data['포스트설정']['내용자동변경값'].each do |key,v|
998
+ content = content.split(key).join(change_memory[key])
999
+ end
1000
+ end
1001
+
1002
+ if @data['포스트설정']['단어사진으로변경'].checked?
1003
+ @data['포스트설정']['단어사진으로변경단어'].text.to_s.split(',').each do |i|
1004
+ content_memory_image = content.split(i.force_encoding('utf-8'))
1005
+ for n in 0..content_memory_image.length-1
1006
+ if content_memory_image.length-1 == n
1007
+
1008
+ else
1009
+ image_url = get_image_url()
1010
+ begin
1011
+ if @data['포스트설정']['내용사진링크'].checked?
1012
+ content_memory_image[n] = content_memory_image[n] + '<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s+'"><img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'"></a>'
1013
+ else
1014
+ content_memory_image[n] = content_memory_image[n] + '<img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'">'
1015
+ end
1016
+ rescue
1017
+
1018
+ end
1019
+ end
1020
+ end
1021
+ content = content_memory_image.join("")
1022
+ end
1023
+ end
1024
+
1025
+ image_thum_ids = Array.new
1026
+
1027
+ if @data['포스트설정']['내용사진자동삽입'].checked?
1028
+ puts '내용사진자동삽입...'
1029
+ sn = @data['포스트설정']['내용사진자동삽입시작숫자'].text.to_s.to_i
1030
+ en = @data['포스트설정']['내용사진자동삽입끝숫자'].text.to_s.to_i
1031
+ begin
1032
+ cn = rand(sn..en)
1033
+ rescue
1034
+ cn = 0
1035
+ puts 'cn = rand(sn..en) error cn = 1'
1036
+ end
1037
+
1038
+ if cn != 0
1039
+ position = Array.new
1040
+ if @data['포스트설정']['내용과자동생성'].checked?
1041
+ for n in 1..cn
1042
+ position << rand(0..(content.split("(자동생성글)")[1].split("\n").length-1))
1043
+ sleep(2)
1044
+ end
1045
+ position.pop
1046
+ else
1047
+ for n in 1..cn
1048
+ position << rand(0..(content.split("\n").length-2))
1049
+ sleep(2)
1050
+ end
1051
+ end
1052
+
1053
+ if @data['포스트설정']['내용과자동생성'].checked?
1054
+ content55 = content.split('(자동생성글)')[0]
1055
+ content5 = content.split("(자동생성글)")[1].to_s.split("\n")
1056
+ else
1057
+ content55 = ''
1058
+ content5 = content.split("(자동생성글)")[0].to_s.split("\n")
1059
+ end
1060
+
1061
+ while true
1062
+ check11 = 0
1063
+ for nn in 0..position.length-1
1064
+ if content5[position[nn]].to_s.include?('style') or content5[position[nn]].to_s.include?('<') or content5[position[nn]].to_s.include?('>')
1065
+ check11 = 1
1066
+ position[nn] += 4
1067
+ end
1068
+ end
1069
+ if check11 == 0
1070
+ break
1071
+ end
1072
+ end
1073
+
1074
+ position = position.sort
1075
+
1076
+ while position.uniq.length != position.length
1077
+ puts '이미지 위치 중복발견 ... 처리중 ...'
1078
+ for n in 0..position.length-1
1079
+ position[n] += rand(1..7)
1080
+ end
1081
+ end
1082
+
1083
+ position = position.sort
1084
+
1085
+ if @data['포스트설정']['내용과자동생성'].checked?
1086
+ image_url22 = get_image_url()
1087
+ end
1088
+
1089
+ position.each do |i|
1090
+ image_url = get_image_url()
1091
+ image_thum_ids << image_url[1]
1092
+
1093
+ puts '사진넣는위치 => '+i.to_s
1094
+ if @data['포스트설정']['내용사진링크'].checked?
1095
+ content5.insert(i, "\n\n"+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s+'"><img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'"></a>'+"\n\n")
1096
+ else
1097
+ content5.insert(i, "\n\n"+'<img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'">'+"\n\n")
1098
+ end
1099
+ end
1100
+
1101
+ if @data['포스트설정']['내용과자동생성'].checked?
1102
+ content = content55+'(자동생성글)'+content5.join("\n")
1103
+ image_url = image_url22
1104
+ image_thum_ids << image_url[1]
1105
+
1106
+ if @data['포스트설정']['내용사진링크'].checked?
1107
+ content = content.split('(자동생성글)')[0]+"\n\n"+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s+'"><img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'"></a>'+"\n\n"+'(자동생성글)'+content.split('(자동생성글)')[1]
1108
+ else
1109
+ content = content.split('(자동생성글)')[0]+"\n\n"+'<img src="'+image_url[0]+'" alt="'+keyword+'" class="aligncenter size-full wp-image-'+image_url[1].to_s+'">'+"\n\n"+'(자동생성글)'+content.split('(자동생성글)')[1]
1110
+ end
1111
+ else
1112
+ content = content5.join("\n")
1113
+ end
1114
+ end
1115
+ end
1116
+
1117
+
1118
+
1119
+ @data['table'][index][7] = 70
1120
+ @data['table'] << []
1121
+ @data['table'].pop
1122
+
1123
+ content_memory = content.split('(자동생성글)')
1124
+ content = content_memory[0]
1125
+ content_end = content_memory[1].to_s
1126
+
1127
+ if @data['포스트설정']['특정단어키워드로변경'].checked?
1128
+ @data['포스트설정']['특정단어키워드로변경값'].text.to_s.split(',').each do |i|
1129
+ content = content.split(i.force_encoding('utf-8')).join(keyword)
1130
+ end
1131
+ end
1132
+
1133
+ @data['table'][index][7] = 75
1134
+ @data['table'] << []
1135
+ @data['table'].pop
1136
+
1137
+ if @data['포스트설정']['제외하고등록'].checked?
1138
+ @data['포스트설정']['제외하고등록값'].text.to_s.split(',').each do |i|
1139
+ content = content.split(i.force_encoding('utf-8')).join()
1140
+ end
1141
+ end
1142
+
1143
+ if @data['포스트설정']['단어링크적용'].checked?
1144
+ @data['포스트설정']['단어링크적용단어'].text.to_s.split(',').each do |i|
1145
+ content = content.split(i.force_encoding('utf-8')).join('<a href="'+@data['포스트설정']['단어링크적용url'].text.to_s+'">'+i+'</a>')
1146
+ end
1147
+ end
1148
+
1149
+
1150
+
1151
+ @data['table'][index][7] = 80
1152
+ @data['table'] << []
1153
+ @data['table'].pop
1154
+
1155
+ content = content+"\n\n"+content_end
1156
+
1157
+ if @data['포스트설정']['막글삽입'].checked?
1158
+ snumber = @data['포스트설정']['막글삽입시작숫자'].text.to_s.to_i
1159
+ enumber = @data['포스트설정']['막글삽입끝숫자'].text.to_s.to_i
1160
+ if @data['포스트설정']['막글투명'].checked?
1161
+ content = content + '<div style="overflow:hidden; width:1px; height:1px" hidden><table width="165" style="width: 124pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0"><tbody><tr height="22" style="height: 16.5pt;"><td width="165" height="22" style="width: 124pt; text-align: center; font-size: 8pt; vertical-align: bottom; white-space: nowrap;">' + @data['포스트설정']['막글'][0..rand(snumber..enumber)] + '</td></tr></tbody></table></div>'
1162
+ else
1163
+ content = content + @data['포스트설정']['막글'][0..rand(snumber..enumber)]
1164
+ end
1165
+ end
1166
+
1167
+ @data['table'][index][7] = 85
1168
+ @data['table'] << []
1169
+ @data['table'].pop
1170
+
1171
+ if @data['포스트설정']['태그삽입1'].checked?
1172
+ snumber = @data['포스트설정']['태그삽입1시작숫자'].text.to_s.to_i
1173
+ enumber = @data['포스트설정']['태그삽입1끝숫자'].text.to_s.to_i
1174
+ ecounter = rand(snumber..enumber)
1175
+ tag_memory = Array.new
1176
+ @data['키워드설정']['키워드'].shuffle[0..ecounter].each do |tag|
1177
+ tag_memory << tag[1]
1178
+ end
1179
+ @data2['tax_input[post_tag]'] = tag_memory.join(',')
1180
+ end
1181
+
1182
+ if @data['포스트설정']['중앙정렬'].checked?
1183
+ content = content.split("\n").map {|row| '<p style="text-align: center;">'+row+'</p>'}.join("\n")
1184
+ end
1185
+
1186
+ if @data['포스트설정']['우측정렬'].checked?
1187
+ content = content.split("\n").map {|row| '<p style="text-align: right;">'+row+'</p>'}.join("\n")
1188
+ end
1189
+
1190
+ @data['table'][index][7] = 90
1191
+ @data['table'] << []
1192
+ @data['table'].pop
1193
+
1194
+ if @data['포스트설정']['태그삽입2'].checked?
1195
+ snumber = @data['포스트설정']['태그삽입2시작숫자'].text.to_s.to_i
1196
+ enumber = @data['포스트설정']['태그삽입2끝숫자'].text.to_s.to_i
1197
+ for n in 1..rand(snumber..enumber)
1198
+ content = content + '<a href="'+@data['포스트설정']['키워드삽입시링크'].text.to_s+'" target="_blank" rel="noopener noreferrer"><button class="btn btn-outline-primary btn-sm" type="button">'+@data['키워드설정']['키워드'].sample[1].to_s+'</button></a> '
1199
+ end
1200
+ end
1201
+
1202
+ if @data['포스트설정']['특성이미지사용'].checked?
1203
+ @data2['_thumbnail_id'] = image_thum_ids[0]
1204
+ end
1205
+ @data2['post_title'] = title
1206
+ @data2['content'] = content
1207
+ if @http_error_check
1208
+ result_http = HTTP.headers(@h2).post(@url+'/new-post', :form => @data2)
1209
+ puts result_http.to_s
1210
+ puts '111'
1211
+ else
1212
+ if @data['포스트설정']['프록시'].checked?
1213
+ begin
1214
+ proxy_ip = @data['포스트설정']['프록시리스트'].sample
1215
+ result_http = HTTP.via(proxy_ip.split(':')[0], proxy_ip.split(':')[1].to_i).cookies(@cookie).post(@url+'/wp-admin/post.php', :form => @data2)
1216
+ rescue
1217
+ puts proxy_ip.to_s+' proxy error 프록시 없이 업로드'
1218
+ result_http = HTTP.cookies(@cookie).post(@url+'/new-post', :form => @data2)
1219
+ end
1220
+ else
1221
+ result_http = HTTP.cookies(@cookie).post(@url+'/new-post', :form => @data2)
1222
+ if result_http.to_s.include?('<title>302 Found</title>')
1223
+ result_http = HTTP.headers(@h2).post(@url+'/new-post', :form => @data2)
1224
+ puts '302'
1225
+ end
1226
+ puts result_http.to_s
1227
+ puts '123'
1228
+ end
1229
+ end
1230
+ #완료했으니 수량 카운터
1231
+ @data['table'][index][6] = @data['table'][index][6].to_i + 1
1232
+ @data['table'][index][7] = 100
1233
+ @data['table'] << []
1234
+ @data['table'].pop
1235
+
1236
+ sleep(@data['table'][index][5].to_i)
1237
+ end
1238
+ # rescue => exception
1239
+ # puts exception
1240
+ # begin
1241
+ # @driver.close
1242
+ # rescue
1243
+
1244
+ # end
1245
+ # end
1246
+ end
1247
+
1248
+ if check_success == 0
1249
+ break
1250
+ end
1251
+ end
1252
+
1253
+ if @data['무한반복'].checked == false
1254
+ @start = 0
1255
+ msg_box('작업 완료')
1256
+ break
1257
+ end
1258
+ end
1259
+ end
1260
+
1261
+ def launch
1262
+ @start = 0
1263
+ @data = Hash.new
1264
+ @data['image_size'] = Array.new
1265
+ @data['image_type'] = Array.new
1266
+ @data['이미지'] = Hash.new
1267
+ @data['키워드설정'] = Hash.new
1268
+ @data['키워드설정']['키워드'] = [[false,'']]
1269
+ @data['제목설정'] = Hash.new
1270
+ @data['제목설정']['제목'] = [[false, '']]
1271
+ @data['내용설정'] = Hash.new
1272
+ @data['내용설정']['내용'] = [[false, '']]
1273
+ @data['이미지설정'] = Hash.new
1274
+ @data['이미지설정']['이미지'] = [[false, '']]
1275
+ @data['이미지설정']['이미지글자1'] = Array.new
1276
+ @data['이미지설정']['이미지글자2'] = Array.new
1277
+ @data['포스트설정'] = Hash.new
1278
+ @data['table'] = [[false, '', '', '', '','','']]
1279
+ @data['포스트설정']['제목특정단어변경데이터'] = Hash.new
1280
+ @data['포스트설정']['내용자동변경값'] = Hash.new
1281
+ @data['포스트설정']['막글'] = ''
1282
+ @data['포스트설정']['프록시리스트'] = Array.new
1283
+ @user_login_ok = 0
1284
+ window('백링크 프로그램', 800, 540) {
1285
+ margined true
1286
+
1287
+ vertical_box {
1288
+ horizontal_box{
1289
+ stretchy false
1290
+ @data['id_input'] = entry{
1291
+ text 'id'
1292
+ }
1293
+
1294
+ @data['pw_input'] = entry{
1295
+ text 'password'
1296
+ }
1297
+
1298
+ button('로그인'){
1299
+ on_clicked{
1300
+ @user_login_ok = login_check2(@data['id_input'].text.to_s, @data['pw_input'].text.to_s)
1301
+ if @user_login_ok == 1
1302
+ msg_box('로그인 성공')
1303
+ elsif @user_login_ok == 33
1304
+ msg_box('로그인 실패')
1305
+ elsif @user_login_ok == 22
1306
+ msg_box('권한 없음')
1307
+ elsif @user_login_ok == 44
1308
+ msg_box('등록 기기 초과')
1309
+ else
1310
+ msg_box('실패')
1311
+ end
1312
+ }
1313
+ }
1314
+ button('세팅초기화'){
1315
+ on_clicked{
1316
+ file_data = File.open('./lib/init.txt', 'r', :encoding => 'utf-8').read()
1317
+ json = JSON.parse(file_data)
1318
+ json.each do |key,v|
1319
+ if @data[key].class == Glimmer::LibUI::ControlProxy::EntryProxy
1320
+ @data[key].text = v
1321
+ end
1322
+
1323
+ if @data[key].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1324
+ if v == true
1325
+ if @data[key].checked? == false
1326
+ @data[key].checked = true
1327
+ end
1328
+ end
1329
+
1330
+ if v == false
1331
+ if @data[key].checked? == true
1332
+ @data[key].checked = false
1333
+ end
1334
+ end
1335
+ end
1336
+
1337
+ if @data[key].class == Array
1338
+ v.each_with_index do |i,index|
1339
+ if @data[key][index].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1340
+ @data[key][index].checked = i
1341
+ end
1342
+
1343
+ if i.class == Array
1344
+ i[4] = i[4].to_i
1345
+ i[5] = i[5].to_i
1346
+ @data[key] << i
1347
+ @data[key] << i
1348
+ @data[key].pop
1349
+ end
1350
+ end
1351
+ end
1352
+
1353
+ if @data[key].class == Hash
1354
+ v.each do |key2,v2|
1355
+ if @data[key][key2].class == String
1356
+ @data[key][key2] = v2
1357
+ end
1358
+
1359
+ if @data[key][key2].class == Glimmer::LibUI::ControlProxy::EntryProxy
1360
+ @data[key][key2].text = v2
1361
+ end
1362
+
1363
+ if @data[key][key2].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1364
+ @data[key][key2].checked = v2
1365
+ end
1366
+
1367
+ if @data[key][key2].class == Array
1368
+ v2.each do |i2|
1369
+ @data[key][key2] << i2
1370
+ @data[key][key2] << i2
1371
+ @data[key][key2].pop
1372
+ end
1373
+ end
1374
+
1375
+ if @data[key][key2].class == Hash
1376
+ @data[key][key2] = v2
1377
+ end
1378
+ end
1379
+ end
1380
+ end
1381
+
1382
+ while true
1383
+ if @data['table'].length == 0
1384
+ break
1385
+ end
1386
+ @data['table'].pop
1387
+ end
1388
+
1389
+ while true
1390
+ if @data['키워드설정']['키워드'].length == 0
1391
+ break
1392
+ end
1393
+
1394
+ @data['키워드설정']['키워드'].pop
1395
+ end
1396
+
1397
+ while true
1398
+ if @data['제목설정']['제목'].length == 0
1399
+ break
1400
+ end
1401
+
1402
+ @data['제목설정']['제목'].pop
1403
+ end
1404
+
1405
+ while true
1406
+ if @data['내용설정']['내용'].length == 0
1407
+ break
1408
+ end
1409
+
1410
+ @data['내용설정']['내용'].pop
1411
+ end
1412
+
1413
+ while true
1414
+ if @data['이미지설정']['이미지'].length == 0
1415
+ break
1416
+ end
1417
+
1418
+ @data['이미지설정']['이미지'].pop
1419
+ end
1420
+ }
1421
+ }
1422
+
1423
+ button('세팅저장'){
1424
+ on_clicked{
1425
+ save_data = Hash.new
1426
+ @data.each do |key,v|
1427
+ if v.class == Array
1428
+ save_data[key] = Array.new
1429
+ v.each do |i|
1430
+ if i.class == Array
1431
+ save_data[key] << i
1432
+ end
1433
+
1434
+ if i.class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1435
+ save_data[key] << i.checked?
1436
+ end
1437
+ end
1438
+ end
1439
+
1440
+ if v.class == Hash
1441
+ save_data[key] = Hash.new
1442
+ v.each do |key2,v2|
1443
+ if v2.class == String
1444
+ save_data[key][key2] = v2.force_encoding('utf-8')
1445
+ end
1446
+
1447
+ if v2.class == Array
1448
+ save_data[key][key2] = v2
1449
+ end
1450
+
1451
+ if v2.class == Hash
1452
+ save_data[key][key2] = v2
1453
+ end
1454
+
1455
+ if v2.class == Glimmer::LibUI::ControlProxy::EntryProxy
1456
+ save_data[key][key2] = v2.text.to_s.force_encoding('utf-8')
1457
+ end
1458
+
1459
+ if v2.class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1460
+ save_data[key][key2] = v2.checked?
1461
+ end
1462
+ end
1463
+ end
1464
+
1465
+ if v.class == Glimmer::LibUI::ControlProxy::EntryProxy
1466
+ save_data[key] = v.text.to_s.force_encoding('utf-8')
1467
+ end
1468
+
1469
+ if v.class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1470
+ save_data[key] = v.checked?
1471
+ end
1472
+ end
1473
+
1474
+ file = save_file
1475
+ if file != nil
1476
+ File.open(file, 'w') do |f|
1477
+ f.write(save_data.to_json)
1478
+ end
1479
+ end
1480
+ }
1481
+ }
1482
+
1483
+ button('세팅로드'){
1484
+ on_clicked{
1485
+ file = open_file
1486
+ if file != nil
1487
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
1488
+ json = JSON.parse(file_data)
1489
+ json.each do |key,v|
1490
+ if @data[key].class == Glimmer::LibUI::ControlProxy::EntryProxy
1491
+ @data[key].text = v
1492
+ end
1493
+
1494
+ if @data[key].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1495
+ if v == true
1496
+ if @data[key].checked? == false
1497
+ @data[key].checked = true
1498
+ end
1499
+ end
1500
+
1501
+ if v == false
1502
+ if @data[key].checked? == true
1503
+ @data[key].checked = false
1504
+ end
1505
+ end
1506
+ end
1507
+
1508
+ if @data[key].class == Array
1509
+ v.each_with_index do |i,index|
1510
+ if @data[key][index].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1511
+ @data[key][index].checked = i
1512
+ end
1513
+
1514
+ if i.class == Array
1515
+ i[4] = i[4].to_i
1516
+ i[5] = i[5].to_i
1517
+ @data[key] << i
1518
+ @data[key] << i
1519
+ @data[key].pop
1520
+ end
1521
+ end
1522
+ end
1523
+
1524
+ if @data[key].class == Hash
1525
+ v.each do |key2,v2|
1526
+ if @data[key][key2].class == String
1527
+ @data[key][key2] = v2
1528
+ end
1529
+
1530
+ if @data[key][key2].class == Glimmer::LibUI::ControlProxy::EntryProxy
1531
+ @data[key][key2].text = v2
1532
+ end
1533
+
1534
+ if @data[key][key2].class == Glimmer::LibUI::ControlProxy::CheckboxProxy
1535
+ @data[key][key2].checked = v2
1536
+ end
1537
+
1538
+ if @data[key][key2].class == Array
1539
+ v2.each do |i2|
1540
+ @data[key][key2] << i2
1541
+ @data[key][key2] << i2
1542
+ @data[key][key2].pop
1543
+ end
1544
+ end
1545
+
1546
+ if @data[key][key2].class == Hash
1547
+ @data[key][key2] = v2
1548
+ end
1549
+ end
1550
+ end
1551
+ end
1552
+ end
1553
+ }
1554
+ }
1555
+ }
1556
+
1557
+
1558
+ tab{
1559
+ tab_item('실행설정'){
1560
+ vertical_box{
1561
+ horizontal_box{
1562
+ stretchy false
1563
+ @data['site_url_input'] = entry{
1564
+ text '사이트주소: http://abc123.net'
1565
+ }
1566
+ @data['site_id_input'] = entry{
1567
+ text 'id'
1568
+ }
1569
+ @data['site_pw_input'] = entry{
1570
+ text 'pw'
1571
+ }
1572
+
1573
+ button('등록'){
1574
+ on_clicked {
1575
+ @data['table'] << [false, @data['site_url_input'].text, @data['site_id_input'].text, @data['site_pw_input'].text, 1, 1, 0,0]
1576
+ @data['table'] << [false, @data['site_url_input'].text, @data['site_id_input'].text, @data['site_pw_input'].text, 1, 1, 0,0]
1577
+ @data['table'].pop
1578
+ }
1579
+ }
1580
+ button('계정불러오기'){
1581
+ on_clicked{
1582
+ file = open_file
1583
+ if file != nil
1584
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
1585
+ file_data.split("\n").each do |i|
1586
+ i2 = i.split(',')
1587
+ @data['table'] << [false, i2[0].to_s, i2[1].to_s, i2[2].to_s, 1,1,0,0]
1588
+ @data['table'] << [false, i2[0].to_s, i2[1].to_s, i2[2].to_s, 1,1,0,0]
1589
+ @data['table'].pop
1590
+ end
1591
+ end
1592
+ }
1593
+ }
1594
+ }
1595
+
1596
+ table{
1597
+ checkbox_column('선택'){
1598
+ editable true
1599
+ }
1600
+ text_column('사이트리스트'){
1601
+
1602
+ }
1603
+ text_column('id'){
1604
+
1605
+ }
1606
+ text_column('pw'){
1607
+
1608
+ }
1609
+ text_column('수량'){
1610
+ editable true
1611
+ }
1612
+ text_column('딜레이'){
1613
+ editable true
1614
+ }
1615
+ text_column('현황'){
1616
+
1617
+ }
1618
+
1619
+ progress_bar_column('Progress')
1620
+
1621
+ cell_rows @data['table']
1622
+ }
1623
+
1624
+ horizontal_box{
1625
+ stretchy false
1626
+ button('전체선택'){
1627
+ on_clicked{
1628
+ for n in 0..@data['table'].length-1
1629
+ @data['table'][n][0] = true
1630
+ @data['table'] << []
1631
+ @data['table'].pop
1632
+ end
1633
+ }
1634
+ }
1635
+ button('계정삭제'){
1636
+ on_clicked{
1637
+ del_list_number = Array.new
1638
+ for n in 0..@data['table'].length-1
1639
+ if @data['table'][n][0] == true
1640
+ del_list_number << n
1641
+ end
1642
+ end
1643
+
1644
+ del_list_number.reverse.each do |i|
1645
+ @data['table'].delete_at(i)
1646
+ end
1647
+ @data.delete(nil)
1648
+ }
1649
+ }
1650
+ @data['table_counter_input'] = entry{
1651
+ text '수량 ex) 3'
1652
+ }
1653
+ @data['table_delay_input'] = entry{
1654
+ text '딜레이 ex) 3'
1655
+ }
1656
+ button('전체설정'){
1657
+ on_clicked{
1658
+ for n in 0..@data['table'].length-1
1659
+ @data['table'][n][4] = @data['table_counter_input'].text.to_i
1660
+ @data['table'][n][5] = @data['table_delay_input'].text.to_i
1661
+ @data['table'] << []
1662
+ @data['table'].pop
1663
+ end
1664
+ }
1665
+ }
1666
+ }
1667
+ }
1668
+ }
1669
+ tab_item('내용설정'){
1670
+ horizontal_box{
1671
+ vertical_box{
1672
+ horizontal_box{
1673
+ stretchy false
1674
+ button('키워드불러오기'){
1675
+ on_clicked{
1676
+ file = open_file
1677
+ if file != nil
1678
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
1679
+ file_data.split("\n").each do |keyword|
1680
+ if keyword.split(' ').join('').length < 2
1681
+
1682
+ else
1683
+ @data['키워드설정']['키워드'] << [false, keyword]
1684
+ @data['키워드설정']['키워드'] << [false, keyword]
1685
+ @data['키워드설정']['키워드'].pop
1686
+ end
1687
+ end
1688
+ end
1689
+
1690
+ }
1691
+ }
1692
+
1693
+ }
1694
+ horizontal_box{
1695
+ stretchy false
1696
+ button('전체선택'){
1697
+ on_clicked{
1698
+ for n in 0..@data['키워드설정']['키워드'].length-1
1699
+ @data['키워드설정']['키워드'][n][0] = true
1700
+ @data['키워드설정']['키워드'] << []
1701
+ @data['키워드설정']['키워드'].pop
1702
+ end
1703
+ }
1704
+ }
1705
+ button('키워드삭제'){
1706
+ on_clicked{
1707
+ m = Array.new
1708
+ for n in 0..@data['키워드설정']['키워드'].length-1
1709
+ if @data['키워드설정']['키워드'][n][0] == true
1710
+ m << n
1711
+ end
1712
+ end
1713
+
1714
+ m.reverse.each do |i|
1715
+ @data['키워드설정']['키워드'].delete_at(i)
1716
+ end
1717
+ @data['키워드설정']['키워드'].delete(nil)
1718
+ }
1719
+ }
1720
+ @data['키워드설정']['순서사용'] = checkbox('순서사용'){
1721
+ stretchy false
1722
+ on_toggled{ |c|
1723
+ if c.checked?
1724
+ @data['키워드설정']['랜덤사용'].checked = false
1725
+ end
1726
+ }
1727
+ }
1728
+ @data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
1729
+ stretchy false
1730
+ on_toggled{ |c|
1731
+ if c.checked?
1732
+ @data['키워드설정']['순서사용'].checked = false
1733
+ end
1734
+ }
1735
+ }
1736
+ }
1737
+ table{
1738
+ checkbox_column('선택'){
1739
+ editable true
1740
+ }
1741
+ text_column('키워드'){
1742
+
1743
+ }
1744
+
1745
+ cell_rows @data['키워드설정']['키워드']
1746
+ }
1747
+
1748
+ }
1749
+ vertical_separator{
1750
+ stretchy false
1751
+ }
1752
+ vertical_box{
1753
+ horizontal_box{
1754
+ stretchy false
1755
+ button('제목불러오기'){
1756
+ on_clicked{
1757
+ file = open_file
1758
+ if file != nil
1759
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
1760
+ file_data.split("\n").each do |title|
1761
+ if title.split(" ").join('').length < 2
1762
+
1763
+ else
1764
+ @data['제목설정']['제목'] << [false, title]
1765
+ @data['제목설정']['제목'] << [false, title]
1766
+ @data['제목설정']['제목'].pop
1767
+ end
1768
+ end
1769
+ end
1770
+ }
1771
+ }
1772
+
1773
+ }
1774
+ horizontal_box{
1775
+ stretchy false
1776
+ button('전체선택'){
1777
+ on_clicked{
1778
+ for n in 0..@data['제목설정']['제목'].length-1
1779
+ @data['제목설정']['제목'][n][0] = true
1780
+ @data['제목설정']['제목'] << []
1781
+ @data['제목설정']['제목'].pop
1782
+ end
1783
+ }
1784
+ }
1785
+ button('제목삭제'){
1786
+ on_clicked{
1787
+ m = Array.new
1788
+ for n in 0..@data['제목설정']['제목'].length-1
1789
+ if @data['제목설정']['제목'][n][0] == true
1790
+ m << n
1791
+ end
1792
+ end
1793
+
1794
+ m.reverse.each do |i|
1795
+ @data['제목설정']['제목'].delete_at(i)
1796
+ end
1797
+ @data['제목설정']['제목'].delete(nil)
1798
+ }
1799
+ }
1800
+ @data['제목설정']['순서사용'] = checkbox('순서사용'){
1801
+ stretchy false
1802
+ on_toggled{ |c|
1803
+ if c.checked?
1804
+ @data['제목설정']['랜덤사용'].checked = false
1805
+ end
1806
+ }
1807
+ }
1808
+ @data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
1809
+ stretchy false
1810
+ on_toggled{ |c|
1811
+ if c.checked?
1812
+ @data['제목설정']['순서사용'].checked = false
1813
+ end
1814
+ }
1815
+ }
1816
+ }
1817
+ table{
1818
+ checkbox_column('선택'){
1819
+ editable true
1820
+ }
1821
+ text_column('제목'){
1822
+
1823
+ }
1824
+
1825
+ cell_rows @data['제목설정']['제목']
1826
+ }
1827
+
1828
+ }
1829
+ vertical_separator{
1830
+ stretchy false
1831
+ }
1832
+ vertical_box{
1833
+ horizontal_box{
1834
+ stretchy false
1835
+ button('내용불러오기'){
1836
+ on_clicked{
1837
+ file = open_file
1838
+ if file != nil
1839
+ file_name = file.split("\\")[-1]
1840
+ file_data = File.open(file,'r', :encoding => 'utf-8').read()
1841
+ @data['내용설정']['내용'] << [false, file_name, file_data]
1842
+ @data['내용설정']['내용'] << [false, file_name, file_data]
1843
+ @data['내용설정']['내용'].pop
1844
+ end
1845
+ }
1846
+ }
1847
+
1848
+ }
1849
+ horizontal_box{
1850
+ stretchy false
1851
+ button('전체선택'){
1852
+ on_clicked{
1853
+ for n in 0..@data['내용설정']['내용'].length-1
1854
+ @data['내용설정']['내용'][n][0] = true
1855
+ @data['내용설정']['내용'] << []
1856
+ @data['내용설정']['내용'].pop
1857
+ end
1858
+ }
1859
+ }
1860
+ button('내용삭제'){
1861
+ on_clicked{
1862
+ m = Array.new
1863
+ for n in 0..@data['내용설정']['내용'].length-1
1864
+ if @data['내용설정']['내용'][n][0] == true
1865
+ m << n
1866
+ end
1867
+ end
1868
+
1869
+ m.reverse.each do |i|
1870
+ @data['내용설정']['내용'].delete_at(i)
1871
+ end
1872
+ @data['내용설정']['내용'].delete(nil)
1873
+ }
1874
+ }
1875
+ @data['내용설정']['순서사용'] = checkbox('순서사용'){
1876
+ stretchy false
1877
+ on_toggled{ |c|
1878
+ if c.checked?
1879
+ @data['내용설정']['랜덤사용'].checked = false
1880
+ end
1881
+ }
1882
+ }
1883
+ @data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
1884
+ stretchy false
1885
+ on_toggled{ |c|
1886
+ if c.checked?
1887
+ @data['내용설정']['순서사용'].checked = false
1888
+ end
1889
+ }
1890
+ }
1891
+ }
1892
+ table{
1893
+ checkbox_column('선택'){
1894
+ editable true
1895
+ }
1896
+ text_column('내용파일'){
1897
+
1898
+ }
1899
+
1900
+ cell_rows @data['내용설정']['내용']
1901
+ }
1902
+
1903
+ horizontal_box{
1904
+ stretchy false
1905
+ @data['이미지설정']['폴더경로2'] = entry{
1906
+ stretchy false
1907
+ text "내용폴더경로 ex)C:\\내용\\폴더1"
1908
+ }
1909
+ button('폴더째로불러오기'){
1910
+ stretchy false
1911
+ on_clicked{
1912
+ path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
1913
+ Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
1914
+ if file == '.' or file == '..'
1915
+
1916
+ else
1917
+ file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
1918
+ @data['내용설정']['내용'] << [false, file, file_data]
1919
+ end
1920
+ end
1921
+ @data['내용설정']['내용'] << []
1922
+ @data['내용설정']['내용'].pop
1923
+ }
1924
+ }
1925
+ }
1926
+
1927
+ }
1928
+
1929
+
1930
+ }
1931
+ }
1932
+ tab_item('이미지설정'){
1933
+ horizontal_box{
1934
+ vertical_box{
1935
+ stretchy false
1936
+ horizontal_box{
1937
+ stretchy false
1938
+ button('이미지불러오기'){
1939
+ on_clicked{
1940
+ file = open_file
1941
+ if file != nil
1942
+ file_name = file.split("\\")[-1]
1943
+ @data['이미지설정']['이미지'] << [false, file_name, file]
1944
+ @data['이미지설정']['이미지'] << [false, file_name, file]
1945
+ @data['이미지설정']['이미지'].pop
1946
+ end
1947
+ }
1948
+ }
1949
+ }
1950
+ horizontal_box{
1951
+ stretchy false
1952
+ button('전체선택'){
1953
+ on_clicked{
1954
+ for n in 0..@data['이미지설정']['이미지'].length-1
1955
+ @data['이미지설정']['이미지'][n][0] = true
1956
+ @data['이미지설정']['이미지'] << []
1957
+ @data['이미지설정']['이미지'].pop
1958
+ end
1959
+ }
1960
+ }
1961
+ button('이미지삭제'){
1962
+ on_clicked{
1963
+ m = Array.new
1964
+ for n in 0..@data['이미지설정']['이미지'].length-1
1965
+ if @data['이미지설정']['이미지'][n][0] == true
1966
+ m << n
1967
+ end
1968
+ end
1969
+
1970
+ m.reverse.each do |i|
1971
+ @data['이미지설정']['이미지'].delete_at(i)
1972
+ end
1973
+
1974
+ @data['이미지설정']['이미지'].delete(nil)
1975
+ }
1976
+ }
1977
+ @data['이미지설정']['순서사용'] = checkbox('순서사용'){
1978
+ enabled false
1979
+ stretchy false
1980
+ on_toggled{ |c|
1981
+ if c.checked?
1982
+ @data['이미지설정']['랜덤사용'].checked = false
1983
+ end
1984
+ }
1985
+ }
1986
+ @data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
1987
+ enabled false
1988
+ stretchy false
1989
+ on_toggled{ |c|
1990
+ if c.checked?
1991
+ @data['이미지설정']['순서사용'].checked = false
1992
+ end
1993
+ }
1994
+ }
1995
+ }
1996
+ table{
1997
+ checkbox_column('선택'){
1998
+ editable true
1999
+ }
2000
+ text_column('이미지파일'){
2001
+
2002
+ }
2003
+
2004
+ cell_rows @data['이미지설정']['이미지']
2005
+ }
2006
+ horizontal_box{
2007
+ stretchy false
2008
+ @data['이미지설정']['폴더경로'] = entry{
2009
+ stretchy false
2010
+ text '이미지폴더경로'
2011
+ }
2012
+ button('폴더째로불러오기'){
2013
+ stretchy false
2014
+ on_clicked{
2015
+ path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')
2016
+ Dir.entries(@data['이미지설정']['폴더경로'].text.to_s).each do |file|
2017
+ if file == '.' or file == '..'
2018
+
2019
+ else
2020
+ @data['이미지설정']['이미지'] << [false, file, path+"\\"+file.force_encoding('utf-8')]
2021
+ end
2022
+ end
2023
+ @data['이미지설정']['이미지'] << []
2024
+ @data['이미지설정']['이미지'].pop
2025
+ }
2026
+ }
2027
+ }
2028
+
2029
+ }
2030
+ vertical_separator{
2031
+ stretchy false
2032
+ }
2033
+
2034
+ vertical_box{
2035
+ horizontal_box{
2036
+ stretchy false
2037
+ @data['image_type'][0] = checkbox('저장 사진 사용'){
2038
+ enabled false
2039
+ on_toggled{
2040
+ if @data['image_type'][0].checked?
2041
+ @data['image_type'][1].checked = false
2042
+ @data['image_type'][2].checked = false
2043
+ end
2044
+ }
2045
+ }
2046
+ @data['image_type'][1] = checkbox('색상 사진 사용'){
2047
+ enabled false
2048
+ on_toggled{
2049
+ if @data['image_type'][1].checked?
2050
+ @data['image_type'][0].checked = false
2051
+ @data['image_type'][2].checked = false
2052
+ end
2053
+ }
2054
+ }
2055
+ @data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
2056
+ enabled false
2057
+ on_toggled{
2058
+ if @data['image_type'][2].checked?
2059
+ @data['image_type'][1].checked = false
2060
+ @data['image_type'][0].checked = false
2061
+ end
2062
+ }
2063
+ }
2064
+ }
2065
+
2066
+ grid{
2067
+ stretchy false
2068
+ @data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
2069
+ enabled false
2070
+ top 0
2071
+ left 0
2072
+ }
2073
+ button('가져오기'){
2074
+ top 0
2075
+ left 1
2076
+ on_clicked{
2077
+ file = open_file
2078
+ if file != nil
2079
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
2080
+ @data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
2081
+ end
2082
+ }
2083
+ }
2084
+ @data['이미지설정']['이미지글자1크기1'] = entry{
2085
+ top 0
2086
+ left 2
2087
+ }
2088
+ label('pt'){
2089
+ top 0
2090
+ left 3
2091
+ }
2092
+ @data['이미지설정']['이미지글자1크기2'] = entry{
2093
+ top 0
2094
+ left 4
2095
+ }
2096
+ label('pt'){
2097
+ top 0
2098
+ left 5
2099
+ }
2100
+ @data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
2101
+ enabled false
2102
+ top 0
2103
+ left 6
2104
+ }
2105
+
2106
+ @data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
2107
+ enabled false
2108
+ top 1
2109
+ left 0
2110
+ }
2111
+ button('가져오기'){
2112
+ top 1
2113
+ left 1
2114
+ on_clicked{
2115
+ file = open_file
2116
+ if file != nil
2117
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
2118
+ @data['이미지설정']['이미지글자2'] = file_data.split("\n")
2119
+ end
2120
+ }
2121
+ }
2122
+ @data['이미지설정']['이미지글자2크기1'] = entry{
2123
+ top 1
2124
+ left 2
2125
+ }
2126
+ label('pt'){
2127
+ top 1
2128
+ left 3
2129
+ }
2130
+ @data['이미지설정']['이미지글자2크기2'] = entry{
2131
+ top 1
2132
+ left 4
2133
+ }
2134
+ label('pt'){
2135
+ top 1
2136
+ left 5
2137
+ }
2138
+ @data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
2139
+ enabled false
2140
+ top 1
2141
+ left 6
2142
+ }
2143
+ @data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
2144
+ top 2
2145
+ left 0
2146
+ }
2147
+ @data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
2148
+ enabled false
2149
+ top 3
2150
+ left 0
2151
+ }
2152
+ @data['이미지설정']['테두리크기1'] = entry{
2153
+ top 3
2154
+ left 2
2155
+ }
2156
+ label('pt'){
2157
+ top 3
2158
+ left 3
2159
+ }
2160
+ @data['이미지설정']['테두리크기2'] = entry{
2161
+ top 3
2162
+ left 4
2163
+ }
2164
+ label('pt'){
2165
+ top 3
2166
+ left 5
2167
+ }
2168
+
2169
+ }
2170
+
2171
+ horizontal_box{
2172
+ stretchy false
2173
+ @data['image_size'][0] = checkbox('랜덤 px'){
2174
+ on_toggled{
2175
+ if @data['image_size'][0].checked?
2176
+ @data['image_size'][1].checked = false
2177
+ @data['image_size'][2].checked = false
2178
+ @data['image_size'][3].checked = false
2179
+ @data['image_size'][4].checked = false
2180
+ end
2181
+ }
2182
+ }
2183
+ @data['image_size'][1] = checkbox('740 px'){
2184
+ on_toggled{
2185
+ if @data['image_size'][1].checked?
2186
+ @data['image_size'][0].checked = false
2187
+ @data['image_size'][2].checked = false
2188
+ @data['image_size'][3].checked = false
2189
+ @data['image_size'][4].checked = false
2190
+ end
2191
+ }
2192
+ }
2193
+ @data['image_size'][2] = checkbox('650 px'){
2194
+ on_toggled{
2195
+ if @data['image_size'][2].checked?
2196
+ @data['image_size'][1].checked = false
2197
+ @data['image_size'][0].checked = false
2198
+ @data['image_size'][3].checked = false
2199
+ @data['image_size'][4].checked = false
2200
+ end
2201
+ }
2202
+ }
2203
+ @data['image_size'][3] = checkbox('550 px'){
2204
+ on_toggled{
2205
+ if @data['image_size'][3].checked?
2206
+ @data['image_size'][1].checked = false
2207
+ @data['image_size'][2].checked = false
2208
+ @data['image_size'][0].checked = false
2209
+ @data['image_size'][4].checked = false
2210
+ end
2211
+ }
2212
+ }
2213
+ @data['image_size'][4] = checkbox('480 px'){
2214
+ on_toggled{
2215
+ if @data['image_size'][4].checked?
2216
+ @data['image_size'][1].checked = false
2217
+ @data['image_size'][2].checked = false
2218
+ @data['image_size'][3].checked = false
2219
+ @data['image_size'][0].checked = false
2220
+ end
2221
+ }
2222
+ }
2223
+ }
2224
+ }
2225
+ }
2226
+ }
2227
+
2228
+ tab_item('포스트설정1'){
2229
+ horizontal_box{
2230
+ vertical_box{
2231
+ stretchy false
2232
+ grid{
2233
+ stretchy false
2234
+ @data['포스트설정']['제목키워드변경'] = checkbox('제목에 특정 단어를 내용에 사용할 키워드로 변경'){
2235
+ top 0
2236
+ left 0
2237
+
2238
+ }
2239
+ @data['포스트설정']['제목키워드변경단어'] = entry{
2240
+ top 0
2241
+ left 1
2242
+ text '특정단어1'
2243
+ }
2244
+
2245
+ @data['포스트설정']['제목단어변경'] = checkbox('제목에 특정 단어를 변경'){
2246
+ top 1
2247
+ left 0
2248
+ }
2249
+ @data['포스트설정']['제목단어변경파일불러오기'] = button('설정 파일 불러오기'){
2250
+ top 1
2251
+ left 1
2252
+ on_clicked{
2253
+ file = open_file
2254
+ if file != nil
2255
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
2256
+ file_data.split("\n").each do |i|
2257
+ i2 = i.split('>')
2258
+ text_key = i2[0].to_s
2259
+ text_val = i2[1].to_s.split(',')
2260
+ @data['포스트설정']['제목특정단어변경데이터'][text_key] = text_val
2261
+ end
2262
+ end
2263
+ }
2264
+ }
2265
+ @data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
2266
+ top 2
2267
+ left 0
2268
+ }
2269
+ @data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
2270
+ top 2
2271
+ left 1
2272
+ text '최소수량'
2273
+ }
2274
+ label('~'){
2275
+ top 2
2276
+ left 2
2277
+ }
2278
+ @data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
2279
+ top 2
2280
+ left 3
2281
+ text '최대수량'
2282
+ }
2283
+ label('ㄴ'){
2284
+ top 3
2285
+ left 2
2286
+ }
2287
+ @data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
2288
+ top 3
2289
+ left 3
2290
+ on_toggled{
2291
+ if @data['포스트설정']['제목앞'].checked? == true
2292
+ if @data['포스트설정']['제목뒤'].checked?
2293
+ @data['포스트설정']['제목뒤'].checked = false
2294
+ end
2295
+ end
2296
+ }
2297
+ }
2298
+ label('ㄴ'){
2299
+ top 4
2300
+ left 2
2301
+ }
2302
+ @data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
2303
+ top 4
2304
+ left 3
2305
+ on_toggled{
2306
+ if @data['포스트설정']['제목뒤'].checked? == true
2307
+ if @data['포스트설정']['제목앞'].checked?
2308
+ @data['포스트설정']['제목앞'].checked = false
2309
+ end
2310
+ end
2311
+ }
2312
+ }
2313
+ @data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
2314
+ top 5
2315
+ left 0
2316
+ }
2317
+ @data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
2318
+ top 6
2319
+ left 0
2320
+ }
2321
+ @data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
2322
+ top 7
2323
+ left 0
2324
+ }
2325
+ @data['포스트설정']['키워드삽입시작숫자'] = entry(){
2326
+ top 7
2327
+ left 1
2328
+ text '최소수량'
2329
+ }
2330
+ label('~'){
2331
+ top 7
2332
+ left 2
2333
+ }
2334
+ @data['포스트설정']['키워드삽입끝숫자'] = entry(){
2335
+ top 7
2336
+ left 3
2337
+ text '최대수량'
2338
+ }
2339
+ @data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
2340
+ top 8
2341
+ left 0
2342
+ }
2343
+ @data['포스트설정']['키워드삽입시링크'] = entry(){
2344
+ top 8
2345
+ left 1
2346
+ text 'URL'
2347
+ }
2348
+ @data['포스트설정']['내용을자동생성'] = checkbox('내용을 키워드 기반으로 자동 생성해서 포스팅'){
2349
+ top 9
2350
+ left 0
2351
+ on_toggled{
2352
+ if @data['포스트설정']['내용을자동생성'].checked?
2353
+ if @data['포스트설정']['내용과자동생성'].checked?
2354
+ @data['포스트설정']['내용과자동생성'].checked = false
2355
+ end
2356
+ end
2357
+ }
2358
+ }
2359
+ @data['포스트설정']['내용과자동생성'] = checkbox('내용을 내용 파일 + 자동 생성 조합으로 포스팅'){
2360
+ top 10
2361
+ left 0
2362
+ on_toggled{
2363
+ if @data['포스트설정']['내용과자동생성'].checked?
2364
+ if @data['포스트설정']['내용을자동생성'].checked?
2365
+ @data['포스트설정']['내용을자동생성'].checked = false
2366
+ end
2367
+ end
2368
+ }
2369
+ }
2370
+ @data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리'){
2371
+ top 11
2372
+ left 0
2373
+ }
2374
+ @data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
2375
+ top 12
2376
+ left 0
2377
+ }
2378
+ button('설정 파일 불러오기'){
2379
+ top 12
2380
+ left 1
2381
+ on_clicked{
2382
+ file = open_file
2383
+ if file != nil
2384
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
2385
+ file_data.split("\n").each do |i|
2386
+ key = i.split('>')[0]
2387
+ v = i.split('>')[1].to_s.split(',')
2388
+ @data['포스트설정']['내용자동변경값'][key] = v
2389
+ end
2390
+ end
2391
+ }
2392
+ }
2393
+
2394
+ @data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
2395
+ top 12
2396
+ left 3
2397
+ }
2398
+
2399
+ @data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
2400
+ top 13
2401
+ left 0
2402
+ enabled false
2403
+ }
2404
+ @data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
2405
+ top 13
2406
+ left 1
2407
+ text '최소수량'
2408
+ }
2409
+ label('~'){
2410
+ top 13
2411
+ left 2
2412
+ }
2413
+ @data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
2414
+ top 13
2415
+ left 3
2416
+ text '최대수량'
2417
+ }
2418
+ }
2419
+ }
2420
+
2421
+ vertical_separator{
2422
+ stretchy false
2423
+ }
2424
+
2425
+
2426
+ grid{
2427
+ @data['포스트설정']['내용사진링크'] = checkbox('내용 사진 삽입시 링크 삽입'){
2428
+ top 0
2429
+ left 0
2430
+ enabled false
2431
+ }
2432
+ @data['포스트설정']['내용사진링크값'] = entry(){
2433
+ top 0
2434
+ left 1
2435
+ text '특정단어2'
2436
+ }
2437
+
2438
+ @data['포스트설정']['특정단어키워드로변경'] = checkbox('내용 특정단어를 키워드로 변경'){
2439
+ top 1
2440
+ left 0
2441
+ }
2442
+ @data['포스트설정']['특정단어키워드로변경값'] = entry{
2443
+ top 1
2444
+ left 1
2445
+ text '특정단어3'
2446
+ }
2447
+
2448
+ @data['포스트설정']['제외하고등록'] = checkbox('내용 특정단어를 제외하고 등록'){
2449
+ top 2
2450
+ left 0
2451
+ }
2452
+ @data['포스트설정']['제외하고등록값'] = entry{
2453
+ top 2
2454
+ left 1
2455
+ text '특정단어4'
2456
+ }
2457
+
2458
+ @data['포스트설정']['단어링크적용'] = checkbox('내용 특정단어를 링크적용 등록'){
2459
+ top 3
2460
+ left 0
2461
+ }
2462
+ @data['포스트설정']['단어링크적용단어'] = entry{
2463
+ top 3
2464
+ left 1
2465
+ text '특정단어5'
2466
+ }
2467
+
2468
+ label('ㄴ적용하려는 링크 URL 입력'){
2469
+ top 4
2470
+ left 0
2471
+ }
2472
+ @data['포스트설정']['단어링크적용url'] = entry{
2473
+ top 4
2474
+ left 1
2475
+ text 'URL'
2476
+ }
2477
+
2478
+ @data['포스트설정']['단어사진으로변경'] = checkbox('내용 특정단어를 사진으로 변경'){
2479
+ top 5
2480
+ left 0
2481
+ enabled false
2482
+ }
2483
+ @data['포스트설정']['단어사진으로변경단어'] = entry{
2484
+ top 5
2485
+ left 1
2486
+ text '특정단어6'
2487
+ }
2488
+ }
2489
+ }
2490
+ }
2491
+ tab_item('포스트설정2'){
2492
+ grid{
2493
+ @data['포스트설정']['특정단어굵기'] = checkbox('내용 특정단어 굵기 변경(적용 단어 앞 뒤에 @@삽입)'){
2494
+ top 0
2495
+ left 0
2496
+ }
2497
+ @data['포스트설정']['단어색상변경'] = checkbox('내용 특정단어 색상 변경(적용 단어 앞 뒤에 %%삽입)'){
2498
+ top 1
2499
+ left 0
2500
+ }
2501
+ @data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
2502
+ top 2
2503
+ left 0
2504
+ }
2505
+ @data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
2506
+ top 3
2507
+ left 0
2508
+ on_toggled{
2509
+ if @data['포스트설정']['중앙정렬'].checked?
2510
+ @data['포스트설정']['좌측정렬'].checked = false
2511
+ @data['포스트설정']['우측정렬'].checked = false
2512
+ end
2513
+ }
2514
+ }
2515
+ @data['포스트설정']['좌측정렬'] = checkbox('내용 글 좌측 정렬'){
2516
+ top 4
2517
+ left 0
2518
+ on_toggled{
2519
+ if @data['포스트설정']['좌측정렬'].checked?
2520
+ @data['포스트설정']['중앙정렬'].checked = false
2521
+ @data['포스트설정']['우측정렬'].checked = false
2522
+ end
2523
+ }
2524
+ }
2525
+ @data['포스트설정']['우측정렬'] = checkbox('내용 글 우측 정렬'){
2526
+ top 5
2527
+ left 0
2528
+ on_toggled{
2529
+ if @data['포스트설정']['우측정렬'].checked?
2530
+ @data['포스트설정']['좌측정렬'].checked = false
2531
+ @data['포스트설정']['중앙정렬'].checked = false
2532
+ end
2533
+ }
2534
+ }
2535
+ @data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
2536
+ top 6
2537
+ left 0
2538
+ }
2539
+ @data['포스트설정']['막글삽입시작숫자'] = entry{
2540
+ top 6
2541
+ left 1
2542
+ text '최소수량'
2543
+ }
2544
+ label('~'){
2545
+ top 6
2546
+ left 2
2547
+ }
2548
+ @data['포스트설정']['막글삽입끝숫자'] = entry{
2549
+ top 6
2550
+ left 3
2551
+ text '최대수량'
2552
+ }
2553
+ button('막글 파일 불러오기'){
2554
+ top 6
2555
+ left 4
2556
+ on_clicked{
2557
+ file = open_file
2558
+ if file != nil
2559
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
2560
+ @data['포스트설정']['막글'] = file_data
2561
+ end
2562
+ }
2563
+ }
2564
+ @data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
2565
+ top 7
2566
+ left 0
2567
+ }
2568
+ @data['포스트설정']['특성이미지사용'] = checkbox('특성이미지사용'){
2569
+ top 8
2570
+ left 0
2571
+ enabled false
2572
+ }
2573
+ @data['포스트설정']['태그삽입1'] = checkbox('태그삽입 1 (일반 방식의 태그 형식)'){
2574
+ top 9
2575
+ left 0
2576
+ }
2577
+ @data['포스트설정']['태그삽입1시작숫자'] = entry{
2578
+ top 9
2579
+ left 1
2580
+ text '최소수량'
2581
+ }
2582
+ label('~'){
2583
+ top 9
2584
+ left 2
2585
+ }
2586
+ @data['포스트설정']['태그삽입1끝숫자'] = entry{
2587
+ top 9
2588
+ left 3
2589
+ text '최대수량'
2590
+ }
2591
+
2592
+ @data['포스트설정']['태그삽입2'] = checkbox('태그삽입 2 (링크 삽입된 버튼 형식)'){
2593
+ top 10
2594
+ left 0
2595
+ }
2596
+ @data['포스트설정']['태그삽입2시작숫자'] = entry{
2597
+ top 10
2598
+ left 1
2599
+ text '최소수량'
2600
+ }
2601
+ label('~'){
2602
+ top 10
2603
+ left 2
2604
+ }
2605
+ @data['포스트설정']['태그삽입2끝숫자'] = entry{
2606
+ top 10
2607
+ left 3
2608
+ text '최대수량'
2609
+ }
2610
+ @data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
2611
+ top 11
2612
+ left 0
2613
+ }
2614
+ @data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
2615
+ top 12
2616
+ left 0
2617
+ }
2618
+ button('프록시 IP 파일 불러오기'){
2619
+ top 12
2620
+ left 1
2621
+ on_clicked{
2622
+ file = open_file
2623
+ if file != nil
2624
+ file_data = File.open(file,'r').read
2625
+ @data['포스트설정']['프록시리스트'] = file_data.split("\n")
2626
+ end
2627
+ }
2628
+ }
2629
+ }
2630
+ }
2631
+ }
2632
+
2633
+ horizontal_box{
2634
+ stretchy false
2635
+ @data['무한반복'] = checkbox('무한반복'){
2636
+ stretchy false
2637
+ }
2638
+ button('작업시작'){
2639
+ on_clicked{
2640
+ if @user_login_ok == 1
2641
+ if @start == 0
2642
+ @start = Thread.new do
2643
+ start()
2644
+ end
2645
+ end
2646
+ end
2647
+ }
2648
+ }
2649
+ button('작업정지'){
2650
+ on_clicked{
2651
+ if @start != 0
2652
+ begin
2653
+ @start.exit
2654
+ @start = 0
2655
+ rescue
2656
+ puts '작업정지 error pass'
2657
+ end
2658
+ end
2659
+ }
2660
+ }
2661
+ }
2662
+ }
2663
+ @data['table'].shift
2664
+ @data['키워드설정']['키워드'].shift
2665
+ @data['제목설정']['제목'].shift
2666
+ @data['내용설정']['내용'].shift
2667
+ @data['이미지설정']['이미지'].shift
2668
+ @data['image_size'][0].checked = true
2669
+ @data['image_type'][0].checked = true
2670
+ @data['키워드설정']['랜덤사용'].checked = true
2671
+ @data['제목설정']['랜덤사용'].checked = true
2672
+ @data['내용설정']['랜덤사용'].checked = true
2673
+ @data['이미지설정']['랜덤사용'].checked = true
2674
+ @data['포스트설정']['중앙정렬'].checked = true
2675
+ }.show
2676
+ end
2677
+ end
2678
+
2679
+ word = Wordpress.new
2680
+ word.launch