zon_blog_cafe_comment 0.0.17 → 0.0.21

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/zon_blog_cafe_comment.rb +395 -119
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f77c9d3b9656e2f01406850c34d21b2cd33b23ce1838ca66a5ef3b5ffeb6b46
4
- data.tar.gz: 3dd29d91cd7067159fc95be6a1e998ae09f1281bdd43cde002f5de044aeef6e7
3
+ metadata.gz: fdd9b34c058c7d8e169fd28d7deea7a5ff7d6a6128225efa8b9f2da2b3caff6f
4
+ data.tar.gz: 1b736b696b70bd1674a29f0c33ceaa51df09a33b19cad4ebee225b9a71f3a6f3
5
5
  SHA512:
6
- metadata.gz: f487a7ad6d924e84a0e91f001c8f505b2beb769a1f9899de53abab4e44afd7d55a3bae5613f535755e4b8232de8f06ed9092c87c287479af2835b5a0bbf873a9
7
- data.tar.gz: 03a7283355678f41a3aa0e43dafb4503994fb14253426359753af1ee5565bdb30c6992a17e3029548f2766a344baad04bb37e7fba2b2d1bafb86b90a7840ed1f
6
+ metadata.gz: 47708c2546ea7520b5b8425cb32fa236e2984ceee14b0c392cda8d0c2f53c5635d88bfb22d1b81304385e647c64e379c26f352a9c2e054291d03d00161961821
7
+ data.tar.gz: 23f06acd3b25e4f79ef36e8fea6fdab5ff763ee5e79062331588d7c05f5cb9e40088ed85a8e077899d769d3e4ecc39fd08e295ae1d69122a410722c9a275af24
@@ -232,11 +232,12 @@ class Naver
232
232
  return answer
233
233
  end
234
234
 
235
- def update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
235
+ def update(content,board_url,blog_url,nickname,image,option,counts_number,keyword,api_key)
236
236
  @board_url = board_url
237
237
  @keyword = keyword
238
238
  @content = content
239
239
  @api_key = api_key
240
+ @blog_url = blog_url
240
241
  if option['카페사용모드'] == 'true'
241
242
 
242
243
 
@@ -506,22 +507,22 @@ class Naver
506
507
 
507
508
  # 이미지 자동 삽입
508
509
  if option['이미지자동삽입'] == 'true'
509
- puts "이미지 자동 상입 옵션 진행!!".cyan
510
-
511
- # 아이프레임 요소가 나타날 때까지 기다립니다.
512
- @image = image
513
- image_path = image
514
-
515
- @driver.find_element(:xpath, '//*[@for="attach2"]').click
516
- sleep(1)
517
- key_stroke('escape')
518
- # 파일 경로 자동 입력
519
- file_input = @driver.find_element(:xpath, '//*[@id="attach2"]')
520
-
521
- # send_keys로 파일 경로를 입력하여 이미지 업로드
522
- file_input.send_keys(image_path)
523
- sleep(2)
524
-
510
+ puts "이미지 자동 상입 옵션 진행!!".cyan
511
+
512
+ # 아이프레임 요소가 나타날 때까지 기다립니다.
513
+ @image = image
514
+ image_path = image
515
+
516
+ @driver.find_element(:xpath, '//*[@for="attach2"]').click
517
+ sleep(1)
518
+ key_stroke('escape')
519
+ # 파일 경로 자동 입력
520
+ file_input = @driver.find_element(:xpath, '//*[@id="attach2"]')
521
+
522
+ # send_keys로 파일 경로를 입력하여 이미지 업로드
523
+ file_input.send_keys(image_path)
524
+ sleep(2)
525
+
525
526
  else
526
527
  end
527
528
 
@@ -724,21 +725,21 @@ class Naver
724
725
  # 이미지 자동 삽입
725
726
  if option['이미지자동삽입'] == 'true'
726
727
  puts "이미지 자동 상입 옵션 진행!!".cyan
727
-
728
+
728
729
  # 아이프레임 요소가 나타날 때까지 기다립니다.
729
730
  @image = image
730
731
  image_path = image
731
-
732
+
732
733
  @driver.find_element(:xpath, '//*[@for="attach2"]').click
733
734
  sleep(1)
734
735
  key_stroke('escape')
735
736
  # 파일 경로 자동 입력
736
737
  file_input = @driver.find_element(:xpath, '//*[@id="attach2"]')
737
-
738
+
738
739
  # send_keys로 파일 경로를 입력하여 이미지 업로드
739
740
  file_input.send_keys(image_path)
740
741
  sleep(2)
