posting_duo 3.111.020 → 3.111.021

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/posting_duo.rb +45 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bdef949202bd3d1d1c6f751cd55b004f9f4f9b3c56b93703bff45fa135ba9e6
4
- data.tar.gz: cd3246a50db40d18f7ce5c82f9f6c3cb89817dcd96a41b92b5e21884c5e0bb4f
3
+ metadata.gz: b74590d443d2941fa0cbb91c083f57ed321a6a03e54e7469f6cf7b9094d70593
4
+ data.tar.gz: 34cfd296c93c4b7e230ddecfc9f2c6acee29fa7c6c4e6e93770436a2dae0e7f5
5
5
  SHA512:
6
- metadata.gz: 8c636b99b22333593db611aeb26ef1eed40516c7e8de0668d5a01dbb4e6ae60dfc66233abef5e9798474b5220ea64daffa2a9bd0364f8ba3078045a528da38b4
7
- data.tar.gz: 1cca995253c159633c0d38d44f7858aef2fc40fc40fe1287706438c638bc0630acf3393a987eaa3bddadb6b1421f05cb24dd2f9efb92dffe0bdb50c45e941e1c
6
+ metadata.gz: c1f551c8cbd9ed9281b86f667124425d4cfadcb627be043d2af21aa9d718de12990d5807846aab1b24d3d82fbf9e5a87027169880a30930da0271769c7ed6a5f
7
+ data.tar.gz: 601f03049a877e0d42b32afa8cdf2309a81106b8b6c4f21973aa286726c96c9aba8829e2fb066b8d644f467e2dd1f7675327d11445e4403cb938c85c9f0365ae
data/lib/posting_duo.rb CHANGED
@@ -8906,7 +8906,23 @@ if option['내용사진자동삽입'] == 'true'
8906
8906
  # 스마트 에디터 시작 ───────────────11111────────────────────────────────────────────────────────────────────────────────────────────────────────────────
8907
8907
  #스마트 에디터 이미지
8908
8908
  #아이프레임에서 코드 선택
8909
- @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@scrolling="no"]')) # 프래임선택
8909
+ #아이프레임에서 코드 선택
8910
+ # 1. 모든 scrolling="no" iframe 수집
8911
+ iframes = @driver.find_elements(:xpath, '//iframe[@scrolling="no"]')
8912
+
8913
+ # 2. 제외할 iframe id 또는 name 리스트
8914
+ blacklist = ["loginiframe", "ad_iframe", "popupiframe"]
8915
+
8916
+ # 3. 걸러낸 iframe 중 첫 번째 유효한 iframe 선택
8917
+ target_iframe = iframes.find do |frame|
8918
+ id = frame.attribute("id")
8919
+ name = frame.attribute("name")
8920
+ !blacklist.include?(id) && !blacklist.include?(name)
8921
+ end
8922
+
8923
+ # 4. 해당 iframe으로 전환
8924
+ @driver.switch_to.frame(target_iframe)
8925
+
8910
8926
  @driver.find_element(:xpath, '//*[@class="se2_to_editor"]').click #일반 글쓰기로 이동
8911
8927
  #아이프레임 나오기
8912
8928
  #@driver.switch_to.default_content()
@@ -8994,7 +9010,23 @@ if option['내용사진자동삽입'] == 'true'
8994
9010
  @driver.action.key_down(:shift).key_down(:left).perform #이미지 블럭
8995
9011
  @driver.action.key_up(:shift).key_up(:left).perform #이미지 블럭
8996
9012
  sleep(1)
