posting_duo 3.83.799 → 3.86.799
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/posting_duo.rb +402 -210
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e312d530ef275ae55d7c5ea0677ffdaf8062d6e0594c84d3533ec8491e99177
|
4
|
+
data.tar.gz: ee4a4cdde272b7f53219cce3750c8b9884b7bf02472cb0f3824895f1afa097e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4e03710be21caf8edff33bd69240be654cd4187085ec035ceb2064b359f99e3cb9cbfd4dc13a5d522d5eaaacd96d95044031f17b63f119f6e6131871e15644b
|
7
|
+
data.tar.gz: 513862c2154ee58c8359059d3091557cc25c2bd1c23844266f2fe5f090ea3e09b6804605afefd1149c9bac25db41adb58bd67316fded8647ef51518c27ad1061
|
data/lib/posting_duo.rb
CHANGED
@@ -4370,12 +4370,21 @@ post_url = option['post_url'].to_s
|
|
4370
4370
|
puts '-[√] 글쓰기 버튼 클릭 확인 code 4 타겟.......'.green
|
4371
4371
|
sleep(3.7)
|
4372
4372
|
rescue
|
4373
|
-
|
4373
|
+
begin
|
4374
|
+
el_post_btn = @driver.find_element(:xpath, '//*[@class="pro-btn _write"]')
|
4375
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", el_post_btn)
|
4376
|
+
sleep(1)
|
4377
|
+
@driver.find_element(:xpath, '//*[@class="pro-btn _write"]').click
|
4378
|
+
puts '-[√] 글쓰기 버튼 클릭 확인 code 5 타겟.......'.green
|
4379
|
+
sleep(3.7)
|
4380
|
+
rescue
|
4381
|
+
|
4382
|
+
end
|
4374
4383
|
end
|
4375
4384
|
end
|
4376
4385
|
end
|
4377
4386
|
end
|
4378
|
-
|
4387
|
+
|
4379
4388
|
sleep(1)
|
4380
4389
|
#오른쪽 마우스 해제 코드
|
4381
4390
|
begin
|
@@ -4495,52 +4504,7 @@ post_url = option['post_url'].to_s
|
|
4495
4504
|
end
|
4496
4505
|
end
|
4497
4506
|
rescue
|
4498
|
-
|
4499
|
-
# 타임아웃을 3초로 설정
|
4500
|
-
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
|
4501
|
-
# 요소가 나타날 때까지 30초 동안 기다립니다.
|
4502
|
-
wait.until { @driver.find_element(:xpath, '//*[@data-state="ready"]') }
|
4503
|
-
sleep(1)
|
4504
|
-
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
4505
|
-
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
4506
|
-
sleep(10)
|
4507
|
-
begin
|
4508
|
-
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
4509
|
-
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
4510
|
-
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
4511
|
-
@driver.window_handles.each do |handle|
|
4512
|
-
@driver.switch_to.window(handle)
|
4513
|
-
begin
|
4514
|
-
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
4515
|
-
@driver.close
|
4516
|
-
rescue Selenium::WebDriver::Error::WebDriverError => e
|
4517
|
-
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
4518
|
-
end
|
4519
|
-
end
|
4520
|
-
return 0
|
4521
|
-
@driver.quit
|
4522
|
-
rescue
|
4523
|
-
begin
|
4524
|
-
# 타임아웃을 77초로 설정
|
4525
|
-
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
4526
|
-
# 요소가 나타날 때까지 100초 동안 기다립니다.
|
4527
|
-
wait.until { @driver.find_element(:xpath, '//*[@data-state="solved"]') }
|
4528
|
-
sleep(1)
|
4529
|
-
@driver.find_element(:xpath, '//*[@data-state="solved"]').click
|
4530
|
-
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다.......'.green
|
4531
|
-
|
4532
|
-
sleep(5)
|
4533
|
-
rescue => e
|
4534
|
-
puts '-[√] 캡챠 해제 실패(캡챠는 사람이 풀기에 간혹 실수로 실패가 될수있습니다.).......'.red
|
4535
|
-
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
4536
|
-
puts e
|
4537
|
-
@driver.close
|
4538
|
-
return 0
|
4539
|
-
end
|
4540
|
-
end
|
4541
|
-
rescue
|
4542
|
-
|
4543
|
-
end
|
4507
|
+
|
4544
4508
|
end
|
4545
4509
|
end
|
4546
4510
|
##<─────────────────────────────────────────────────────────────────────캡챠 해제 입력 코드 부분
|
@@ -5605,7 +5569,13 @@ begin
|
|
5605
5569
|
sleep(1)
|
5606
5570
|
puts '-[√] 닉네임 25코드 타겟.......'.yellow
|
5607
5571
|
rescue
|
5608
|
-
|
5572
|
+
begin
|
5573
|
+
@driver.find_element(xpath: '//*[@name="board_name"]').send_keys(user_id)
|
5574
|
+
sleep(1)
|
5575
|
+
puts '-[√] 닉네임 26코드 타겟.......'.yellow
|
5576
|
+
rescue
|
5577
|
+
|
5578
|
+
end
|
5609
5579
|
end
|
5610
5580
|
end
|
5611
5581
|
end
|
@@ -5669,7 +5639,7 @@ begin
|
|
5669
5639
|
puts '-[√] 패스워드 4코드 타겟.......'.yellow
|
5670
5640
|
rescue
|
5671
5641
|
begin
|
5672
|
-
@driver.find_element(:xpath, '//*[@
|
5642
|
+
@driver.find_element(:xpath, '//*[@name="board_pass"]').send_keys(user_pw)
|
5673
5643
|
sleep(1)
|
5674
5644
|
puts '-[√] 패스워드 5코드 타겟.......'.yellow
|
5675
5645
|
rescue
|
@@ -5743,7 +5713,13 @@ begin
|
|
5743
5713
|
sleep(1)
|
5744
5714
|
puts '-[√] 패스워드 19코드 타겟.......'.yellow
|
5745
5715
|
rescue
|
5746
|
-
|
5716
|
+
begin
|
5717
|
+
@driver.find_element(:xpath, '//*[@type="password"]').send_keys(user_pw)
|
5718
|
+
sleep(1)
|
5719
|
+
puts '-[√] 패스워드 20코드 타겟.......'.yellow
|
5720
|
+
rescue
|
5721
|
+
|
5722
|
+
end
|
5747
5723
|
end
|
5748
5724
|
end
|
5749
5725
|
end
|
@@ -5823,7 +5799,13 @@ begin
|
|
5823
5799
|
@driver.find_element(:xpath, '//*[@name="b_mail"]').send_keys(more_txt1)
|
5824
5800
|
sleep(1)
|
5825
5801
|
rescue
|
5826
|
-
|
5802
|
+
begin
|
5803
|
+
@driver.find_element(:xpath, '//*[@name="board_email"]').send_keys(more_txt1)
|
5804
|
+
sleep(1)
|
5805
|
+
rescue
|
5806
|
+
|
5807
|
+
|
5808
|
+
end
|
5827
5809
|
|
5828
5810
|
end
|
5829
5811
|
|
@@ -6510,22 +6492,28 @@ begin
|
|
6510
6492
|
@driver.find_element(:xpath, '//*[@name="b_subject"]').send_keys(title)
|
6511
6493
|
sleep(1)
|
6512
6494
|
puts '-[√] 제목 code 44.......'.yellow
|
6513
|
-
rescue
|
6514
|
-
|
6515
|
-
|
6516
|
-
|
6517
|
-
|
6518
|
-
|
6519
|
-
|
6520
|
-
|
6521
|
-
|
6522
|
-
|
6523
|
-
|
6524
|
-
|
6495
|
+
rescue
|
6496
|
+
begin
|
6497
|
+
@driver.find_element(:xpath, '//*[@name="board_subject"]').send_keys(title)
|
6498
|
+
sleep(1)
|
6499
|
+
puts '-[√] 제목 code 45.......'.yellow
|
6500
|
+
rescue => e
|
6501
|
+
puts '-[√] 제목 입력 항목 코드 탐색 실패!!.......'.red
|
6502
|
+
puts '-[√] 다음 작업 준비 중으로 1~60 초 정도 기다려주세요.......'.red
|
6503
|
+
|
6504
|
+
@driver.window_handles.each do |handle|
|
6505
|
+
@driver.switch_to.window(handle)
|
6506
|
+
begin
|
6507
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
6508
|
+
@driver.close
|
6509
|
+
|
6510
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
6511
|
+
puts "크롬 브라우저 종료: #{e.message}"
|
6512
|
+
end
|
6525
6513
|
end
|
6526
|
-
|
6527
|
-
|
6528
|
-
|
6514
|
+
return 0
|
6515
|
+
@driver.quit
|
6516
|
+
end
|
6529
6517
|
end
|
6530
6518
|
end
|
6531
6519
|
end
|
@@ -6857,7 +6845,16 @@ begin
|
|
6857
6845
|
puts '-[√] HTML 코드 31 code.......'.yellow
|
6858
6846
|
sleep(1)
|
6859
6847
|
rescue
|
6860
|
-
|
6848
|
+
begin
|
6849
|
+
html_bb = @driver.find_element(:xpath, '//*[@name="use_html"]')
|
6850
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", html_bb)
|
6851
|
+
sleep(1)
|
6852
|
+
html_bb = @driver.find_element(:xpath, '//*[@name="use_html"]').click
|
6853
|
+
puts '-[√] HTML 코드 32 code.......'.yellow
|
6854
|
+
sleep(1)
|
6855
|
+
rescue
|
6856
|
+
|
6857
|
+
end
|
6861
6858
|
end
|
6862
6859
|
end
|
6863
6860
|
end
|
@@ -6905,7 +6902,12 @@ begin
|
|
6905
6902
|
@driver.switch_to.alert.accept
|
6906
6903
|
sleep(1)
|
6907
6904
|
rescue
|
6908
|
-
|
6905
|
+
begin
|
6906
|
+
@driver.find_element(:xpath, '//*[@class="confirm"]').click
|
6907
|
+
sleep(1)
|
6908
|
+
rescue
|
6909
|
+
|
6910
|
+
end
|
6909
6911
|
end
|
6910
6912
|
|
6911
6913
|
|
@@ -7175,7 +7177,19 @@ rescue
|
|
7175
7177
|
@driver.switch_to.default_content
|
7176
7178
|
puts '내용 항목 코드 타겟 46.......'.red
|
7177
7179
|
rescue
|
7178
|
-
|
7180
|
+
begin
|
7181
|
+
@driver.find_element(:xpath, '//*[@name="board_body"]').click
|
7182
|
+
sleep(1)
|
7183
|
+
puts '내용 항목 코드 타겟 47.......'.red
|
7184
|
+
rescue
|
7185
|
+
begin
|
7186
|
+
@driver.find_element(:xpath, '//textarea[@id="wr_content"]').click
|
7187
|
+
sleep(1)
|
7188
|
+
puts '내용 항목 코드 타겟 48.......'.red
|
7189
|
+
rescue
|
7190
|
+
|
7191
|
+
end
|
7192
|
+
end
|
7179
7193
|
end
|
7180
7194
|
end
|
7181
7195
|
end
|
@@ -8308,6 +8322,24 @@ if check_captcha == 1
|
|
8308
8322
|
rescue
|
8309
8323
|
|
8310
8324
|
end
|
8325
|
+
|
8326
|
+
begin
|
8327
|
+
#2차 확인 버튼 있을시
|
8328
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다>>.......'.green
|
8329
|
+
button = @driver.find_element(:xpath, '//input[@type="button" and @id="captch_button" and @value="확인"]')
|
8330
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", button)
|
8331
|
+
sleep(2)
|
8332
|
+
@driver.execute_script("arguments[0].click();", button)
|
8333
|
+
|
8334
|
+
begin
|
8335
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 3)
|
8336
|
+
wait.until { @driver.switch_to.alert }
|
8337
|
+
@driver.switch_to.alert.accept
|
8338
|
+
rescue
|
8339
|
+
end
|
8340
|
+
rescue
|
8341
|
+
end
|
8342
|
+
|
8311
8343
|
else
|
8312
8344
|
end
|
8313
8345
|
|
@@ -8670,7 +8702,74 @@ if check_captcha == 0
|
|
8670
8702
|
puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
|
8671
8703
|
rescue
|
8672
8704
|
|
8673
|
-
|
8705
|
+
begin
|
8706
|
+
@driver.switch_to.default_content()
|
8707
|
+
el = @driver.find_element(:xpath, '//img[contains(@src, "/captcha/images/image.php")]')
|
8708
|
+
puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
|
8709
|
+
puts '-[√] 캡챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
|
8710
|
+
puts '-[√] 캡챠 코드 code 14.......'.red
|
8711
|
+
sleep(1)
|
8712
|
+
@driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
|
8713
|
+
sleep(1)
|
8714
|
+
mouse_move_percentage(0.3,0.02)
|
8715
|
+
sleep(0.5)
|
8716
|
+
left_click
|
8717
|
+
sleep(1)
|
8718
|
+
@driver.switch_to.window(@driver.window_handle) #핸들 주입
|
8719
|
+
@driver.action.context_click(el).perform #우 클릭
|
8720
|
+
sleep(1)
|
8721
|
+
@driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
|
8722
|
+
sleep(1)
|
8723
|
+
puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
|
8724
|
+
rescue
|
8725
|
+
|
8726
|
+
begin
|
8727
|
+
@driver.switch_to.default_content()
|
8728
|
+
el = @driver.find_element(:xpath, '//img[@id="protect_img"]')
|
8729
|
+
puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
|
8730
|
+
puts '-[√] 캡챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
|
8731
|
+
puts '-[√] 캡챠 코드 code 14.......'.red
|
8732
|
+
sleep(1)
|
8733
|
+
@driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
|
8734
|
+
sleep(1)
|
8735
|
+
mouse_move_percentage(0.3,0.02)
|
8736
|
+
sleep(0.5)
|
8737
|
+
left_click
|
8738
|
+
sleep(1)
|
8739
|
+
@driver.switch_to.window(@driver.window_handle) #핸들 주입
|
8740
|
+
@driver.action.context_click(el).perform #우 클릭
|
8741
|
+
sleep(1)
|
8742
|
+
@driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
|
8743
|
+
sleep(1)
|
8744
|
+
puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
|
8745
|
+
rescue
|
8746
|
+
begin
|
8747
|
+
@driver.switch_to.default_content()
|
8748
|
+
el = @driver.find_element(:xpath, '//img[contains(@src, "/captcha/")]')
|
8749
|
+
puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
|
8750
|
+
puts '-[√] 캡챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
|
8751
|
+
puts '-[√] 캡챠 코드 code 14.......'.red
|
8752
|
+
sleep(1)
|
8753
|
+
@driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
|
8754
|
+
sleep(1)
|
8755
|
+
mouse_move_percentage(0.3,0.02)
|
8756
|
+
sleep(0.5)
|
8757
|
+
left_click
|
8758
|
+
sleep(1)
|
8759
|
+
@driver.switch_to.window(@driver.window_handle) #핸들 주입
|
8760
|
+
@driver.action.context_click(el).perform #우 클릭
|
8761
|
+
sleep(1)
|
8762
|
+
@driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
|
8763
|
+
sleep(1)
|
8764
|
+
puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
|
8765
|
+
rescue
|
8766
|
+
|
8767
|
+
|
8768
|
+
end
|
8769
|
+
|
8770
|
+
end
|
8771
|
+
|
8772
|
+
end
|
8674
8773
|
end
|
8675
8774
|
end
|
8676
8775
|
|
@@ -9467,7 +9566,44 @@ if check_captcha == 0
|
|
9467
9566
|
puts '-[√] 캡챠 코드 타겟 완료2.......'.blue
|
9468
9567
|
sleep(1)
|
9469
9568
|
rescue
|
9470
|
-
|
9569
|
+
begin
|
9570
|
+
@driver.switch_to.default_content()
|
9571
|
+
sleep(1)
|
9572
|
+
@driver.find_element(:xpath, '//*[@id="spamcode_chk"]').click
|
9573
|
+
sleep(1)
|
9574
|
+
el2 = @driver.find_element(:xpath, '//*[@id="spamcode_chk"]')
|
9575
|
+
@driver.action.context_click(el2).perform
|
9576
|
+
|
9577
|
+
sleep(1)
|
9578
|
+
@driver.action.key_stroke('up')
|
9579
|
+
sleep(1)
|
9580
|
+
@driver.action.key_stroke('up')
|
9581
|
+
sleep(1)
|
9582
|
+
@driver.action.key_stroke('enter')
|
9583
|
+
sleep(1)
|
9584
|
+
begin
|
9585
|
+
# 요소 찾기 타임아웃을 7초로 설정
|
9586
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 7)
|
9587
|
+
#요소가 나타날 때까지 7초 동안 기다립니다.
|
9588
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
|
9589
|
+
rescue
|
9590
|
+
sleep(1)
|
9591
|
+
@driver.action.key_stroke('left')
|
9592
|
+
sleep(1)
|
9593
|
+
@driver.action.key_stroke('up')
|
9594
|
+
sleep(1)
|
9595
|
+
@driver.action.key_stroke('enter')
|
9596
|
+
sleep(1)
|
9597
|
+
# 요소 찾기 타임아웃을 7초로 설정
|
9598
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 7)
|
9599
|
+
#요소가 나타날 때까지 7초 동안 기다립니다.
|
9600
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
|
9601
|
+
end
|
9602
|
+
puts '-[√] 캡챠 코드 타겟 완료2.......'.blue
|
9603
|
+
sleep(1)
|
9604
|
+
rescue
|
9605
|
+
|
9606
|
+
end
|
9471
9607
|
end
|
9472
9608
|
end
|
9473
9609
|
end
|
@@ -9492,7 +9628,6 @@ if check_captcha == 0
|
|
9492
9628
|
|
9493
9629
|
|
9494
9630
|
|
9495
|
-
|
9496
9631
|
sleep(1)
|
9497
9632
|
##캡챠 해제 입력 코드 부분─────────────────────────────────────────────────────────────────────>
|
9498
9633
|
begin
|
@@ -9513,22 +9648,22 @@ el_ready = @driver.find_element(:xpath, '//*[@data-state="ready"]')
|
|
9513
9648
|
sleep(1)
|
9514
9649
|
|
9515
9650
|
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
9516
|
-
begin
|
9517
|
-
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
9518
|
-
rescue
|
9519
9651
|
begin
|
9520
|
-
@driver.find_element(:xpath, '//*[@
|
9652
|
+
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
9521
9653
|
rescue
|
9522
9654
|
begin
|
9523
|
-
@driver.find_element(:xpath, '//*[@class="captcha-solver-
|
9655
|
+
@driver.find_element(:xpath, '//*[@class="captcha-solver-image"]').click #캡챠우회버튼
|
9524
9656
|
rescue
|
9525
9657
|
begin
|
9526
|
-
@driver.find_element(:xpath, '//*[@class="captcha-solver
|
9658
|
+
@driver.find_element(:xpath, '//*[@class="captcha-solver-info"]').click #캡챠우회버튼
|
9527
9659
|
rescue
|
9660
|
+
begin
|
9661
|
+
@driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]').click #캡챠우회버튼
|
9662
|
+
rescue
|
9663
|
+
end
|
9528
9664
|
end
|
9529
9665
|
end
|
9530
9666
|
end
|
9531
|
-
end
|
9532
9667
|
|
9533
9668
|
|
9534
9669
|
sleep(10)
|
@@ -9555,6 +9690,7 @@ sleep(10)
|
|
9555
9690
|
sleep(1)
|
9556
9691
|
@driver.find_element(:xpath, '//*[@data-state="solved"]').click
|
9557
9692
|
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다.......'.green
|
9693
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다>.......'.green
|
9558
9694
|
sleep(5)
|
9559
9695
|
begin
|
9560
9696
|
@driver.find_element(:xpath, '//*[@name="user_captcha"]').click
|
@@ -9571,6 +9707,22 @@ sleep(10)
|
|
9571
9707
|
sleep(1)
|
9572
9708
|
@driver.action.key_down(:right).key_up(:right).perform
|
9573
9709
|
rescue
|
9710
|
+
begin
|
9711
|
+
#2차 확인 버튼 있을시
|
9712
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다>>>.......'.green
|
9713
|
+
button = @driver.find_element(:xpath, '//input[@type="button" and @id="captch_button" and @value="확인"]')
|
9714
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", button)
|
9715
|
+
sleep(2)
|
9716
|
+
@driver.execute_script("arguments[0].click();", button)
|
9717
|
+
|
9718
|
+
begin
|
9719
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 3)
|
9720
|
+
wait.until { @driver.switch_to.alert }
|
9721
|
+
@driver.switch_to.alert.accept
|
9722
|
+
rescue
|
9723
|
+
end
|
9724
|
+
rescue
|
9725
|
+
end
|
9574
9726
|
end
|
9575
9727
|
end
|
9576
9728
|
end
|
@@ -9582,6 +9734,12 @@ end
|
|
9582
9734
|
|
9583
9735
|
|
9584
9736
|
|
9737
|
+
|
9738
|
+
|
9739
|
+
|
9740
|
+
|
9741
|
+
|
9742
|
+
|
9585
9743
|
else
|
9586
9744
|
end
|
9587
9745
|
|
@@ -9993,210 +10151,254 @@ rescue
|
|
9993
10151
|
sleep(5)
|
9994
10152
|
|
9995
10153
|
rescue
|
9996
|
-
########─────────────────────────────▼▼▼▼▼▼▼ 등록버튼 2차 시도 ▼▼▼▼▼▼▼──────────────────────────────#######
|
9997
|
-
begin
|
9998
|
-
puts '-[√] 등록 버튼 코드 탐색에 실패하였습니다.......'.magenta
|
9999
|
-
puts '-[√] 다른 방법으로 등록을 시도 합니다.......'.magenta
|
10000
|
-
|
10001
|
-
sleep(1)
|
10002
|
-
@driver.find_element(:xpath, '//*[@id="wr_subject"]').send_keys()
|
10003
|
-
sleep(1)
|
10004
|
-
@driver.find_element(:xpath, '//*[@id="wr_subject"]').click
|
10005
|
-
sleep(1)
|
10006
|
-
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10007
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10008
|
-
sleep(5)
|
10009
|
-
rescue
|
10010
|
-
begin
|
10011
|
-
@driver.find_element(:xpath, '//*[@fw-label="제목"]').send_keys()
|
10012
|
-
sleep(1)
|
10013
|
-
@driver.find_element(:xpath, '//*[@fw-label="제목"]').click
|
10014
|
-
sleep(1)
|
10015
|
-
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10016
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10017
|
-
sleep(5)
|
10018
|
-
rescue
|
10019
10154
|
begin
|
10020
|
-
@driver.find_element(:xpath, '
|
10155
|
+
ss_button = @driver.find_element(:xpath, '//input[@type="button" and @value="전송"]')
|
10156
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10021
10157
|
sleep(1)
|
10022
|
-
|
10023
|
-
|
10024
|
-
|
10025
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10158
|
+
|
10159
|
+
ss_button = @driver.find_element(:xpath, '//input[@type="button" and @value="전송"]').click
|
10160
|
+
puts '-[√] 등록을 36번 코드로 시도하였습니다.......'.magenta
|
10026
10161
|
sleep(5)
|
10027
|
-
|
10162
|
+
|
10163
|
+
rescue
|
10028
10164
|
begin
|
10029
|
-
@driver.find_element(:
|
10030
|
-
|
10031
|
-
@driver.find_element(:xpath, '//*[@name="title"]').click
|
10165
|
+
ss_button = @driver.find_element(css: 'ul.bt_type li a.bt_type4_w_4')
|
10166
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10032
10167
|
sleep(1)
|
10033
|
-
|
10034
|
-
|
10168
|
+
|
10169
|
+
ss_button = @driver.find_element(css: 'ul.bt_type li a.bt_type4_w_4').click
|
10170
|
+
puts '-[√] 등록을 36번 코드로 시도하였습니다.......'.magenta
|
10035
10171
|
sleep(5)
|
10036
|
-
|
10172
|
+
|
10173
|
+
rescue
|
10037
10174
|
begin
|
10038
|
-
@driver.find_element(:
|
10175
|
+
ss_button = @driver.find_element(id: 'btn-write')
|
10176
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10039
10177
|
sleep(1)
|
10040
|
-
|
10041
|
-
|
10042
|
-
|
10043
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10178
|
+
|
10179
|
+
ss_button = @driver.find_element(id: 'btn-write').click
|
10180
|
+
puts '-[√] 등록을 37번 코드로 시도하였습니다.......'.magenta
|
10044
10181
|
sleep(5)
|
10045
|
-
|
10182
|
+
|
10183
|
+
rescue
|
10046
10184
|
begin
|
10047
|
-
@driver.find_element(:xpath, '
|
10048
|
-
|
10049
|
-
@driver.find_element(:xpath, '//*[@id="title"]').click
|
10185
|
+
ss_button = @driver.find_element(:xpath, '//img[contains(@src, "img/btn_confirm.gif")]')
|
10186
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10050
10187
|
sleep(1)
|
10051
|
-
|
10052
|
-
|
10188
|
+
|
10189
|
+
ss_button = @driver.find_element(:xpath, '//img[contains(@src, "img/btn_confirm.gif")]').click
|
10190
|
+
puts '-[√] 등록을 38번 코드로 시도하였습니다.......'.magenta
|
10053
10191
|
sleep(5)
|
10192
|
+
|
10193
|
+
rescue
|
10194
|
+
########─────────────────────────────▼▼▼▼▼▼▼ 등록버튼 2차 시도 ▼▼▼▼▼▼▼──────────────────────────────#######
|
10195
|
+
begin
|
10196
|
+
puts '-[√] 등록 버튼 코드 탐색에 실패하였습니다.......'.magenta
|
10197
|
+
puts '-[√] 다른 방법으로 등록을 시도 합니다.......'.magenta
|
10198
|
+
|
10199
|
+
sleep(1)
|
10200
|
+
@driver.find_element(:xpath, '//*[@id="wr_subject"]').send_keys()
|
10201
|
+
sleep(1)
|
10202
|
+
@driver.find_element(:xpath, '//*[@id="wr_subject"]').click
|
10203
|
+
sleep(1)
|
10204
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10205
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10206
|
+
sleep(5)
|
10054
10207
|
rescue
|
10055
10208
|
begin
|
10056
|
-
@driver.find_element(:xpath, '//*[@
|
10209
|
+
@driver.find_element(:xpath, '//*[@fw-label="제목"]').send_keys()
|
10057
10210
|
sleep(1)
|
10058
|
-
@driver.find_element(:xpath, '//*[@
|
10211
|
+
@driver.find_element(:xpath, '//*[@fw-label="제목"]').click
|
10059
10212
|
sleep(1)
|
10060
10213
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10061
10214
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10062
10215
|
sleep(5)
|
10063
10216
|
rescue
|
10064
10217
|
begin
|
10065
|
-
@driver.find_element(:xpath, '//*[@
|
10218
|
+
@driver.find_element(:xpath, '//*[@name="subject"]').send_keys()
|
10066
10219
|
sleep(1)
|
10067
|
-
@driver.find_element(:xpath, '//*[@
|
10220
|
+
@driver.find_element(:xpath, '//*[@name="subject"]').click
|
10068
10221
|
sleep(1)
|
10069
10222
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10070
10223
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10071
10224
|
sleep(5)
|
10072
10225
|
rescue
|
10073
10226
|
begin
|
10074
|
-
@driver.find_element(:xpath, '//*[@name="
|
10227
|
+
@driver.find_element(:xpath, '//*[@name="title"]').send_keys()
|
10075
10228
|
sleep(1)
|
10076
|
-
@driver.find_element(:xpath, '//*[@name="
|
10229
|
+
@driver.find_element(:xpath, '//*[@name="title"]').click
|
10077
10230
|
sleep(1)
|
10078
10231
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10079
10232
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10080
10233
|
sleep(5)
|
10081
10234
|
rescue
|
10082
10235
|
begin
|
10083
|
-
@driver.find_element(:xpath, '//*[@
|
10236
|
+
@driver.find_element(:xpath, '//*[@id="wr_title"]').send_keys()
|
10084
10237
|
sleep(1)
|
10085
|
-
@driver.find_element(:xpath, '//*[@
|
10238
|
+
@driver.find_element(:xpath, '//*[@id="wr_title"]').click
|
10086
10239
|
sleep(1)
|
10087
10240
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10088
10241
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10089
10242
|
sleep(5)
|
10090
10243
|
rescue
|
10091
10244
|
begin
|
10092
|
-
@driver.find_element(:xpath, '//*[@
|
10245
|
+
@driver.find_element(:xpath, '//*[@id="title"]').send_keys()
|
10093
10246
|
sleep(1)
|
10094
|
-
@driver.find_element(:xpath, '//*[@
|
10247
|
+
@driver.find_element(:xpath, '//*[@id="title"]').click
|
10095
10248
|
sleep(1)
|
10096
10249
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10097
10250
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10098
10251
|
sleep(5)
|
10099
10252
|
rescue
|
10100
10253
|
begin
|
10101
|
-
@driver.find_element(:xpath, '//*[@
|
10254
|
+
@driver.find_element(:xpath, '//*[@id="postTitle"]').send_keys()
|
10102
10255
|
sleep(1)
|
10103
|
-
@driver.find_element(:xpath, '//*[@
|
10256
|
+
@driver.find_element(:xpath, '//*[@id="postTitle"]').click
|
10104
10257
|
sleep(1)
|
10105
10258
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10106
10259
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10107
10260
|
sleep(5)
|
10108
10261
|
rescue
|
10109
10262
|
begin
|
10110
|
-
@driver.find_element(:xpath, '//*[@
|
10263
|
+
@driver.find_element(:xpath, '//*[@title="input"]').send_keys()
|
10111
10264
|
sleep(1)
|
10112
|
-
@driver.find_element(:xpath, '//*[@
|
10265
|
+
@driver.find_element(:xpath, '//*[@title="input"]').click
|
10113
10266
|
sleep(1)
|
10114
10267
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10115
10268
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10116
10269
|
sleep(5)
|
10117
10270
|
rescue
|
10118
10271
|
begin
|
10119
|
-
@driver.find_element(:xpath, '//*[@
|
10272
|
+
@driver.find_element(:xpath, '//*[@name="wr_subject"]').send_keys()
|
10120
10273
|
sleep(1)
|
10121
|
-
@driver.find_element(:xpath, '//*[@
|
10274
|
+
@driver.find_element(:xpath, '//*[@name="wr_subject"]').click
|
10122
10275
|
sleep(1)
|
10123
10276
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10124
10277
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10125
10278
|
sleep(5)
|
10126
10279
|
rescue
|
10127
10280
|
begin
|
10128
|
-
@driver.find_element(:xpath, '//*[@
|
10281
|
+
@driver.find_element(:xpath, '//*[@name="post_title"]').send_keys()
|
10129
10282
|
sleep(1)
|
10130
|
-
@driver.find_element(:xpath, '//*[@
|
10283
|
+
@driver.find_element(:xpath, '//*[@name="post_title"]').click
|
10131
10284
|
sleep(1)
|
10132
10285
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10133
10286
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10134
10287
|
sleep(5)
|
10135
10288
|
rescue
|
10136
10289
|
begin
|
10137
|
-
@driver.find_element(:xpath, '//*[@
|
10290
|
+
@driver.find_element(:xpath, '//*[@title="제목"]').send_keys()
|
10138
10291
|
sleep(1)
|
10139
|
-
@driver.find_element(:xpath, '//*[@
|
10292
|
+
@driver.find_element(:xpath, '//*[@title="제목"]').click
|
10140
10293
|
sleep(1)
|
10141
10294
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10142
10295
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10143
10296
|
sleep(5)
|
10144
10297
|
rescue
|
10145
10298
|
begin
|
10146
|
-
@driver.find_element(:xpath, '//*[@
|
10299
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목을 입력하세요"]').send_keys()
|
10147
10300
|
sleep(1)
|
10148
|
-
@driver.find_element(:xpath, '//*[@
|
10301
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목을 입력하세요"]').click
|
10149
10302
|
sleep(1)
|
10150
10303
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10151
10304
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10152
10305
|
sleep(5)
|
10153
|
-
|
10154
10306
|
rescue
|
10155
10307
|
begin
|
10156
|
-
@driver.find_element(:xpath, '//*[@
|
10308
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목"]').send_keys()
|
10157
10309
|
sleep(1)
|
10158
|
-
@driver.find_element(:xpath, '//*[@
|
10310
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목"]').click
|
10159
10311
|
sleep(1)
|
10160
10312
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10161
10313
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10162
10314
|
sleep(5)
|
10163
|
-
|
10164
|
-
|
10165
|
-
|
10166
|
-
|
10167
|
-
|
10168
|
-
|
10169
|
-
@driver.
|
10315
|
+
rescue
|
10316
|
+
begin
|
10317
|
+
@driver.find_element(:xpath, '//*[@hname="제목"]').send_keys()
|
10318
|
+
sleep(1)
|
10319
|
+
@driver.find_element(:xpath, '//*[@hname="제목"]').click
|
10320
|
+
sleep(1)
|
10321
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10322
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10323
|
+
sleep(5)
|
10324
|
+
rescue
|
10170
10325
|
begin
|
10171
|
-
|
10172
|
-
|
10173
|
-
|
10174
|
-
|
10175
|
-
|
10176
|
-
|
10177
|
-
|
10178
|
-
|
10179
|
-
|
10180
|
-
|
10326
|
+
@driver.find_element(:xpath, '//*[@id="post_subject"]').send_keys()
|
10327
|
+
sleep(1)
|
10328
|
+
@driver.find_element(:xpath, '//*[@id="post_subject"]').click
|
10329
|
+
sleep(1)
|
10330
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10331
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10332
|
+
sleep(5)
|
10333
|
+
rescue
|
10334
|
+
begin
|
10335
|
+
@driver.find_element(:xpath, '//*[@id="search_bar"]').send_keys()
|
10336
|
+
sleep(1)
|
10337
|
+
@driver.find_element(:xpath, '//*[@id="search_bar"]').click
|
10338
|
+
sleep(1)
|
10339
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10340
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10341
|
+
sleep(5)
|
10342
|
+
rescue
|
10343
|
+
begin
|
10344
|
+
@driver.find_element(:xpath, '//*[@name="SUBJECT"]').send_keys()
|
10345
|
+
sleep(1)
|
10346
|
+
@driver.find_element(:xpath, '//*[@name="SUBJECT"]').click
|
10347
|
+
sleep(1)
|
10348
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10349
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10350
|
+
sleep(5)
|
10351
|
+
|
10352
|
+
rescue
|
10353
|
+
begin
|
10354
|
+
@driver.find_element(:xpath, '//*[@name="rg_title"]').send_keys()
|
10355
|
+
sleep(1)
|
10356
|
+
@driver.find_element(:xpath, '//*[@name="rg_title"]').click
|
10357
|
+
sleep(1)
|
10358
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10359
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10360
|
+
sleep(5)
|
10361
|
+
|
10362
|
+
rescue => e
|
10363
|
+
puts '-[√] 등록 실패.......'.red
|
10364
|
+
puts '-[√] 로딩 및 코드인식 실패등 기타 이유로 다음 게시판 작업으로 이동합니다.......'.red
|
10365
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
10366
|
+
@driver.window_handles.each do |handle|
|
10367
|
+
@driver.switch_to.window(handle)
|
10368
|
+
begin
|
10369
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
10370
|
+
@driver.close
|
10371
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
10372
|
+
puts "크롬 브라우저 종료: #{e.message}"
|
10373
|
+
end
|
10374
|
+
end
|
10375
|
+
return 0
|
10376
|
+
@driver.quit
|
10377
|
+
end
|
10378
|
+
end
|
10379
|
+
end
|
10380
|
+
|
10381
|
+
end
|
10382
|
+
end
|
10383
|
+
end
|
10384
|
+
end
|
10181
10385
|
end
|
10182
|
-
|
10183
|
-
|
10184
|
-
|
10185
|
-
end
|
10386
|
+
end
|
10387
|
+
end
|
10388
|
+
end
|
10186
10389
|
end
|
10187
|
-
end
|
10390
|
+
end
|
10188
10391
|
end
|
10189
|
-
end
|
10190
|
-
end
|
10191
|
-
end
|
10192
|
-
end
|
10193
|
-
end
|
10194
|
-
|
10195
|
-
end
|
10196
|
-
end
|
10392
|
+
end
|
10393
|
+
end
|
10394
|
+
end
|
10395
|
+
end
|
10396
|
+
end
|
10397
|
+
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 2차 시도 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10398
|
+
end
|
10399
|
+
end
|
10197
10400
|
end
|
10198
10401
|
end
|
10199
|
-
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 2차 시도 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10200
10402
|
end
|
10201
10403
|
end
|
10202
10404
|
end
|
@@ -10231,41 +10433,25 @@ rescue
|
|
10231
10433
|
end
|
10232
10434
|
end
|
10233
10435
|
end
|
10234
|
-
|
10235
|
-
|
10236
|
-
|
10436
|
+
|
10437
|
+
|
10237
10438
|
|
10238
|
-
|
10239
10439
|
|
10440
|
+
|
10441
|
+
begin
|
10442
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 3)
|
10443
|
+
alert = wait.until { @driver.switch_to.alert }
|
10444
|
+
alert_text = alert.text # alert 메시지 저장
|
10445
|
+
alert.accept
|
10446
|
+
rescue
|
10447
|
+
end
|
10448
|
+
sleep(1)
|
10240
10449
|
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10241
10450
|
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10242
10451
|
|
10243
10452
|
begin
|
10244
|
-
@driver.switch_to.alert
|
10245
|
-
sleep(1)
|
10246
|
-
error_text = @driver.switch_to.alert.text
|
10247
|
-
sleep(1)
|
10248
|
-
@driver.switch_to.alert.accept
|
10249
|
-
puts (error_text).red
|
10250
|
-
puts '-[√] 등록 로그 파일 생성 완료.......'.yellow
|
10251
|
-
File.open('./log/posting_log.txt', 'a') do |ff|
|
10252
|
-
ff.write('[')
|
10253
|
-
ff.write(DateTime.now.strftime("%Y년%m월%d일%H시%M분"))
|
10254
|
-
ff.write(']')
|
10255
|
-
ff.write(post_url)
|
10256
|
-
ff.write('【등록실패내용:')
|
10257
|
-
ff.write(error_text)
|
10258
|
-
ff.write('】')
|
10259
|
-
ff.write("\n")
|
10260
|
-
ff.close()
|
10261
|
-
puts '-[√] 로그 파일 생성 완료.......'.yellow
|
10262
|
-
end
|
10263
|
-
|
10264
|
-
rescue
|
10265
|
-
#@driver.execute_script("document.body.style.zoom = '1.00'")
|
10266
10453
|
sleep(3)
|
10267
10454
|
posting_url = @driver.current_url
|
10268
|
-
|
10269
10455
|
puts '-[√] 등록 로그 파일 생성 완료.......'.yellow
|
10270
10456
|
File.open('./log/posting_log.txt', 'a') do |ff|
|
10271
10457
|
ff.write('[')
|
@@ -10276,11 +10462,17 @@ rescue
|
|
10276
10462
|
ff.write(user_pw)
|
10277
10463
|
ff.write(',')
|
10278
10464
|
ff.write(posting_url)
|
10465
|
+
|
10466
|
+
if alert_text # alert가 있었다면 텍스트도 기록
|
10467
|
+
ff.write(' ▶')
|
10468
|
+
ff.write("팝업내용: #{alert_text}")
|
10469
|
+
end
|
10470
|
+
|
10279
10471
|
ff.write("\n")
|
10280
10472
|
ff.close()
|
10281
10473
|
puts '-[√] 로그 파일 생성 완료.......'.yellow
|
10282
10474
|
end
|
10283
|
-
|
10475
|
+
rescue
|
10284
10476
|
end
|
10285
10477
|
|
10286
10478
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_duo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.86.799
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-05-09 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: File to Clipboard gem
|
13
13
|
email: mymin26@naver.com
|