741
-
742
+
742
743
  else
743
744
  end
744
745
 
@@ -1000,22 +1001,22 @@ class Naver
1000
1001
 
1001
1002
  # 이미지 자동 삽입
1002
1003
  if option['이미지자동삽입'] == 'true'
1003
- puts "이미지 자동 상입 옵션 진행!!".cyan
1004
+ puts "이미지 자동 상입 옵션 진행!!".cyan
1004
1005
 
1005
- # 아이프레임 요소가 나타날 때까지 기다립니다.
1006
- @image = image
1007
- image_path = image
1008
-
1009
- @driver.find_element(:xpath, '//*[@for="attach2"]').click
1010
- sleep(1)
1011
- key_stroke('escape')
1012
- # 파일 경로 자동 입력
1013
- file_input = @driver.find_element(:xpath, '//*[@id="attach2"]')
1006
+ # 아이프레임 요소가 나타날 때까지 기다립니다.
1007
+ @image = image
1008
+ image_path = image
1009
+
1010
+ @driver.find_element(:xpath, '//*[@for="attach2"]').click
1011
+ sleep(1)
1012
+ key_stroke('escape')
1013
+ # 파일 경로 자동 입력
1014
+ file_input = @driver.find_element(:xpath, '//*[@id="attach2"]')
1014
1015
 
1015
- # send_keys로 파일 경로를 입력하여 이미지 업로드
1016
- file_input.send_keys(image_path)
1017
- sleep(2)
1018
-
1016
+ # send_keys로 파일 경로를 입력하여 이미지 업로드
1017
+ file_input.send_keys(image_path)
1018
+ sleep(2)
1019
+
1019
1020
  else
1020
1021
  end
1021
1022
 
@@ -1078,7 +1079,7 @@ class Naver
1078
1079
 
1079
1080
  elsif option['블로그사용모드'] == 'true'
1080
1081
 
1081
- if option['블로그키워드검색최신순'] == 'true'
1082
+ if option['블로그키워드검색인기순'] == 'true'
1082
1083
  # 수집된 post-url들을 저장할 배열
1083
1084
  collected_urls = []
1084
1085
  # 페이지 번호 초기화
@@ -1129,7 +1130,7 @@ class Naver
1129
1130
  page_no += 1
1130
1131
  end
1131
1132
 
1132
- elsif option['블로그키워드검색인기순'] == 'true'
1133
+ elsif option['블로그키워드검색최신순'] == 'true'
1133
1134
  # 수집된 post-url들을 저장할 배열
1134
1135
  collected_urls = []
1135
1136
  # 페이지 번호 초기화
@@ -1252,7 +1253,106 @@ class Naver
1252
1253
 
1253
1254
  page_no = rand(1..100)
1254
1255
  end
