duo_cafe_comment 0.0.35 → 0.0.37
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_cafe_comment.rb +153 -19
- 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: 67b74f8adb28747ea69dc9d12621e0bebf3d58289b08321c33da66d132306d98
|
4
|
+
data.tar.gz: d3c7a576cdd74eff93c5b0fce1248cf1829d4c20279f6712508dd6cb1c6e6fe4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61318dfbc068e9d62ecb41a1e4f42d53411af9f46fe973e94a87cb3f6704d40c5d9bc880d3a9d9899bca208266b5ebe68b392b6a3558dc4859b44de44a43f5d2
|
7
|
+
data.tar.gz: 11592ec23ca0baca7bef3dd8ff537848fd3d4824a458949941ed7e30e85539fbd35d3f904c7cf875ae0e5c232cb982968ef832af2d17b92a13086dee7b8d4cbd
|
data/lib/duo_cafe_comment.rb
CHANGED
@@ -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
|
|
@@ -272,14 +273,14 @@ class Naver
|
|
272
273
|
end
|
273
274
|
end
|
274
275
|
|
276
|
+
|
275
277
|
|
276
|
-
|
277
|
-
def update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
|
278
|
+
def update(content,board_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
|
+
@sleep_delay = sleep_delay
|
283
284
|
|
284
285
|
|
285
286
|
@driver.get(board_url)
|
@@ -491,7 +492,36 @@ class Naver
|
|
491
492
|
wait.until { @driver.find_element(:xpath, '//*[@id="cafe_main"]') } # 아이프레임 선택
|
492
493
|
sleep(1)
|
493
494
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
494
|
-
|
495
|
+
|
496
|
+
content_soon = 0
|
497
|
+
# 💬 content 설정 (여기 추가!)
|
498
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
499
|
+
content = ''
|
500
|
+
else
|
501
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
502
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
503
|
+
else
|
504
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
505
|
+
content_soon += 1
|
506
|
+
if content_soon >= @data['내용설정']['내용'].length
|
507
|
+
content_soon = 0
|
508
|
+
end
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
513
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
514
|
+
change_memory = {}
|
515
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
516
|
+
change_memory[key] = v.sample
|
517
|
+
end
|
518
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
519
|
+
if content.include?(key)
|
520
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
521
|
+
else
|
522
|
+
end
|
523
|
+
end
|
524
|
+
end
|
495
525
|
|
496
526
|
if option['좋아요'] == 'true'
|
497
527
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
@@ -515,7 +545,7 @@ class Naver
|
|
515
545
|
else
|
516
546
|
# 좋아요를 아직 누르지 않은 상태일 경우 클릭
|
517
547
|
@driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
|
518
|
-
sleep(
|
548
|
+
sleep(2)
|
519
549
|
end
|
520
550
|
else
|
521
551
|
end
|
@@ -572,6 +602,7 @@ class Naver
|
|
572
602
|
sleep(1)
|
573
603
|
else
|
574
604
|
begin
|
605
|
+
puts (content)
|
575
606
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
576
607
|
sleep(1)
|
577
608
|
rescue
|
@@ -690,6 +721,20 @@ class Naver
|
|
690
721
|
end
|
691
722
|
end
|
692
723
|
@driver.switch_to.default_content() # 아이프레임 해제
|
724
|
+
def sleep_with_progress(sleep_delay)
|
725
|
+
print "[설정 딜레이 진행 중] "
|
726
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
727
|
+
steps.times do
|
728
|
+
print "."
|
729
|
+
STDOUT.flush
|
730
|
+
sleep(1)
|
731
|
+
end
|
732
|
+
puts "\n"
|
733
|
+
end
|
734
|
+
|
735
|
+
sleep_with_progress(sleep_delay)
|
736
|
+
|
737
|
+
|
693
738
|
rescue => e
|
694
739
|
puts "Error: #{e.message}"
|
695
740
|
end
|
@@ -710,6 +755,37 @@ class Naver
|
|
710
755
|
sleep(1)
|
711
756
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
712
757
|
|
758
|
+
content_soon = 0
|
759
|
+
# 💬 content 설정 (여기 추가!)
|
760
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
761
|
+
content = ''
|
762
|
+
else
|
763
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
764
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
765
|
+
else
|
766
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
767
|
+
content_soon += 1
|
768
|
+
if content_soon >= @data['내용설정']['내용'].length
|
769
|
+
content_soon = 0
|
770
|
+
end
|
771
|
+
end
|
772
|
+
end
|
773
|
+
|
774
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
775
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
776
|
+
change_memory = {}
|
777
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
778
|
+
change_memory[key] = v.sample
|
779
|
+
end
|
780
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
781
|
+
if content.include?(key)
|
782
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
783
|
+
else
|
784
|
+
end
|
785
|
+
end
|
786
|
+
end
|
787
|
+
|
788
|
+
|
713
789
|
if option['좋아요'] == 'true'
|
714
790
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
715
791
|
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
@@ -732,7 +808,7 @@ class Naver
|
|
732
808
|
else
|
733
809
|
# 좋아요를 아직 누르지 않은 상태일 경우 클릭
|
734
810
|
@driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
|
735
|
-
sleep(
|
811
|
+
sleep(2)
|
736
812
|
end
|
737
813
|
else
|
738
814
|
end
|
@@ -789,6 +865,7 @@ class Naver
|
|
789
865
|
sleep(1)
|
790
866
|
else
|
791
867
|
begin
|
868
|
+
puts (content)
|
792
869
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
793
870
|
sleep(1)
|
794
871
|
rescue
|
@@ -906,9 +983,21 @@ class Naver
|
|
906
983
|
puts '-[√] 로그 파일 생성 완료.......'.yellow
|
907
984
|
end
|
908
985
|
end
|
909
|
-
|
910
|
-
end
|
986
|
+
end
|
911
987
|
@driver.switch_to.default_content() # 아이프레임 해제
|
988
|
+
def sleep_with_progress(sleep_delay)
|
989
|
+
print "[설정 딜레이 진행 중] "
|
990
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
991
|
+
steps.times do
|
992
|
+
print "."
|
993
|
+
STDOUT.flush
|
994
|
+
sleep(1)
|
995
|
+
end
|
996
|
+
puts "\n"
|
997
|
+
end
|
998
|
+
sleep_with_progress(sleep_delay)
|
999
|
+
|
1000
|
+
|
912
1001
|
rescue => e
|
913
1002
|
puts "Error: #{e.message}"
|
914
1003
|
end
|
@@ -1014,6 +1103,35 @@ class Naver
|
|
1014
1103
|
sleep(1)
|
1015
1104
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
|
1016
1105
|
|
1106
|
+
content_soon = 0
|
1107
|
+
# 💬 content 설정 (여기 추가!)
|
1108
|
+
if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
|
1109
|
+
content = ''
|
1110
|
+
else
|
1111
|
+
if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
|
1112
|
+
content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
|
1113
|
+
else
|
1114
|
+
content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
|
1115
|
+
content_soon += 1
|
1116
|
+
if content_soon >= @data['내용설정']['내용'].length
|
1117
|
+
content_soon = 0
|
1118
|
+
end
|
1119
|
+
end
|
1120
|
+
end
|
1121
|
+
|
1122
|
+
# 디엠 자동 변경이 체크된 경우 content를 변환
|
1123
|
+
if @data['포스트설정']['내용자동변경'].checked?
|
1124
|
+
change_memory = {}
|
1125
|
+
@data['포스트설정']['내용자동변경값'].each do |key, v|
|
1126
|
+
change_memory[key] = v.sample
|
1127
|
+
end
|
1128
|
+
@data['포스트설정']['내용자동변경값'].each do |key, _|
|
1129
|
+
if content.include?(key)
|
1130
|
+
content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
|
1131
|
+
else
|
1132
|
+
end
|
1133
|
+
end
|
1134
|
+
end
|
1017
1135
|
|
1018
1136
|
if option['좋아요'] == 'true'
|
1019
1137
|
puts "좋아요 클릭 옵션 진행!!".cyan
|
@@ -1037,13 +1155,15 @@ class Naver
|
|
1037
1155
|
else
|
1038
1156
|
# 좋아요를 아직 누르지 않은 상태일 경우 클릭
|
1039
1157
|
@driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
|
1040
|
-
sleep(
|
1158
|
+
sleep(2)
|
1041
1159
|
end
|
1042
1160
|
else
|
1043
1161
|
end
|
1044
1162
|
|
1163
|
+
|
1164
|
+
|
1045
1165
|
|
1046
|
-
|
1166
|
+
begin
|
1047
1167
|
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
1048
1168
|
wait.until { @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]') }
|
1049
1169
|
|
@@ -1094,6 +1214,7 @@ class Naver
|
|
1094
1214
|
sleep(1)
|
1095
1215
|
else
|
1096
1216
|
begin
|
1217
|
+
puts (content)
|
1097
1218
|
@driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
|
1098
1219
|
sleep(1)
|
1099
1220
|
rescue
|
@@ -1211,13 +1332,25 @@ class Naver
|
|
1211
1332
|
puts '-[√] 로그 파일 생성 완료.......'.yellow
|
1212
1333
|
end
|
1213
1334
|
end
|
1214
|
-
|
1215
1335
|
end
|
1216
1336
|
@driver.switch_to.default_content() # 아이프레임 해제
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1337
|
+
def sleep_with_progress(sleep_delay)
|
1338
|
+
print "[설정 딜레이 진행 중] "
|
1339
|
+
steps = (sleep_delay.to_f / 0.5).to_i
|
1340
|
+
steps.times do
|
1341
|
+
print "."
|
1342
|
+
STDOUT.flush
|
1343
|
+
sleep(1)
|
1344
|
+
end
|
1345
|
+
puts "\n"
|
1220
1346
|
end
|
1347
|
+
sleep_with_progress(sleep_delay)
|
1348
|
+
|
1349
|
+
|
1350
|
+
rescue => e
|
1351
|
+
puts "Error: #{e.message}"
|
1352
|
+
end
|
1353
|
+
end
|
1221
1354
|
else
|
1222
1355
|
end
|
1223
1356
|
|
@@ -1249,7 +1382,7 @@ class Naver
|
|
1249
1382
|
end
|
1250
1383
|
end
|
1251
1384
|
|
1252
|
-
class Wordpress
|
1385
|
+
class Wordpress
|
1253
1386
|
include Glimmer
|
1254
1387
|
|
1255
1388
|
def login_check2(user_id, user_pw)
|
@@ -1575,7 +1708,7 @@ class Wordpress
|
|
1575
1708
|
proxy = table[3].to_s
|
1576
1709
|
user_id = table[1].to_s
|
1577
1710
|
user_pw = table[2].to_s
|
1578
|
-
naver = Naver.new
|
1711
|
+
naver = Naver.new(@data)
|
1579
1712
|
@data['table'][index][-1] = 30
|
1580
1713
|
@data['table'] << []
|
1581
1714
|
@data['table'].pop
|
@@ -1719,7 +1852,8 @@ class Wordpress
|
|
1719
1852
|
# 댓글 설정 수 카운트
|
1720
1853
|
counts_number = @data['table'][index][5].to_i
|
1721
1854
|
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
1722
|
-
|
1855
|
+
sleep_delay = @data['table'][index][4].to_i
|
1856
|
+
naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
|
1723
1857
|
|
1724
1858
|
|
1725
1859
|
|
@@ -1728,7 +1862,7 @@ class Wordpress
|
|
1728
1862
|
@data['table'][index][-1] = 100
|
1729
1863
|
@data['table'] << []
|
1730
1864
|
@data['table'].pop
|
1731
|
-
sleep(@data['table'][index][4].to_i)
|
1865
|
+
#sleep(@data['table'][index][4].to_i)
|
1732
1866
|
end
|
1733
1867
|
rescue => exception
|
1734
1868
|
puts exception
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duo_cafe_comment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.37
|
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
|