duo_cafe_comment 0.0.35 → 0.0.39

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/duo_cafe_comment.rb +146 -18
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ea879aea35b9b0ff448b8e7278eeaec2dedaf3fdfa5aa6fff814519d8805bd1
4
- data.tar.gz: fb6154ded6d3ee29fe452b20e2bd987c7815395841586e21655912b5b646a8f6
3
+ metadata.gz: 1a24d1e525f8607dc8f86c434ceb35acdd89619d47772c64bd742ccd08ccf03f
4
+ data.tar.gz: dc4778b94eb8ef61d7e515bd316390fe94c4df3982df9bcfdf4557621d64017d
5
5
  SHA512:
6
- metadata.gz: 282fba90ff53111720a4316a7418b083096438b9c791b67edfec77c5c76feaa6a2dbbd8c6f3f3ed54c218f751ea6ddeb14b82a3bb7504029331ad49242ec0264
7
- data.tar.gz: 721abcd54186645468c4431fda7ed45f74070721adc600b7c3155ba82dc3659f339e5a7ae179bf583f9ce8307ffce14d796bd30a261e7964ef9db5d3900af024
6
+ metadata.gz: 1628a495cd689fd0f9d9c245bfaa15dff08f8a4d563ae30de013c39700ac95b2e8cd719bbd8df5815c10e74bb296ea39bc731e831633b6a9252a064a403b2210
7
+ data.tar.gz: a8b0325afb932dbd4df01754da4734a66153f54177c113deff00d10b35129d01e13a5486fca3830c28125a27a7186028229bb18de4e33fef119aab65fcc5e059
@@ -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,34 @@ 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"]')) # 아이프레임 선택
495
+
496
+ @content_soon ||= 0 # 초기 한 번만 0으로 세팅
494
497
 
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
+ @content_soon = 0 if @content_soon >= @data['내용설정']['내용'].length
507
+ end
508
+ end
509
+
510
+ # 디엠 자동 변경이 체크된 경우 content를 변환
511
+ if @data['포스트설정']['내용자동변경'].checked?
512
+ change_memory = {}
513
+ @data['포스트설정']['내용자동변경값'].each do |key, v|
514
+ change_memory[key] = v.sample
515
+ end
516
+ @data['포스트설정']['내용자동변경값'].each do |key, _|
517
+ if content.include?(key)
518
+ content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
519
+ else
520
+ end
521
+ end
522
+ end
495
523
 
496
524
  if option['좋아요'] == 'true'
497
525
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -515,7 +543,7 @@ class Naver
515
543
  else
516
544
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
517
545
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
518
- sleep(1)
546
+ sleep(2)
519
547
  end
520
548
  else
521
549
  end
@@ -572,6 +600,7 @@ class Naver
572
600
  sleep(1)
573
601
  else
574
602
  begin
603
+ puts (content)
575
604
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
576
605
  sleep(1)
577
606
  rescue
@@ -690,6 +719,20 @@ class Naver
690
719
  end
691
720
  end
692
721
  @driver.switch_to.default_content() # 아이프레임 해제
722
+ def sleep_with_progress(sleep_delay)
723
+ print "[설정 딜레이 진행 중] "
724
+ steps = (sleep_delay.to_f / 0.5).to_i
725
+ steps.times do
726
+ print "."
727
+ STDOUT.flush
728
+ sleep(1)
729
+ end
730
+ puts "\n"
731
+ end
732
+
733
+ sleep_with_progress(sleep_delay)
734
+
735
+
693
736
  rescue => e
694
737
  puts "Error: #{e.message}"
695
738
  end
@@ -710,6 +753,35 @@ class Naver
710
753
  sleep(1)
711
754
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
712
755
 
756
+ @content_soon ||= 0 # 초기 한 번만 0으로 세팅
757
+
758
+ if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
759
+ content = ''
760
+ else
761
+ if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
762
+ content = @data['내용설정']['내용'].sample[2]
763
+ else
764
+ content = @data['내용설정']['내용'][@content_soon][2]
765
+ @content_soon += 1
766
+ @content_soon = 0 if @content_soon >= @data['내용설정']['내용'].length
767
+ end
768
+ end
769
+
770
+ # 디엠 자동 변경이 체크된 경우 content를 변환
771
+ if @data['포스트설정']['내용자동변경'].checked?
772
+ change_memory = {}
773
+ @data['포스트설정']['내용자동변경값'].each do |key, v|
774
+ change_memory[key] = v.sample
775
+ end
776
+ @data['포스트설정']['내용자동변경값'].each do |key, _|
777
+ if content.include?(key)
778
+ content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
779
+ else
780
+ end
781
+ end
782
+ end
783
+
784
+
713
785
  if option['좋아요'] == 'true'
714
786
  puts "좋아요 클릭 옵션 진행!!".cyan
715
787
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
@@ -732,7 +804,7 @@ class Naver
732
804
  else
733
805
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
734
806
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
735
- sleep(1)
807
+ sleep(2)
736
808
  end
737
809
  else
738
810
  end
@@ -789,6 +861,7 @@ class Naver
789
861
  sleep(1)
790
862
  else
791
863
  begin
864
+ puts (content)
792
865
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
793
866
  sleep(1)
794
867
  rescue
@@ -906,9 +979,21 @@ class Naver
906
979
  puts '-[√] 로그 파일 생성 완료.......'.yellow