1255
- end
1256
+
1257
+ elsif option['타겟블로그'] == 'true'
1258
+ @driver.get(blog_url)
1259
+
1260
+ wait = Selenium::WebDriver::Wait.new(:timeout => 20) # 아이프레임 선택
1261
+ wait.until { @driver.find_element(:xpath, '//*[@id="mainFrame"]') } # 아이프레임 선택
1262
+ sleep(1)
1263
+ @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]')) # 아이프레임 선택
1264
+ sleep(1)
1265
+
1266
+ @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]').click
1267
+ sleep(1)
1268
+ element = @driver.find_element(:xpath, '//*[@class="aline"]')
1269
+ @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element)#크롤 이동
1270
+ sleep(2)
1271
+ element = @driver.find_element(:xpath, '//*[@class="aline"]').click
1272
+ sleep(1)
1273
+ @driver.find_element(:xpath, '//div[@id="changeListCount"]//a[@data-value="30"]').click
1274
+
1275
+ @driver.switch_to.default_content
1276
+
1277
+
1278
+ wait = Selenium::WebDriver::Wait.new(:timeout => 20) # 아이프레임 선택
1279
+ wait.until { @driver.find_element(:xpath, '//*[@id="mainFrame"]') } # 아이프레임 선택
1280
+ sleep(1)
1281
+ @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]')) # 아이프레임 선택
1282
+ sleep(1)
1283
+
1284
+ # 수집된 URL을 저장할 배열
1285
+ collected_urls = []
1286
+
1287
+ # 현재 페이지에서 수집할 링크 개수
1288
+ remaining_count = counts_number
1289
+
1290
+ # 페이지 번호
1291
+ page_number = 1
1292
+
1293
+ # 페이지가 끝날 때까지 반복
1294
+ while remaining_count > 0
1295
+ # 요소가 로드될 때까지 대기
1296
+ wait = Selenium::WebDriver::Wait.new(:timeout => 10)
1297
+ wait.until { @driver.find_element(:xpath, '//form[@name="listTopForm"]//tbody//tr//td[@class="title"]//div[@class="wrap_td"]//span[@class="ell2 pcol2"]//a[@href]') }
1298
+
1299
+ # 현재 페이지에서 링크 수집 (form 태그 내에서 a 태그를 찾음)
1300
+ links = @driver.find_elements(:xpath, '//form[@name="listTopForm"]//tbody//tr//td[@class="title"]//div[@class="wrap_td"]//span[@class="ell2 pcol2"]//a[@href]') # 정확한 XPath 경로로 a 태그 찾기
1301
+
1302
+ links.each do |link|
1303
+ post_url = link.attribute('href')
1304
+ if post_url && collected_urls.length < counts_number
1305
+ # 기존 URL에서 blogId와 logNo를 추출하여 변형
1306
+ if post_url.include?("blog.naver.com/PostView.naver")
1307
+ # URL에서 blogId와 logNo 추출
1308
+ blog_id = post_url.split("blogId=")[1].split("&")[0]
1309
+ log_no = post_url.split("logNo=")[1].split("&")[0]
1310
+
1311
+ # 변형된 URL 생성
1312
+ new_url = "https://blog.naver.com/#{blog_id}/#{log_no}"
1313
+
1314
+ # 변형된 URL을 배열에 추가
1315
+ collected_urls << new_url
1316
+ remaining_count -= 1
1317
+ end
1318
+ end
1319
+ end
1320
+
1321
+ # 수집된 개수가 요구한 수에 도달하면 종료
1322
+ break if collected_urls.length >= counts_number
1323
+
1324
+ # 10페이지까지 수집되었고, 다음 페이지가 있으면 "다음" 버튼 클릭하여 계속 수집
1325
+ if page_number % 10 == 0
1326
+ begin
1327
+ # "다음" 링크 찾기 (다음 페이지 링크)
1328
+ next_page_link = @driver.find_element(:xpath, "//a[text()='다음']")
1329
+ next_page_link.click
1330
+ page_number += 1 # 페이지 번호 증가
1331
+ sleep(2) # 페이지가 로드되기 전에 잠시 대기
1332
+ # 페이지가 변경될 때까지 대기
1333
+ wait.until { @driver.find_element(:xpath, '//form[@name="listTopForm"]//tbody//tr//td[@class="title"]//div[@class="wrap_td"]//span[@class="ell2 pcol2"]//a[@href]') }
1334
+ rescue Selenium::WebDriver::Error::NoSuchElementError
1335
+ # 만약 "다음" 버튼이 없으면 종료
1336
+ break
1337
+ end
1338
+ else
1339
+ # 페이지 번호가 더 있으면 다음 페이지로 이동
1340
+ begin
1341
+ next_page_link = @driver.find_element(:xpath, "//a[text()='#{page_number + 1}']")
1342
+ next_page_link.click
1343
+ page_number += 1
1344
+ sleep(2)
1345
+ # 페이지가 변경될 때까지 대기
1346
+ wait.until { @driver.find_element(:xpath, '//form[@name="listTopForm"]//tbody//tr//td[@class="title"]//div[@class="wrap_td"]//span[@class="ell2 pcol2"]//a[@href]') }
1347
+ rescue Selenium::WebDriver::Error::NoSuchElementError
1348
+ # 만약 다음 페이지 링크가 없으면 종료
1349
+ break
1350
+ end
1351
+ end
1352
+ end
1353
+
1354
+ @driver.switch_to.default_content
1355
+ end
1256
1356
 
1257
1357
  collected_urls.each do |url|
1258
1358
  # 각 post-url로 이동
@@ -1751,66 +1851,93 @@ class Naver
1751
1851
  # '이모티콘' 버튼 클릭
1752
1852
  @driver.find_element(:xpath, '//*[@data-action="write#beforeToggleSticker"]').click
1753
1853
  sleep(1)