8997
- @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@scrolling="no"]')) # 프래임선택 -->>>
9013
+ #아이프레임에서 코드 선택
9014
+ # 1. 모든 scrolling="no" iframe 수집
9015
+ iframes = @driver.find_elements(:xpath, '//iframe[@scrolling="no"]')
9016
+
9017
+ # 2. 제외할 iframe id 또는 name 리스트
9018
+ blacklist = ["loginiframe", "ad_iframe", "popupiframe"]
9019
+
9020
+ # 3. 걸러낸 iframe 중 첫 번째 유효한 iframe 선택
9021
+ target_iframe = iframes.find do |frame|
9022
+ id = frame.attribute("id")
9023
+ name = frame.attribute("name")
9024
+ !blacklist.include?(id) && !blacklist.include?(name)
9025
+ end
9026
+
9027
+ # 4. 해당 iframe으로 전환
9028
+ @driver.switch_to.frame(target_iframe)
9029
+
8998
9030
  sleep(1)
8999
9031
  begin
9000
9032
  @driver.find_element(:xpath, '//*[@class="se2_url"]').click #링크 삽입 버튼
@@ -9023,6 +9055,7 @@ if option['내용사진자동삽입'] == 'true'
9023
9055
  begin
9024
9056
  # CK 에디터 시작 ──────────────────22222─────────────────────────────────────────────────────────────────────────────────────────────────────────────
9025
9057
  #아이프레임에서 코드 선택
9058
+ @driver.switch_to.default_content() #아이프레임 나오기 <<<--
9026
9059
  @driver.find_element(:xpath, '//*[@title="입력 모드"]').click #일반 글쓰기로 이동
9027
9060
  #[옵션1 내용위에 사진 넣기]############
9028
9061
 
@@ -9570,15 +9603,13 @@ if option['내용사진자동삽입'] == 'true'
9570
9603
  #파일첨부로 대체 하기─────────────▶▶▶─────────────▶▶▶───────────▶▶▶
9571
9604
  #파일첨부로 대체 하기─────────────▶▶▶─────────────▶▶▶───────────▶▶▶
9572
9605
  begin
9573
- @driver.find_element(:xpath, '//*[@name="bf_file[]"]').click
9574
- sleep(5)
9575
9606
  Clipboard.copy(image_url_cheng) # 이미지 폴더에서 이미지 선택
9576
- key_down('ctrl')
9577
- key_stroke('v')
9578
- key_up('ctrl')
9579
- sleep(3)
9580
- key_stroke('enter')
9607
+ # 파일 input 요소 찾기
9608
+ file_input = @driver.find_element(:xpath, '//input[@name="bf_file[]" and @type="file"]')
9609
+ # send_keys로 이미지 경로 전송
9610
+ file_input.send_keys(image_url_cheng)
9581
9611
  sleep(3)
9612
+
9582
9613
  #링크 삽입시──────────────────────▶▶▶
9583
9614
  if option['내용사진링크'] == 'true'
9584
9615
  puts '-[√] 이미지 링크 삽입 불가 유형 게시판.......'.green
@@ -15757,6 +15788,11 @@ class Wordpress
15757
15788
  @data['포스트설정']['내용사진자동삽입'] = checkbox('이미지 자동 삽입  '){
15758
15789
  top 2
15759
15790
  left 0
15791
+ on_toggled {
15792
+ if @data['포스트설정']['내용사진자동삽입'].checked?
15793
+ msg_box("참고!!\n해당 기능은 그누보드 기반만 등록이 가능할수있습니다.\n그 외 다른 유형 게시판 사용시\n이미지 등록 로직이 달라 실패할 수 있으니\n가급적 html 코드를 이용해\n내용파일 안에 넣어쓰는걸 추천드립니다.\n\n예)\n안녕하세요 오늘은 포도사진을 볼게요\n<img src=\"https://이미지주소.png\">\n정말 탐스럽네요^^\n")
15794
+ end
15795
+ }
15760
15796
  }
15761
15797
  @data['포스트설정']['사진위적용'] = checkbox('내용 위에↑ 이미지 삽입'){
15762
15798
  top 2
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.111.020
4
+ version: 3.111.021
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-04 00:00:00.000000000 Z
10
+ date: 2025-07-07 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: File to Clipboard gem
13
13
  email: mymin26@naver.com