907
980
  end
908
981
  end
909
-
910
- end
982
+ end
911
983
  @driver.switch_to.default_content() # 아이프레임 해제
984
+ def sleep_with_progress(sleep_delay)
985
+ print "[설정 딜레이 진행 중] "
986
+ steps = (sleep_delay.to_f / 0.5).to_i
987
+ steps.times do
988
+ print "."
989
+ STDOUT.flush
990
+ sleep(1)
991
+ end
992
+ puts "\n"
993
+ end
994
+ sleep_with_progress(sleep_delay)
995
+
996
+
912
997
  rescue => e
913
998
  puts "Error: #{e.message}"
914
999
  end
@@ -1014,6 +1099,33 @@ class Naver
1014
1099
  sleep(1)
1015
1100
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
1016
1101
 
1102
+ @content_soon ||= 0 # 초기 한 번만 0으로 세팅
1103
+
1104
+ if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
1105
+ content = ''
1106
+ else
1107
+ if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
1108
+ content = @data['내용설정']['내용'].sample[2]
1109
+ else
1110
+ content = @data['내용설정']['내용'][@content_soon][2]
1111
+ @content_soon += 1
1112
+ @content_soon = 0 if @content_soon >= @data['내용설정']['내용'].length
1113
+ end
1114
+ end
1115
+
1116
+ # 디엠 자동 변경이 체크된 경우 content를 변환
1117
+ if @data['포스트설정']['내용자동변경'].checked?
1118
+ change_memory = {}
1119
+ @data['포스트설정']['내용자동변경값'].each do |key, v|
1120
+ change_memory[key] = v.sample
1121
+ end
1122
+ @data['포스트설정']['내용자동변경값'].each do |key, _|
1123
+ if content.include?(key)
1124
+ content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
1125
+ else
1126
+ end
1127
+ end
1128
+ end
1017
1129
 
1018
1130
  if option['좋아요'] == 'true'
1019
1131
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -1037,13 +1149,15 @@ class Naver
1037
1149
  else
1038
1150
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
1039
1151
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
1040
- sleep(1)
1152
+ sleep(2)
1041
1153
  end
1042
1154
  else
1043
1155
  end
1044
1156
 
1157
+
1158
+
1045
1159
 
1046
- begin
1160
+ begin
1047
1161
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
1048
1162
  wait.until { @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]') }
1049
1163
 
@@ -1094,6 +1208,7 @@ class Naver
1094
1208
  sleep(1)
1095
1209
  else
1096
1210
  begin
1211
+ puts (content)
1097
1212
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
1098
1213
  sleep(1)
1099
1214
  rescue
@@ -1211,13 +1326,25 @@ class Naver
1211
1326
  puts '-[√] 로그 파일 생성 완료.......'.yellow
1212
1327
  end
1213
1328
  end
1214
-
1215
1329
  end
1216
1330
  @driver.switch_to.default_content() # 아이프레임 해제
1217
- rescue => e
1218
- puts "Error: #{e.message}"
1219
- end
1331
+ def sleep_with_progress(sleep_delay)
1332
+ print "[설정 딜레이 진행 중] "
1333
+ steps = (sleep_delay.to_f / 0.5).to_i
1334
+ steps.times do
1335
+ print "."
1336
+ STDOUT.flush
1337
+ sleep(1)
1338
+ end
1339
+ puts "\n"
1220
1340
  end
1341
+ sleep_with_progress(sleep_delay)
1342
+
1343
+
1344
+ rescue => e
1345
+ puts "Error: #{e.message}"
1346
+ end
1347
+ end
1221
1348
  else
1222
1349
  end
1223
1350
 
@@ -1249,7 +1376,7 @@ class Naver
1249
1376
  end
1250
1377
  end
1251
1378
 
1252
- class Wordpress
1379
+ class Wordpress
1253
1380
  include Glimmer
1254
1381
 
1255
1382
  def login_check2(user_id, user_pw)
@@ -1575,7 +1702,7 @@ class Wordpress
1575
1702
  proxy = table[3].to_s
1576
1703
  user_id = table[1].to_s
1577
1704
  user_pw = table[2].to_s
1578
- naver = Naver.new
1705
+ naver = Naver.new(@data)
1579
1706
  @data['table'][index][-1] = 30
1580
1707
  @data['table'] << []
1581
1708
  @data['table'].pop
@@ -1719,7 +1846,8 @@ class Wordpress
1719
1846
  # 댓글 설정 수 카운트
1720
1847
  counts_number = @data['table'][index][5].to_i
1721
1848
  api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
1722
- naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
1849
+ sleep_delay = @data['table'][index][4].to_i
1850
+ naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
1723
1851
 
1724
1852
 
1725
1853
 
@@ -1728,7 +1856,7 @@ class Wordpress
1728
1856
  @data['table'][index][-1] = 100
1729
1857
  @data['table'] << []
1730
1858
  @data['table'].pop
1731
- sleep(@data['table'][index][4].to_i)
1859
+ #sleep(@data['table'][index][4].to_i)
1732
1860
  end
1733
1861
  rescue => exception
1734
1862
  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.35
4
+ version: 0.0.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-30 00:00:00.000000000 Z
10
+ date: 2025-06-27 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: File to Clipboard gem
13
13
  email: mymin26@naver.com