1754
-
1755
-
1756
-
1757
-
1758
- # 1. 'data-id' 속성에 따라 랜덤으로 요소 클릭
1759
- data_ids = ["motion2d_01", "motion3d_02", "cafe_004", "cafe_005", "cafe_001", "cafe_002"]
1760
-
1761
- # 랜덤으로 data-id 선택
1762
- selected_data_id = data_ids.sample
1763
-
1764
- # 선택된 data-id에 해당하는 요소를 찾기
1765
- selected_element = @driver.find_element(:xpath, "//li[@data-id='#{selected_data_id}']")
1766
-
1767
- # 해당 요소 클릭
1768
- selected_element.click
1769
- #puts "클릭된 이data-id: #{selected_data_id}"
1770
-
1771
- sleep(1.5)
1772
-
1773
- # 2. data-id에 해당하는 data-param을 찾고 랜덤으로 클릭
1774
- case selected_data_id
1775
- when "cafe_005"
1776
- data_params = ["cafe_005-1", "cafe_005-2", "cafe_005-3", "cafe_005-4", "cafe_005-5", "cafe_005-6", "cafe_005-7", "cafe_005-8", "cafe_005-9"]
1777
- when "cafe_001"
1778
- data_params = ["cafe_001-1", "cafe_001-2", "cafe_001-3", "cafe_001-5", "cafe_001-6", "cafe_001-7", "cafe_001-8", "cafe_001-9"]
1779
- when "motion2d_01"
1780
- data_params = ["motion2d_01-1", "motion2d_01-2", "motion2d_01-3", "motion2d_01-4", "motion2d_01-5", "motion2d_01-6", "motion2d_01-7", "motion2d_01-8", "motion2d_01-9"]
1781
- when "motion3d_02"
1782
- data_params = ["motion3d_02-1", "motion3d_02-2", "motion3d_02-3", "motion3d_02-4", "motion3d_02-5", "motion3d_02-6", "motion3d_02-7", "motion3d_02-8", "motion3d_02-9"]
1783
- when "cafe_004"
1784
- data_params = ["cafe_004-1", "cafe_004-2", "cafe_004-3", "cafe_004-4", "cafe_004-5", "cafe_004-6", "cafe_004-7", "cafe_004-8", "cafe_004-9"]
1785
- when "cafe_002"
1786
- data_params = ["cafe_002-1", "cafe_002-2", "cafe_002-3", "cafe_002-4", "cafe_002-5", "cafe_002-6", "cafe_002-7", "cafe_002-8", "cafe_002-9"]
1787
- else
1788
- data_params = []
1854
+
1855
+ actions = [
1856
+ lambda {
1857
+ begin
1858
+ @driver.find_element(:xpath, '//*[@data-param="motion2d_01"]').click
1859
+ sleep(2)
1860
+
1861
+ random_number = (1..24).to_a.sample
1862
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="motion2d_01"]//li[@class="u_cbox_sticker_item"]//button[@data-param="motion2d_01-'+random_number.to_s+'"]').click
1863
+ sleep(2)
1864
+
1865
+ rescue
1866
+ end
1867
+ },
1868
+ lambda {
1869
+
1870
+ begin
1871
+ @driver.find_element(:xpath, '//*[@data-param="motion3d_02"]').click
1872
+ sleep(2)
1873
+
1874
+ random_number = (1..24).to_a.sample
1875
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="motion3d_02"]//li[@class="u_cbox_sticker_item"]//button[@data-param="motion3d_02-'+random_number.to_s+'"]').click
1876
+ sleep(1)
1877
+ @driver.action.key_down(:enter).key_up(:enter).perform
1878
+ sleep(2)
1879
+
1880
+
1881
+ rescue
1882
+ end
1883
+ },
1884
+ lambda {
1885
+
1886
+ begin
1887
+ @driver.find_element(:xpath, '//*[@data-param="cafe_004"]').click
1888
+ sleep(2)
1889
+
1890
+ random_number = (1..28).to_a.sample
1891
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="cafe_004"]//li[@class="u_cbox_sticker_item"]//button[@data-param="cafe_004-'+random_number.to_s+'"]').click
1892
+ sleep(2)
1893
+
1894
+ rescue
1895
+ end
1896
+ },
1897
+ lambda {
1898
+
1899
+ begin
1900
+ @driver.find_element(:xpath, '//*[@data-param="cafe_005"]').click
1901
+ sleep(2)
1902
+
1903
+ random_number = (1..26).to_a.sample
1904
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="cafe_005"]//li[@class="u_cbox_sticker_item"]//button[@data-param="cafe_005-'+random_number.to_s+'"]').click
1905
+ sleep(2)
1906
+
1907
+ rescue
1789
1908
  end
