zon_blog_cafe_comment 0.0.15 → 0.0.20
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/zon_blog_cafe_comment.rb +426 -138
- 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: d7073aec9c9af6ebbf6834bc9ddde5a22c453764de9ef696326952b74577f815
|
4
|
+
data.tar.gz: d8073ae15c1c7874eb7caa5a6072fa1623b19ad9ad21a36fa77d479e4892e750
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7968b1e8712d1613fe85a94ccbb2ee20a85b69c94fdc855118176a5c3f154e2c8d2d4d9e082b6e7a1f64e251069be90b10cc46509a06779118548779117ade1a
|
7
|
+
data.tar.gz: e67ff652aaadfa72f28c423c616e3ff9959f62b0c53d7a1dc7fb3395b07c8f836bcda437e65073dc6dde07e2662fa85673d5078f1c81b02d75fdb996d5a1cd9c
|
@@ -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
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
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
|
-
|
1004
|
+
puts "이미지 자동 상입 옵션 진행!!".cyan
|
1004
1005
|
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
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
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1016
|
+
# send_keys로 파일 경로를 입력하여 이미지 업로드
|
1017
|
+
file_input.send_keys(image_path)
|
1018
|
+
sleep(2)
|
1019
|
+
|
1019
1020
|
else
|
1020
1021
|
end
|
1021
1022
|
|
@@ -1252,7 +1253,106 @@ class Naver
|
|
1252
1253
|
|
1253
1254
|
page_no = rand(1..100)
|
1254
1255
|
end
|
1255
|
-
|
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
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
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
|
1789
1882
|
end
|
1883
|
+
},
|
1884
|
+
lambda {
|
1790
1885
|
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1794
|
-
|
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
|
1908
|
+
end
|
1909
|
+
},
|
1910
|
+
lambda {
|
1911
|
+
|
1912
|
+
begin
|
1913
|
+
@driver.find_element(:xpath, '//*[@data-param="cafe_001"]').click
|
1914
|
+
sleep(2)
|
1915
|
+
|
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
|
-
|
1797
|
-
|
1798
|
-
|
1799
|
-
|
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
|
-
|
1803
|
-
|
1804
|
-
|
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
|
-
|
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
|
@@ -1996,7 +2124,7 @@ end
|
|
1996
2124
|
puts 'Tethering IP change...'
|
1997
2125
|
|
1998
2126
|
stdout, stderr, status = Open3.capture3('./adb devices')
|
1999
|
-
|
2127
|
+
|
2000
2128
|
if status.success?
|
2001
2129
|
device_id = stdout.split("\n")[1].split("\t")[0]
|
2002
2130
|
puts device_id
|
@@ -2004,43 +2132,53 @@ end
|
|
2004
2132
|
# ADB 서버 초기화
|
2005
2133
|
puts 'adb kill-server'
|
2006
2134
|
Open3.capture3('./adb kill-server')
|
2007
|
-
sleep(
|
2135
|
+
sleep(5) # ADB 서버가 안정될 시간을 충분히 주기
|
2008
2136
|
|
2009
2137
|
# 다시 ADB 서버 실행
|
2010
2138
|
puts 'adb start-server'
|
2011
2139
|
Open3.capture3('./adb start-server')
|
2012
|
-
sleep(
|
2140
|
+
sleep(5) # ADB 서버가 안정될 시간을 충분히 주기
|
2013
2141
|
|
2014
2142
|
# 데이터를 끄고 켜기
|
2015
2143
|
puts 'adb -s ' + device_id + ' shell svc data disable'
|
2016
|
-
stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
|
2017
|
-
|
2144
|
+
stdout2, stderr2, status2 = Open3.capture3('./adb -s ' + device_id + ' shell svc data disable')
|
2145
|
+
puts "stderr: #{stderr2}" unless status2.success? # 오류 출력
|
2146
|
+
sleep(5) # 네트워크가 안정될 시간을 더 줍니다.
|
2018
2147
|
puts 'adb -s ' + device_id + ' shell svc data enable'
|
2019
|
-
Open3.capture3('./adb -s '+device_id+' shell svc data enable')
|
2020
|
-
|
2148
|
+
stdout3, stderr3, status3 = Open3.capture3('./adb -s ' + device_id + ' shell svc data enable')
|
2149
|
+
puts "stderr: #{stderr3}" unless status3.success? # 오류 출력
|
2150
|
+
sleep(5) # 네트워크가 안정될 시간을 더 줍니다.
|
2021
2151
|
puts 'adb ok'
|
2022
2152
|
sleep(8)
|
2023
|
-
|
2153
|
+
|
2154
|
+
# IP 변경 확인을 위한 람다 함수
|
2024
2155
|
robot_ip = lambda do
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2156
|
+
begin
|
2157
|
+
# IP 변경 확인
|
2158
|
+
http = HTTP.get('https://www.findip.kr/')
|
2159
|
+
noko = Nokogiri::HTML(http.to_s)
|
2160
|
+
|
2161
|
+
current_ip = noko.xpath('/html/body/header/h2').text.strip
|
2162
|
+
if current_ip != @my_ip
|
2163
|
+
@my_ip = current_ip
|
2029
2164
|
puts "IP 변경됨[ #{@my_ip} ]"
|
2030
|
-
|
2031
|
-
puts @my_ip
|
2032
|
-
puts '
|
2033
|
-
sleep(
|
2034
|
-
robot_ip[]
|
2165
|
+
else
|
2166
|
+
puts "현재 IP: #{@my_ip}"
|
2167
|
+
puts 'IP 변경이 감지되지 않았습니다. 다시 시도합니다...'
|
2168
|
+
sleep(5) # 여유롭게 대기 시간 증가
|
2169
|
+
robot_ip[] # 재시도
|
2170
|
+
end
|
2171
|
+
rescue HTTP::ConnectionError => e
|
2172
|
+
puts "네트워크 오류 발생: #{e.message}. 재시도 중..."
|
2173
|
+
sleep(5) # 재시도 간 여유 시간 추가
|
2174
|
+
retry # 재시도
|
2035
2175
|
end
|
2036
|
-
|
2037
|
-
|
2038
|
-
|
2176
|
+
end
|
2177
|
+
robot_ip[] # IP 확인 시작
|
2039
2178
|
else
|
2040
|
-
|
2179
|
+
puts "adb devices 명령어 실행 실패. stderr: #{stderr}"
|
2041
2180
|
end
|
2042
|
-
|
2043
|
-
|
2181
|
+
end
|
2044
2182
|
|
2045
2183
|
|
2046
2184
|
|
@@ -2113,6 +2251,20 @@ end
|
|
2113
2251
|
end
|
2114
2252
|
end
|
2115
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
|
2116
2268
|
|
2117
2269
|
@data['table'][index][-1] = 15
|
2118
2270
|
@data['table'] << []
|
@@ -2152,7 +2304,7 @@ end
|
|
2152
2304
|
end
|
2153
2305
|
end
|
2154
2306
|
|
2155
|
-
@data['table'][index][-1] =
|
2307
|
+
@data['table'][index][-1] = 25
|
2156
2308
|
@data['table'] << []
|
2157
2309
|
@data['table'].pop
|
2158
2310
|
|
@@ -2287,6 +2439,12 @@ end
|
|
2287
2439
|
else
|
2288
2440
|
option['블로그무작위'] = 'false'
|
2289
2441
|
end
|
2442
|
+
|
2443
|
+
if @data['포스트설정']['타겟블로그'].checked?
|
2444
|
+
option['타겟블로그'] = 'true'
|
2445
|
+
else
|
2446
|
+
option['타겟블로그'] = 'false'
|
2447
|
+
end
|
2290
2448
|
@data['table'][index][-1] = 70
|
2291
2449
|
@data['table'] << []
|
2292
2450
|
@data['table'].pop
|
@@ -2374,7 +2532,7 @@ end
|
|
2374
2532
|
# 댓글 설정 수 카운트
|
2375
2533
|
counts_number = @data['table'][index][6].to_i
|
2376
2534
|
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2377
|
-
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)
|
2378
2536
|
|
2379
2537
|
|
2380
2538
|
|
@@ -2424,7 +2582,8 @@ end
|
|
2424
2582
|
@data['내용설정']['내용'] = [[false, '']]
|
2425
2583
|
@data['이미지설정'] = Hash.new
|
2426
2584
|
@data['이미지설정']['이미지'] = [[false, '']]
|
2427
|
-
|
2585
|
+
@data['블로그설정'] = Hash.new
|
2586
|
+
@data['블로그설정']['블로그'] = [[false, '']]
|
2428
2587
|
@data['포스트설정'] = Hash.new
|
2429
2588
|
@data['table'] = [[false, '', '', '', '','','']]
|
2430
2589
|
|
@@ -2583,7 +2742,15 @@ end
|
|
2583
2742
|
|
2584
2743
|
@data['닉네임설정']['닉네임'].pop
|
2585
2744
|
end
|
2745
|
+
|
2746
|
+
|
2747
|
+
while true
|
2748
|
+
if @data['블로그설정']['블로그'].length == 0
|
2749
|
+
break
|
2750
|
+
end
|
2586
2751
|
|
2752
|
+
@data['블로그설정']['블로그'].pop
|
2753
|
+
end
|
2587
2754
|
|
2588
2755
|
}
|
2589
2756
|
}
|
@@ -3002,6 +3169,106 @@ end
|
|
3002
3169
|
|
3003
3170
|
cell_rows @data['게시판설정']['게시판']
|
3004
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
|
+
|
3005
3272
|
|
3006
3273
|
}
|
3007
3274
|
vertical_separator{
|
@@ -3598,6 +3865,7 @@ end
|
|
3598
3865
|
@data['포스트설정']['블로그키워드검색최신순'].enabled = false # '내용투명' 활성화
|
3599
3866
|
@data['포스트설정']['블로그키워드검색인기순'].enabled = false # '내용투명' 활성화
|
3600
3867
|
@data['포스트설정']['블로그무작위'].enabled = false # '내용투명' 활성화
|
3868
|
+
@data['포스트설정']['타겟블로그'].enabled = false # '내용투명' 활성화
|
3601
3869
|
@data['포스트설정']['이웃추가'].enabled = false # '내용투명' 활성화
|
3602
3870
|
@data['포스트설정']['서로이웃추가'].enabled = false # '내용투명' 활성화
|
3603
3871
|
@data['포스트설정']['공유하기'].enabled = false # '내용투명' 활성화
|
@@ -3606,6 +3874,7 @@ end
|
|
3606
3874
|
@data['포스트설정']['블로그키워드검색최신순'].checked = false
|
3607
3875
|
@data['포스트설정']['블로그키워드검색인기순'].checked = false
|
3608
3876
|
@data['포스트설정']['블로그무작위'].checked = false
|
3877
|
+
@data['포스트설정']['타겟블로그'].checked = false
|
3609
3878
|
@data['포스트설정']['이웃추가'].checked = false
|
3610
3879
|
@data['포스트설정']['서로이웃추가'].checked = false
|
3611
3880
|
@data['포스트설정']['공유하기'].checked = false
|
@@ -3688,6 +3957,7 @@ end
|
|
3688
3957
|
@data['포스트설정']['블로그키워드검색최신순'].enabled = true # '내용투명' 활성화
|
3689
3958
|
@data['포스트설정']['블로그키워드검색인기순'].enabled = true # '내용투명' 활성화
|
3690
3959
|
@data['포스트설정']['블로그무작위'].enabled = true # '내용투명' 활성화
|
3960
|
+
@data['포스트설정']['타겟블로그'].enabled = true # '내용투명' 활성화
|
3691
3961
|
@data['포스트설정']['이웃추가'].enabled = true # '내용투명' 활성화
|
3692
3962
|
@data['포스트설정']['서로이웃추가'].enabled = true # '내용투명' 활성화
|
3693
3963
|
@data['포스트설정']['공유하기'].enabled = true # '내용투명' 활성화
|
@@ -3708,6 +3978,7 @@ end
|
|
3708
3978
|
@data['포스트설정']['블로그키워드검색최신순'].enabled = false # '내용투명' 활성화
|
3709
3979
|
@data['포스트설정']['블로그키워드검색인기순'].enabled = false # '내용투명' 활성화
|
3710
3980
|
@data['포스트설정']['블로그무작위'].enabled = false # '내용투명' 활성화
|
3981
|
+
@data['포스트설정']['타겟블로그'].enabled = false # '내용투명' 활성화
|
3711
3982
|
@data['포스트설정']['이웃추가'].enabled = false # '내용투명' 활성화
|
3712
3983
|
@data['포스트설정']['서로이웃추가'].enabled = false # '내용투명' 활성화
|
3713
3984
|
@data['포스트설정']['공유하기'].enabled = false # '내용투명' 활성화
|
@@ -3716,6 +3987,7 @@ end
|
|
3716
3987
|
@data['포스트설정']['블로그키워드검색최신순'].checked = false
|
3717
3988
|
@data['포스트설정']['블로그키워드검색인기순'].checked = false
|
3718
3989
|
@data['포스트설정']['블로그무작위'].checked = false
|
3990
|
+
@data['포스트설정']['타겟블로그'].checked = false
|
3719
3991
|
@data['포스트설정']['이웃추가'].checked = false
|
3720
3992
|
@data['포스트설정']['서로이웃추가'].checked = false
|
3721
3993
|
@data['포스트설정']['공유하기'].checked = false
|
@@ -3734,6 +4006,7 @@ end
|
|
3734
4006
|
if @data['포스트설정']['블로그키워드검색최신순'].checked?
|
3735
4007
|
@data['포스트설정']['블로그키워드검색인기순'].checked = false
|
3736
4008
|
@data['포스트설정']['블로그무작위'].checked = false
|
4009
|
+
@data['포스트설정']['타겟블로그'].checked = false
|
3737
4010
|
end
|
3738
4011
|
}
|
3739
4012
|
}
|
@@ -3745,12 +4018,13 @@ end
|
|
3745
4018
|
if @data['포스트설정']['블로그키워드검색인기순'].checked?
|
3746
4019
|
@data['포스트설정']['블로그키워드검색최신순'].checked = false
|
3747
4020
|
@data['포스트설정']['블로그무작위'].checked = false
|
4021
|
+
@data['포스트설정']['타겟블로그'].checked = false
|
3748
4022
|
end
|
3749
4023
|
}
|
3750
4024
|
}
|
3751
4025
|
|
3752
4026
|
|
3753
|
-
@data['포스트설정']['블로그무작위'] = checkbox('블로그 랜덤 무작위 설정'){
|
4027
|
+
@data['포스트설정']['블로그무작위'] = checkbox('블로그 랜덤 무작위 설정 '){
|
3754
4028
|
top 1
|
3755
4029
|
left 3
|
3756
4030
|
enabled false
|
@@ -3758,11 +4032,23 @@ end
|
|
3758
4032
|
if @data['포스트설정']['블로그무작위'].checked?
|
3759
4033
|
@data['포스트설정']['블로그키워드검색최신순'].checked = false
|
3760
4034
|
@data['포스트설정']['블로그키워드검색인기순'].checked = false
|
4035
|
+
@data['포스트설정']['타겟블로그'].checked = false
|
3761
4036
|
end
|
3762
4037
|
}
|
3763
4038
|
}
|
3764
|
-
|
3765
|
-
|
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
|
+
|
3766
4052
|
@data['포스트설정']['이웃추가'] = checkbox('이웃추가'){
|
3767
4053
|
top 2
|
3768
4054
|
left 0
|
@@ -3783,26 +4069,26 @@ end
|
|
3783
4069
|
end
|
3784
4070
|
}
|
3785
4071
|
}
|
3786
|
-
|
3787
|
-
|
3788
|
-
|
3789
|
-
|
3790
|
-
|
3791
|
-
|
3792
|
-
|
3793
|
-
|
3794
|
-
|
3795
|
-
}
|
3796
|
-
@data['포스트설정']['공유하기비공개'] = checkbox('비공개 공유하기'){
|
3797
|
-
top 2
|
3798
|
-
left 3
|
3799
|
-
enabled false
|
3800
|
-
on_toggled {
|
3801
|
-
if @data['포스트설정']['공유하기비공개'].checked?
|
3802
|
-
@data['포스트설정']['공유하기'].checked = false
|
3803
|
-
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
|
+
}
|
3804
4081
|
}
|
3805
|
-
|
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
|
+
}
|
3806
4092
|
|
3807
4093
|
}}
|
3808
4094
|
|
@@ -3904,11 +4190,13 @@ end
|
|
3904
4190
|
@data['닉네임설정']['닉네임'].shift
|
3905
4191
|
@data['이미지설정']['이미지'].shift
|
3906
4192
|
@data['내용설정']['내용'].shift
|
4193
|
+
@data['블로그설정']['블로그'].shift
|
3907
4194
|
@data['게시판설정']['랜덤사용'].checked = true
|
3908
4195
|
@data['키워드설정']['랜덤사용'].checked = true
|
3909
4196
|
@data['닉네임설정']['랜덤사용'].checked = true
|
3910
4197
|
@data['이미지설정']['랜덤사용'].checked = true
|
3911
4198
|
@data['내용설정']['랜덤사용'].checked = true
|
4199
|
+
@data['블로그설정']['랜덤사용'].checked = true
|
3912
4200
|
|
3913
4201
|
|
3914
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.
|
4
|
+
version: 0.0.20
|
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-
|
11
|
+
date: 2025-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|