duo_blog_cafe_comment 0.0.55 → 0.0.57
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/duo_blog_cafe_comment.rb +214 -14
- 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: 1c1e81739e7324d3503fea9dfc7def1b11a66ac112ba85090d30bd2c8af5b593
|
4
|
+
data.tar.gz: 14e90041ca0f6c56ff97f23a749765a23e70e7a1dad23828a7f8463eccaca645
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0152e31341db41ee95139ab80efc8ae7a41b8b12c424216cf2c67dbd2d537f613eaca95df2354d685c7db418c6c9df4cc60f76b67bcf9175e97c8abdbdc7757c
|
7
|
+
data.tar.gz: 8c8a0b6ac2a36dfa4607d29635816e9a56e29f7fddb3147539266e2299bd6c06aaae9b40282fa4c86e43c542dcc0c22757fa2ad93708cde72b58061e40ba9b8c
|
@@ -22,7 +22,8 @@ include Glimmer
|
|
22
22
|
|
23
23
|
|
24
24
|
class Naver
|
25
|
-
def initialize
|
25
|
+
def initialize(data)
|
26
|
+
@data = data
|
26
27
|
@seed = 1
|
27
28
|
end
|
28
29
|
|
@@ -274,12 +275,13 @@ class Naver
|
|
274
275
|
|
275
276
|
|
276
277
|
|
277
|
-
def update(content,board_url,blog_url,nickname,image,option,counts_number,keyword,api_key)
|
278
|
+
def update(content,board_url,blog_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
|
278
279
|
@board_url = board_url
|
279
280
|
@keyword = keyword
|
280
281
|
@content = content
|
281
282
|
@api_key = api_key
|
282
283
|
@blog_url = blog_url
|
284
|
+
@sleep_delay = sleep_delay
|
283
285
|
if option['카페사용모드'] == 'true'
|
284
286
|
|
285
287
|
|
@@ -490,6 +492,42 @@ class Naver
|
|
490
492
|
sleep(1)
|
491
493
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
492
494
|
|
495
|
+
sleep(1)
|
496
|
+
puts "게시글 읽는 모션 진행".yellow
|
497
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
498
|
+
sleep(1)
|
499
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
500
|
+
sleep(1)
|
501
|
+
|
502
|
+
content_soon = 0
|
503
|
+
# 💬 content 설정 (여기 추가!)
|
504
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
505
|
+
content = ''
|
506
|
+
else
|
507
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
508
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
509
|
+
else
|
510
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
511
|
+
content_soon += 1
|
512
|
+
if content_soon >= @data['내용설정']['내용'].length
|
513
|
+
content_soon = 0
|
514
|
+
end
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
518
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
519
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
520
|
+
change_memory = {}
|
521
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
522
|
+
change_memory[key] = v.sample
|
523
|
+
end
|
524
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
525
|
+
if content.include?(key)
|
526
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
527
|
+
else
|
528
|
+
end
|
529
|
+
end
|
530
|
+
end
|
493
531
|
|
494
532
|
if option['좋아요'] == 'true'
|
495
533
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
@@ -570,6 +608,7 @@ class Naver
|
|
570
608
|
sleep(1)
|
571
609
|
else
|
572
610
|
begin
|
611
|
+
puts (content)
|
573
612
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
574
613
|
sleep(1)
|
575
614
|
rescue
|
@@ -688,6 +727,18 @@ class Naver
|
|
688
727
|
end
|
689
728
|
end
|
690
729
|
@driver.switch_to.default_content() # 아이프레임 해제
|
730
|
+
def sleep_with_progress(sleep_delay)
|
731
|
+
print "[설정 딜레이 진행 중] "
|
732
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
733
|
+
steps.times do
|
734
|
+
print "."
|
735
|
+
STDOUT.flush
|
736
|
+
sleep(1)
|
737
|
+
end
|
738
|
+
puts "\n"
|
739
|
+
end
|
740
|
+
|
741
|
+
sleep_with_progress(sleep_delay)
|
691
742
|
rescue => e
|
692
743
|
puts "Error: #{e.message}"
|
693
744
|
end
|
@@ -707,6 +758,43 @@ class Naver
|
|
707
758
|
wait.until { @driver.find_element(:xpath, '//*[@id="cafe_main"]') } # 아이프레임 선택
|
708
759
|
sleep(1)
|
709
760
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
761
|
+
|
762
|
+
sleep(1)
|
763
|
+
puts "게시글 읽는 모션 진행".yellow
|
764
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
765
|
+
sleep(1)
|
766
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
767
|
+
sleep(1)
|
768
|
+
|
769
|
+
content_soon = 0
|
770
|
+
# 💬 content 설정 (여기 추가!)
|
771
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
772
|
+
content = ''
|
773
|
+
else
|
774
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
775
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
776
|
+
else
|
777
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
778
|
+
content_soon += 1
|
779
|
+
if content_soon >= @data['내용설정']['내용'].length
|
780
|
+
content_soon = 0
|
781
|
+
end
|
782
|
+
end
|
783
|
+
end
|
784
|
+
|
785
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
786
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
787
|
+
change_memory = {}
|
788
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
789
|
+
change_memory[key] = v.sample
|
790
|
+
end
|
791
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
792
|
+
if content.include?(key)
|
793
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
794
|
+
else
|
795
|
+
end
|
796
|
+
end
|
797
|
+
end
|
710
798
|
|
711
799
|
if option['좋아요'] == 'true'
|
712
800
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
@@ -787,6 +875,7 @@ class Naver
|
|
787
875
|
sleep(1)
|
788
876
|
else
|
789
877
|
begin
|
878
|
+
puts (content)
|
790
879
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
791
880
|
sleep(1)
|
792
881
|
rescue
|
@@ -907,6 +996,17 @@ class Naver
|
|
907
996
|
|
908
997
|
end
|
909
998
|
@driver.switch_to.default_content() # 아이프레임 해제
|
999
|
+
def sleep_with_progress(sleep_delay)
|
1000
|
+
print "[설정 딜레이 진행 중] "
|
1001
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
1002
|
+
steps.times do
|
1003
|
+
print "."
|
1004
|
+
STDOUT.flush
|
1005
|
+
sleep(1)
|
1006
|
+
end
|
1007
|
+
puts "\n"
|
1008
|
+
end
|
1009
|
+
sleep_with_progress(sleep_delay)
|
910
1010
|
rescue => e
|
911
1011
|
puts "Error: #{e.message}"
|
912
1012
|
end
|
@@ -1008,6 +1108,42 @@ class Naver
|
|
1008
1108
|
sleep(1)
|
1009
1109
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
1010
1110
|
|
1111
|
+
sleep(1)
|
1112
|
+
puts "게시글 읽는 모션 진행".yellow
|
1113
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
1114
|
+
sleep(1)
|
1115
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
1116
|
+
sleep(1)
|
1117
|
+
|
1118
|
+
content_soon = 0
|
1119
|
+
# 💬 content 설정 (여기 추가!)
|
1120
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
1121
|
+
content = ''
|
1122
|
+
else
|
1123
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
1124
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
1125
|
+
else
|
1126
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
1127
|
+
content_soon += 1
|
1128
|
+
if content_soon >= @data['내용설정']['내용'].length
|
1129
|
+
content_soon = 0
|
1130
|
+
end
|
1131
|
+
end
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
1135
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
1136
|
+
change_memory = {}
|
1137
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
1138
|
+
change_memory[key] = v.sample
|
1139
|
+
end
|
1140
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
1141
|
+
if content.include?(key)
|
1142
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
1143
|
+
else
|
1144
|
+
end
|
1145
|
+
end
|
1146
|
+
end
|
1011
1147
|
|
1012
1148
|
if option['좋아요'] == 'true'
|
1013
1149
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
@@ -1088,6 +1224,7 @@ class Naver
|
|
1088
1224
|
sleep(1)
|
1089
1225
|
else
|
1090
1226
|
begin
|
1227
|
+
puts (content)
|
1091
1228
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
1092
1229
|
sleep(1)
|
1093
1230
|
rescue
|
@@ -1208,6 +1345,19 @@ class Naver
|
|
1208
1345
|
|
1209
1346
|
end
|
1210
1347
|
@driver.switch_to.default_content() # 아이프레임 해제
|
1348
|
+
def sleep_with_progress(sleep_delay)
|
1349
|
+
print "[설정 딜레이 진행 중] "
|
1350
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
1351
|
+
steps.times do
|
1352
|
+
print "."
|
1353
|
+
STDOUT.flush
|
1354
|
+
sleep(1)
|
1355
|
+
end
|
1356
|
+
puts "\n"
|
1357
|
+
end
|
1358
|
+
sleep_with_progress(sleep_delay)
|
1359
|
+
|
1360
|
+
|
1211
1361
|
rescue => e
|
1212
1362
|
puts "Error: #{e.message}"
|
1213
1363
|
end
|
@@ -1579,7 +1729,7 @@ class Naver
|
|
1579
1729
|
end
|
1580
1730
|
|
1581
1731
|
@driver.switch_to.default_content
|
1582
|
-
|
1732
|
+
end
|
1583
1733
|
|
1584
1734
|
collected_urls.each do |url|
|
1585
1735
|
# 각 post-url로 이동
|
@@ -1591,8 +1741,16 @@ class Naver
|
|
1591
1741
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]')) # 아이프레임 선택
|
1592
1742
|
sleep(1)
|
1593
1743
|
|
1744
|
+
sleep(1)
|
1745
|
+
puts "게시글 읽는 모션 진행".yellow
|
1746
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
1747
|
+
sleep(1)
|
1748
|
+
@driver.action.send_keys(:page_down).perform #스크롤 내리기
|
1749
|
+
sleep(1)
|
1750
|
+
|
1594
1751
|
if option['이웃추가'] == 'true'
|
1595
1752
|
begin
|
1753
|
+
sleep(1)
|
1596
1754
|
begin
|
1597
1755
|
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
1598
1756
|
#요소가 나타날 때까지 10초 동안 기다립니다.
|
@@ -1667,7 +1825,7 @@ class Naver
|
|
1667
1825
|
|
1668
1826
|
elsif option['서로이웃추가'] == 'true'
|
1669
1827
|
begin
|
1670
|
-
|
1828
|
+
sleep(1)
|
1671
1829
|
begin
|
1672
1830
|
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
1673
1831
|
#요소가 나타날 때까지 10초 동안 기다립니다.
|
@@ -1748,7 +1906,7 @@ class Naver
|
|
1748
1906
|
|
1749
1907
|
if option['공유하기'] == 'true'
|
1750
1908
|
begin
|
1751
|
-
|
1909
|
+
sleep(1)
|
1752
1910
|
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
1753
1911
|
#요소가 나타날 때까지 10초 동안 기다립니다.
|
1754
1912
|
wait.until { @driver.find_element(:xpath, '//*[@class="_spi_blog spi_btn_blog"]') }
|
@@ -1840,7 +1998,7 @@ class Naver
|
|
1840
1998
|
|
1841
1999
|
elsif option['공유하기비공개'] == 'true'
|
1842
2000
|
begin
|
1843
|
-
|
2001
|
+
sleep(1)
|
1844
2002
|
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
1845
2003
|
#요소가 나타날 때까지 10초 동안 기다립니다.
|
1846
2004
|
wait.until { @driver.find_element(:xpath, '//*[@class="_spi_blog spi_btn_blog"]') }
|
@@ -1937,7 +2095,7 @@ class Naver
|
|
1937
2095
|
|
1938
2096
|
if option['좋아요'] == 'true'
|
1939
2097
|
begin
|
1940
|
-
|
2098
|
+
sleep(1)
|
1941
2099
|
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
1942
2100
|
wait.until { @driver.find_element(:xpath, '//*[@class="u_ico _icon pcol3"]') }
|
1943
2101
|
|
@@ -1978,6 +2136,36 @@ class Naver
|
|
1978
2136
|
else
|
1979
2137
|
end
|
1980
2138
|
|
2139
|
+
content_soon = 0
|
2140
|
+
# 💬 content 설정 (여기 추가!)
|
2141
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
2142
|
+
content = ''
|
2143
|
+
else
|
2144
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
2145
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
2146
|
+
else
|
2147
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
2148
|
+
content_soon += 1
|
2149
|
+
if content_soon >= @data['내용설정']['내용'].length
|
2150
|
+
content_soon = 0
|
2151
|
+
end
|
2152
|
+
end
|
2153
|
+
end
|
2154
|
+
|
2155
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
2156
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
2157
|
+
change_memory = {}
|
2158
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
2159
|
+
change_memory[key] = v.sample
|
2160
|
+
end
|
2161
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
2162
|
+
if content.include?(key)
|
2163
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
2164
|
+
else
|
2165
|
+
end
|
2166
|
+
end
|
2167
|
+
end
|
2168
|
+
|
1981
2169
|
begin #댓글 작업 >> 시작
|
1982
2170
|
# 댓글 쓰기 버튼 클릭
|
1983
2171
|
begin
|
@@ -2201,7 +2389,6 @@ class Naver
|
|
2201
2389
|
else
|
2202
2390
|
# 여기에 다른 코드 추가 가능
|
2203
2391
|
end
|
2204
|
-
|
2205
2392
|
begin
|
2206
2393
|
element = @driver.find_element(:xpath, '//*[@data-uiselector="writeButton"]')
|
2207
2394
|
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element) # 크롤 이동
|
@@ -2273,8 +2460,20 @@ class Naver
|
|
2273
2460
|
ff.close()
|
2274
2461
|
puts '-[√] 로그 파일 생성 완료.......'.yellow
|
2275
2462
|
end
|
2276
|
-
end
|
2277
|
-
|
2463
|
+
end
|
2464
|
+
|
2465
|
+
def sleep_with_progress(sleep_delay)
|
2466
|
+
print "[설정 딜레이 진행 중] "
|
2467
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
2468
|
+
steps.times do
|
2469
|
+
print "."
|
2470
|
+
STDOUT.flush
|
2471
|
+
sleep(1)
|
2472
|
+
end
|
2473
|
+
puts "\n"
|
2474
|
+
end
|
2475
|
+
sleep_with_progress(sleep_delay)
|
2476
|
+
|
2278
2477
|
rescue
|
2279
2478
|
|
2280
2479
|
end #댓글 작업 >> 끝
|
@@ -2312,7 +2511,7 @@ class Naver
|
|
2312
2511
|
end
|
2313
2512
|
end
|
2314
2513
|
|
2315
|
-
class Wordpress
|
2514
|
+
class Wordpress
|
2316
2515
|
include Glimmer
|
2317
2516
|
|
2318
2517
|
def login_check2(user_id, user_pw)
|
@@ -2659,7 +2858,7 @@ class Wordpress
|
|
2659
2858
|
proxy = table[3].to_s
|
2660
2859
|
user_id = table[1].to_s
|
2661
2860
|
user_pw = table[2].to_s
|
2662
|
-
naver = Naver.new
|
2861
|
+
naver = Naver.new(@data)
|
2663
2862
|
@data['table'][index][-1] = 30
|
2664
2863
|
@data['table'] << []
|
2665
2864
|
@data['table'].pop
|
@@ -2882,7 +3081,8 @@ class Wordpress
|
|
2882
3081
|
# 댓글 설정 수 카운트
|
2883
3082
|
counts_number = @data['table'][index][6].to_i
|
2884
3083
|
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2885
|
-
|
3084
|
+
sleep_delay = @data['table'][index][5].to_i
|
3085
|
+
naver.update(content,board_url,blog_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
|
2886
3086
|
|
2887
3087
|
|
2888
3088
|
|
@@ -2891,7 +3091,7 @@ class Wordpress
|
|
2891
3091
|
@data['table'][index][-1] = 100
|
2892
3092
|
@data['table'] << []
|
2893
3093
|
@data['table'].pop
|
2894
|
-
sleep(@data['table'][index][5].to_i)
|
3094
|
+
#sleep(@data['table'][index][5].to_i)
|
2895
3095
|
end
|
2896
3096
|
rescue => exception
|
2897
3097
|
puts exception
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duo_blog_cafe_comment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.57
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-06-12 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: File to Clipboard gem
|
13
13
|
email: mymin26@naver.com
|