1909
+ },
1910
+ lambda {
1911
+
1912
+ begin
1913
+ @driver.find_element(:xpath, '//*[@data-param="cafe_001"]').click
1914
+ sleep(2)
1790
1915
 
1791
- # 3. 이제 선택된 data-id에 해당하는 'data-param'을 가진 버튼을 찾아 랜덤으로 클릭하기
1792
- if data_params.any?
1793
- # 모든 'u_cbox_sticker_area' 요소를 찾기
1794
- areas = @driver.find_elements(:xpath, '//*[@class="u_cbox_sticker_area"]')
1916
+ random_number = (1..24).to_a.sample
1917
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="cafe_001"]//li[@class="u_cbox_sticker_item"]//button[@data-param="cafe_001-'+random_number.to_s+'"]').click
1918
+ sleep(1)
1919
+ @driver.action.key_down(:enter).key_up(:enter).perform
1920
+ sleep(2)
1795
1921
 
1796
- # 각 'u_cbox_sticker_area' 내에서 랜덤으로 data-param을 찾기
1797
- areas.each do |area|
1798
- # 각 area 내에서 해당 data-id를 가진 button 찾기
1799
- buttons = area.find_elements(:xpath, ".//button[contains(@data-param, '#{selected_data_id}')]")
1922
+ rescue
1923
+ end
1924
+ },
1925
+ lambda {
1926
+
1927
+ begin
1928
+ @driver.find_element(:xpath, '//*[@data-param="cafe_002"]').click
1929
+ sleep(2)
1800
1930
 
1801
- # 해당 버튼이 있다면
1802
- if buttons.any?
1803
- # data-param에 해당하는 버튼을 랜덤으로 클릭
1804
- button_to_click = buttons.sample
1805
- button_to_click.click
1931
+ random_number = (1..24).to_a.sample
1932
+ @driver.find_element(:xpath, '//div[@class="u_cbox_sticker_area"]//ul[@data-id="cafe_002"]//li[@class="u_cbox_sticker_item"]//button[@data-param="cafe_002-'+random_number.to_s+'"]').click
1933
+ sleep(1)
1934
+ @driver.action.key_down(:enter).key_up(:enter).perform
1806
1935
  sleep(2)
1807
- #puts "클릭된 data-param: #{button_to_click.attribute('data-param')}"
1808
- break # 클릭 후 루프 종료
1809
- end
1810
- end
1811
- else
1812
- #puts "해당 data-id에 대한 data-param이 없습니다."
1936
+ rescue
1813
1937
  end
1938
+ }
1939
+ ]
1940
+ actions.sample.call
1814
1941
 
1815
1942
 
1816
1943
  elsif option['이미지자동삽입'] == 'true'
@@ -1948,6 +2075,7 @@ end
1948
2075
  @my_ip = 'init'
1949
2076
  image_soon = 0
1950
2077
  board_url_soon = 0
2078
+ blog_url_soon = 0
1951
2079
  nickname_soon = 0
1952
2080
  keyword_soon = 0
1953
2081
  @inumber2 = 0
@@ -2051,8 +2179,6 @@ end
2051
2179
  puts "adb devices 명령어 실행 실패. stderr: #{stderr}"
2052
2180
  end
2053
2181
  end
2054
-
2055
-
2056
2182
 
2057
2183
 
2058
2184
 
@@ -2125,6 +2251,20 @@ end
2125
2251
  end
2126
2252
  end
2127
2253
  end
2254
+
2255
+ if @data['블로그설정']['블로그'].length == 0
2256
+ blog_url = ''
2257
+ else
2258
+ if @data['블로그설정']['랜덤사용'].checked?
2259
+ blog_url = @data['블로그설정']['블로그'].sample[1]
2260
+ else
2261
+ blog_url = @data['블로그설정']['블로그'][blog_url_soon][1]
2262
+ blog_url_soon += 1
2263
+ if blog_url_soon > @data['블로그설정']['블로그'].length-1
2264
+ blog_url_soon = 0
2265
+ end
2266
+ end
2267
+ end
2128
2268
 
2129
2269
  @data['table'][index][-1] = 15
2130
2270
  @data['table'] << []
@@ -2164,7 +2304,7 @@ end
2164
2304
  end
2165
2305
  end
2166
2306
 
2167
- @data['table'][index][-1] = 20
2307
+ @data['table'][index][-1] = 25
2168
2308
  @data['table'] << []
2169
2309
  @data['table'].pop
2170
2310
 
@@ -2299,6 +2439,12 @@ end
2299
2439
  else
2300
2440
  option['블로그무작위'] = 'false'
2301
2441
  end
2442
+
2443
+ if @data['포스트설정']['타겟블로그'].checked?
2444
+ option['타겟블로그'] = 'true'
2445
+ else
2446
+ option['타겟블로그'] = 'false'
2447
+ end
2302
2448
  @data['table'][index][-1] = 70
2303
2449
  @data['table'] << []
2304
2450
  @data['table'].pop
