zon_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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/zon_cafe_comment.rb +152 -17
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf76e24bd6b7c6d6cef7449cb4192f1fc86b7b6ada7d6730ad1c88035272e74e
4
- data.tar.gz: 9e13a9abc71c6438c57128db8a7d869757c02d7158dc4141921627421bce8a58
3
+ metadata.gz: 1579b47b69073b363b4a7bfbbf2c81a56424f7a19bc3027c772fef28494cbcfd
4
+ data.tar.gz: 76c4095112bef2784af0179395c7c13a7f541de41a26ba96bbe532687acc49e2
5
5
  SHA512:
6
- metadata.gz: 82edf8856702f40ba20c9ee154842946721369860e89162a8a98132c852c77722cb2bf1a6e9cd3232eb4ea0a6d53ba3a16c62f2ccde5153c1f982a5f6f7b3051
7
- data.tar.gz: 26c96d66956057e4fc2897405301f5d9f64d726c5b11eabec3eb25b3d8c00aff7f0cdcf2fe1245d5f0162626e3fcb3c2ef4b800e050e15b3a22766fb90a54e7e
6
+ metadata.gz: 382868b59a5af37da55cae0409d5d9f75131b8c8f6c762ea729c064af55a69cf91fe126872d77b7bca9c99d98a61e2ac8c528db222309f52ef4402105f4ddda8
7
+ data.tar.gz: 5523cc4f4d2760b0d01a10c439999b8f6a71bfc71d525a795368d69916982b9eeb2c71269516bfd729a270fcc53dd6a5cddf45dd88a0b87a657427581377430a
@@ -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,13 +273,14 @@ class Naver
272
273
  end
273
274
  end
274
275
 
276
+
275
277
 
276
- 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)
277
279
  @board_url = board_url
278
280
  @keyword = keyword
279
281
  @content = content
280
282
  @api_key = api_key
281
-
283
+ @sleep_delay = sleep_delay
282
284
 
283
285
 
284
286
  @driver.get(board_url)
@@ -490,7 +492,36 @@ class Naver
490
492
  wait.until { @driver.find_element(:xpath, '//*[@id="cafe_main"]') } # 아이프레임 선택
491
493
  sleep(1)
492
494
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
493
-
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
494
525
 
495
526
  if option['좋아요'] == 'true'
496
527
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -514,7 +545,7 @@ class Naver
514
545
  else
515
546
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
516
547
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
517
- sleep(1)
548
+ sleep(2)
518
549
  end
519
550
  else
520
551
  end
@@ -571,6 +602,7 @@ class Naver
571
602
  sleep(1)
572
603
  else
573
604
  begin
605
+ puts (content)
574
606
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
575
607
  sleep(1)
576
608
  rescue
@@ -689,6 +721,20 @@ class Naver
689
721
  end
690
722
  end
691
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
+
692
738
  rescue => e
693
739
  puts "Error: #{e.message}"
694
740
  end
@@ -709,6 +755,37 @@ class Naver
709
755
  sleep(1)
710
756
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
711
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
+
712
789
  if option['좋아요'] == 'true'
713
790
  puts "좋아요 클릭 옵션 진행!!".cyan
714
791
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
@@ -731,7 +808,7 @@ class Naver
731
808
  else
732
809
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
733
810
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
734
- sleep(1)
811
+ sleep(2)
735
812
  end
736
813
  else
737
814
  end
@@ -788,6 +865,7 @@ class Naver
788
865
  sleep(1)
789
866
  else
790
867
  begin
868
+ puts (content)
791
869
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
792
870
  sleep(1)
793
871
  rescue
@@ -905,9 +983,21 @@ class Naver
905
983
  puts '-[√] 로그 파일 생성 완료.......'.yellow
906
984
  end
907
985
  end
908
-
909
- end
986
+ end
910
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
+
911
1001
  rescue => e
912
1002
  puts "Error: #{e.message}"
913
1003
  end
@@ -1013,6 +1103,35 @@ class Naver
1013
1103
  sleep(1)
1014
1104
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
1015
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
1016
1135
 
1017
1136
  if option['좋아요'] == 'true'
1018
1137
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -1036,13 +1155,15 @@ class Naver
1036
1155
  else
1037
1156
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
1038
1157
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
1039
- sleep(1)
1158
+ sleep(2)
1040
1159
  end
1041
1160
  else
1042
1161
  end
1043
1162
 
1163
+
1164
+
1044
1165
 
1045
- begin
1166
+ begin
1046
1167
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
1047
1168
  wait.until { @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]') }
1048
1169
 
@@ -1093,6 +1214,7 @@ class Naver
1093
1214
  sleep(1)
1094
1215
  else
1095
1216
  begin
1217
+ puts (content)
1096
1218
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
1097
1219
  sleep(1)
1098
1220
  rescue
@@ -1210,13 +1332,25 @@ class Naver
1210
1332
  puts '-[√] 로그 파일 생성 완료.......'.yellow
1211
1333
  end
1212
1334
  end
1213
-
1214
1335
  end
1215
1336
  @driver.switch_to.default_content() # 아이프레임 해제
1216
- rescue => e
1217
- puts "Error: #{e.message}"
1218
- end
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"
1219
1346
  end
1347
+ sleep_with_progress(sleep_delay)
1348
+
1349
+
1350
+ rescue => e
1351
+ puts "Error: #{e.message}"
1352
+ end
1353
+ end
1220
1354
  else
1221
1355
  end
1222
1356
 
@@ -1504,7 +1638,7 @@ end
1504
1638
  proxy = table[3].to_s
1505
1639
  user_id = table[1].to_s
1506
1640
  user_pw = table[2].to_s
1507
- naver = Naver.new
1641
+ naver = Naver.new(@data)
1508
1642
  @data['table'][index][-1] = 30
1509
1643
  @data['table'] << []
1510
1644
  @data['table'].pop
@@ -1648,7 +1782,8 @@ end
1648
1782
  # 댓글 설정 수 카운트
1649
1783
  counts_number = @data['table'][index][5].to_i
1650
1784
  api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
1651
- naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
1785
+ sleep_delay = @data['table'][index][4].to_i
1786
+ naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
1652
1787
 
1653
1788
 
1654
1789
 
@@ -1657,7 +1792,7 @@ end
1657
1792
  @data['table'][index][-1] = 100
1658
1793
  @data['table'] << []
1659
1794
  @data['table'].pop
1660
- sleep(@data['table'][index][4].to_i)
1795
+ #sleep(@data['table'][index][4].to_i)
1661
1796
  end
1662
1797
  rescue => exception
1663
1798
  puts exception
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zon_cafe_comment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.35
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-05-30 00:00:00.000000000 Z
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