@@ -2386,7 +2532,7 @@ end
2386
2532
  # 댓글 설정 수 카운트
2387
2533
  counts_number = @data['table'][index][6].to_i
2388
2534
  api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
2389
- naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
2535
+ naver.update(content,board_url,blog_url,nickname,image,option,counts_number,keyword,api_key)
2390
2536
 
2391
2537
 
2392
2538
 
@@ -2436,7 +2582,8 @@ end
2436
2582
  @data['내용설정']['내용'] = [[false, '']]
2437
2583
  @data['이미지설정'] = Hash.new
2438
2584
  @data['이미지설정']['이미지'] = [[false, '']]
2439
-
2585
+ @data['블로그설정'] = Hash.new
2586
+ @data['블로그설정']['블로그'] = [[false, '']]
2440
2587
  @data['포스트설정'] = Hash.new
2441
2588
  @data['table'] = [[false, '', '', '', '','','']]
2442
2589
 
@@ -2595,7 +2742,15 @@ end
2595
2742
 
2596
2743
  @data['닉네임설정']['닉네임'].pop
2597
2744
  end
2745
+
2746
+
2747
+ while true
2748
+ if @data['블로그설정']['블로그'].length == 0
2749
+ break
2750
+ end
2598
2751
 
2752
+ @data['블로그설정']['블로그'].pop
2753
+ end
2599
2754
 
2600
2755
  }
2601
2756
  }
@@ -3014,6 +3169,106 @@ end
3014
3169
 
3015
3170
  cell_rows @data['게시판설정']['게시판']
3016
3171
  }
3172
+
3173
+ horizontal_box{
3174
+ stretchy false
3175
+ button('   블로그url 불러오기  '){
3176
+ on_clicked{
3177
+ file = open_file
3178
+ if file != nil
3179
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3180
+ file_data.split("\n").each do |blog_url|
3181
+ if blog_url.split(' ').join('').length < 2
3182
+
3183
+ else
3184
+ @data['블로그설정']['블로그'] << [false, blog_url]
3185
+ @data['블로그설정']['블로그'] << [false, blog_url]
3186
+ @data['블로그설정']['블로그'].pop
3187
+ end
3188
+ end
3189
+ end
3190
+ }
3191
+ }
3192
+ }
3193
+
3194
+ horizontal_box{
3195
+ stretchy false
3196
+ grid{
3197
+ button(' 전체선택 '){
3198
+ top 1
3199
+ left 0
3200
+ on_clicked{
3201
+ for n in 0..@data['블로그설정']['블로그'].length-1
3202
+ @data['블로그설정']['블로그'][n][0] = true
3203
+ @data['블로그설정']['블로그'] << []
3204
+ @data['블로그설정']['블로그'].pop
3205
+ end
3206
+ }
3207
+ }
3208
+ button(' 선택해제 '){
3209
+ top 1
3210
+ left 1
3211
+ on_clicked{
3212
+ for n in 0..@data['블로그설정']['블로그'].length-1
3213
+ @data['블로그설정']['블로그'][n][0] = false
3214
+ @data['블로그설정']['블로그'] << []
3215
+ @data['블로그설정']['블로그'].pop
3216
+ end
3217
+ }
3218
+ }
3219
+ button(' 삭제하기 '){
3220
+ top 1
3221
+ left 2
3222
+ on_clicked{
3223
+ m = Array.new
3224
+ for n in 0..@data['블로그설정']['블로그'].length-1
3225
+ if @data['블로그설정']['블로그'][n][0] == true
3226
+ m << n
3227
+ end
3228
+ end
3229
+
3230
+ m.reverse.each do |i|
3231
+ @data['블로그설정']['블로그'].delete_at(i)
3232
+ end
3233
+ @data['블로그설정']['블로그'].delete(nil)
3234
+ }
3235
+ }
3236
+ }
3237
+
3238
+ horizontal_box{
3239
+ stretchy false
3240
+ @data['블로그설정']['순서사용'] = checkbox('순서사용'){
3241
+ stretchy false
3242
+ on_toggled{ |c|
3243
+ if c.checked?
3244
+ @data['블로그설정']['랜덤사용'].checked = false
3245
+ end
3246
+ }
3247
+ }
3248
+ @data['블로그설정']['랜덤사용'] = checkbox('랜덤사용'){
3249
+ stretchy false
3250
+ on_toggled{ |c|
3251
+ if c.checked?
3252
+ @data['블로그설정']['순서사용'].checked = false
3253
+ end
3254
+ }
3255
+ }
3256
+ }
3257
+ }
3258
+
3259
+ table{
3260
+ checkbox_column('선택'){
3261
+ editable true
3262
+ }
3263
+
3264
+ text_column('블로그url'){
3265
+
3266
+ }
3267
+
3268
+ cell_rows @data['블로그설정']['블로그']
3269
+ }
3270
+
3271
+
3017
3272
 
3018
3273
  }
3019
3274
  vertical_separator{
@@ -3610,6 +3865,7 @@ end
3610
3865
  @data['포스트설정']['블로그키워드검색최신순'].enabled = false # '내용투명' 활성화
3611
3866
  @data['포스트설정']['블로그키워드검색인기순'].enabled = false # '내용투명' 활성화
3612
3867
  @data['포스트설정']['블로그무작위'].enabled = false # '내용투명' 활성화
3868
+ @data['포스트설정']['타겟블로그'].enabled = false # '내용투명' 활성화
3613
3869
  @data['포스트설정']['이웃추가'].enabled = false # '내용투명' 활성화
3614
3870
  @data['포스트설정']['서로이웃추가'].enabled = false # '내용투명' 활성화
3615
3871
  @data['포스트설정']['공유하기'].enabled = false # '내용투명' 활성화
@@ -3618,6 +3874,7 @@ end
3618
3874
  @data['포스트설정']['블로그키워드검색최신순'].checked = false
3619
3875
  @data['포스트설정']['블로그키워드검색인기순'].checked = false
3620
3876
  @data['포스트설정']['블로그무작위'].checked = false
3877
+ @data['포스트설정']['타겟블로그'].checked = false
3621
3878
  @data['포스트설정']['이웃추가'].checked = false
3622
3879
  @data['포스트설정']['서로이웃추가'].checked = false
3623
3880
  @data['포스트설정']['공유하기'].checked = false
@@ -3700,6 +3957,7 @@ end
3700
3957
  @data['포스트설정']['블로그키워드검색최신순'].enabled = true # '내용투명' 활성화
3701
3958
  @data['포스트설정']['블로그키워드검색인기순'].enabled = true # '내용투명' 활성화
3702
3959
  @data['포스트설정']['블로그무작위'].enabled = true # '내용투명' 활성화
3960
+ @data['포스트설정']['타겟블로그'].enabled = true # '내용투명' 활성화
3703
3961
  @data['포스트설정']['이웃추가'].enabled = true # '내용투명' 활성화
3704
3962
  @data['포스트설정']['서로이웃추가'].enabled = true # '내용투명' 활성화
3705
3963
  @data['포스트설정']['공유하기'].enabled = true # '내용투명' 활성화
@@ -3720,6 +3978,7 @@ end
3720
3978
  @data['포스트설정']['블로그키워드검색최신순'].enabled = false # '내용투명' 활성화
3721
3979
  @data['포스트설정']['블로그키워드검색인기순'].enabled = false # '내용투명' 활성화
3722
3980
  @data['포스트설정']['블로그무작위'].enabled = false # '내용투명' 활성화
3981
+ @data['포스트설정']['타겟블로그'].enabled = false # '내용투명' 활성화
3723
3982
  @data['포스트설정']['이웃추가'].enabled = false # '내용투명' 활성화
3724
3983
  @data['포스트설정']['서로이웃추가'].enabled = false # '내용투명' 활성화
3725
3984
  @data['포스트설정']['공유하기'].enabled = false # '내용투명' 활성화
@@ -3728,6 +3987,7 @@ end
3728
3987
  @data['포스트설정']['블로그키워드검색최신순'].checked = false
3729
3988
  @data['포스트설정']['블로그키워드검색인기순'].checked = false
3730
3989
  @data['포스트설정']['블로그무작위'].checked = false
3990
+ @data['포스트설정']['타겟블로그'].checked = false
3731
3991
  @data['포스트설정']['이웃추가'].checked = false
3732
3992
  @data['포스트설정']['서로이웃추가'].checked = false
3733
3993
  @data['포스트설정']['공유하기'].checked = false
@@ -3746,6 +4006,7 @@ end
3746
4006
  if @data['포스트설정']['블로그키워드검색최신순'].checked?
3747
4007
  @data['포스트설정']['블로그키워드검색인기순'].checked = false
3748
4008
  @data['포스트설정']['블로그무작위'].checked = false
4009
+ @data['포스트설정']['타겟블로그'].checked = false
3749
4010
  end
3750
4011
  }
3751
4012
  }
@@ -3757,12 +4018,13 @@ end
3757
4018
  if @data['포스트설정']['블로그키워드검색인기순'].checked?
3758
4019
  @data['포스트설정']['블로그키워드검색최신순'].checked = false
3759
4020
  @data['포스트설정']['블로그무작위'].checked = false
4021
+ @data['포스트설정']['타겟블로그'].checked = false
3760
4022
  end
3761
4023
  }
3762
4024
  }
3763
4025
 
3764
4026
 
3765
- @data['포스트설정']['블로그무작위'] = checkbox('블로그 랜덤 무작위 설정'){
4027
+ @data['포스트설정']['블로그무작위'] = checkbox('블로그 랜덤 무작위 설정  '){
3766
4028
  top 1
3767
4029
  left 3
3768
4030
  enabled false
@@ -3770,11 +4032,23 @@ end
3770
4032
  if @data['포스트설정']['블로그무작위'].checked?
3771
4033
  @data['포스트설정']['블로그키워드검색최신순'].checked = false
3772
4034
  @data['포스트설정']['블로그키워드검색인기순'].checked = false
4035
+ @data['포스트설정']['타겟블로그'].checked = false
3773
4036
  end
3774
4037
  }
3775
4038
  }
3776
-
3777
-
4039
+ @data['포스트설정']['타겟블로그'] = checkbox('타겟 블로그 작업 (블로그 게시글 URL이 아닌 블로그URL를 세팅해주세요.)'){
4040
+ top 1
4041
+ left 4
4042
+ enabled false
4043
+ on_toggled {
4044
+ if @data['포스트설정']['타겟블로그'].checked?
4045
+ @data['포스트설정']['블로그키워드검색최신순'].checked = false
4046
+ @data['포스트설정']['블로그키워드검색인기순'].checked = false
4047
+ @data['포스트설정']['블로그무작위'].checked = false
4048
+ end
4049
+ }
4050
+ }
4051
+
3778
4052
  @data['포스트설정']['이웃추가'] = checkbox('이웃추가'){
3779
4053
  top 2
3780
4054
  left 0
@@ -3795,26 +4069,26 @@ end
3795
4069
  end
3796
4070
  }
3797
4071
  }
3798
- @data['포스트설정']['공유하기'] = checkbox('공유하기'){
3799
- top 2
3800
- left 2
3801
- enabled false
3802
- on_toggled {
3803
- if @data['포스트설정']['공유하기'].checked?
3804
- @data['포스트설정']['공유하기비공개'].checked = false
3805
- end
3806
- }
3807
- }
3808
- @data['포스트설정']['공유하기비공개'] = checkbox('비공개 공유하기'){
3809
- top 2
3810
- left 3
3811
- enabled false
3812
- on_toggled {
3813
- if @data['포스트설정']['공유하기비공개'].checked?
3814
- @data['포스트설정']['공유하기'].checked = false
3815
- end
4072
+ @data['포스트설정']['공유하기'] = checkbox('공유하기'){
4073
+ top 2
4074
+ left 2
4075
+ enabled false
4076
+ on_toggled {
4077
+ if @data['포스트설정']['공유하기'].checked?
4078
+ @data['포스트설정']['공유하기비공개'].checked = false
4079
+ end
4080
+ }
3816
4081
  }
3817
- }
4082
+ @data['포스트설정']['공유하기비공개'] = checkbox('비공개 공유하기'){
4083
+ top 2
4084
+ left 3
4085
+ enabled false
4086
+ on_toggled {
4087
+ if @data['포스트설정']['공유하기비공개'].checked?
4088
+ @data['포스트설정']['공유하기'].checked = false
4089
+ end
4090
+ }
4091
+ }
3818
4092
 
3819
4093
  }}
3820
4094
 
@@ -3916,11 +4190,13 @@ end
3916
4190
  @data['닉네임설정']['닉네임'].shift
3917
4191
  @data['이미지설정']['이미지'].shift
3918
4192
  @data['내용설정']['내용'].shift
4193
+ @data['블로그설정']['블로그'].shift
3919
4194
  @data['게시판설정']['랜덤사용'].checked = true
3920
4195
  @data['키워드설정']['랜덤사용'].checked = true
3921
4196
  @data['닉네임설정']['랜덤사용'].checked = true
3922
4197
  @data['이미지설정']['랜덤사용'].checked = true
3923
4198
  @data['내용설정']['랜덤사용'].checked = true
4199
+ @data['블로그설정']['랜덤사용'].checked = true
3924
4200
 
3925
4201
 
3926
4202
  }.show
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zon_blog_cafe_comment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-21 00:00:00.000000000 Z
11
+ date: 2025-02-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: File to Clipboard gem
14
14
  email: mymin26@naver.com