zon_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/zon_cafe_comment.rb +145 -16
  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: 7cf41d1bb11600a0e0b96c93a3b0a47cd063519cbe75d0d74443c5d2741e4fb9
4
+ data.tar.gz: 5297d7ed8192bd2b4ac685a00147c55c1230a0496f0a74a625b81fec0bf6593a
5
5
  SHA512:
6
- metadata.gz: 82edf8856702f40ba20c9ee154842946721369860e89162a8a98132c852c77722cb2bf1a6e9cd3232eb4ea0a6d53ba3a16c62f2ccde5153c1f982a5f6f7b3051
7
- data.tar.gz: 26c96d66956057e4fc2897405301f5d9f64d726c5b11eabec3eb25b3d8c00aff7f0cdcf2fe1245d5f0162626e3fcb3c2ef4b800e050e15b3a22766fb90a54e7e
6
+ metadata.gz: 5d3d7c6a1114aae8bd8f8a807d7b0ec3dfe61c8598aac1c5fc1004de2f78d360a0a4828b2fa1ae9e5d2ce9d729039e1dd730878a31891c004f2fea28ce94357f
7
+ data.tar.gz: 8c2ee66edf763b5a517d55268a6fb881ca79d8e71b1cc6d12e600b6bbfb8d23c0261f8acbb36acbe64d6ab2fc2752f587ff76668060e906d173c9f8da5d29d46
@@ -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,34 @@ 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"]')) # 아이프레임 선택
495
+
496
+ @content_soon ||= 0 # 초기 한 번만 0으로 세팅
493
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
494
523
 
495
524
  if option['좋아요'] == 'true'
496
525
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -514,7 +543,7 @@ class Naver
514
543
  else
515
544
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
516
545
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
517
- sleep(1)
546
+ sleep(2)
518
547
  end
519
548
  else
520
549
  end
@@ -571,6 +600,7 @@ class Naver
571
600
  sleep(1)
572
601
  else
573
602
  begin
603
+ puts (content)
574
604
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
575
605
  sleep(1)
576
606
  rescue
@@ -689,6 +719,20 @@ class Naver
689
719
  end
690
720
  end
691
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
+
692
736
  rescue => e
693
737
  puts "Error: #{e.message}"
694
738
  end
@@ -709,6 +753,35 @@ class Naver
709
753
  sleep(1)
710
754
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
711
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
+
712
785
  if option['좋아요'] == 'true'
713
786
  puts "좋아요 클릭 옵션 진행!!".cyan
714
787
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
@@ -731,7 +804,7 @@ class Naver
731
804
  else
732
805
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
733
806
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
734
- sleep(1)
807
+ sleep(2)
735
808
  end
736
809
  else
737
810
  end
@@ -788,6 +861,7 @@ class Naver
788
861
  sleep(1)
789
862
  else
790
863
  begin
864
+ puts (content)
791
865
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
792
866
  sleep(1)
793
867
  rescue
@@ -905,9 +979,21 @@ class Naver
905
979
  puts '-[√] 로그 파일 생성 완료.......'.yellow
906
980
  end
907
981
  end
908
-
909
- end
982
+ end
910
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
+
911
997
  rescue => e
912
998
  puts "Error: #{e.message}"
913
999
  end
@@ -1013,6 +1099,33 @@ class Naver
1013
1099
  sleep(1)
1014
1100
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="cafe_main"]')) # 아이프레임 선택
1015
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
1016
1129
 
1017
1130
  if option['좋아요'] == 'true'
1018
1131
  puts "좋아요 클릭 옵션 진행!!".cyan
@@ -1036,13 +1149,15 @@ class Naver
1036
1149
  else
1037
1150
  # 좋아요를 아직 누르지 않은 상태일 경우 클릭
1038
1151
  @driver.find_element(:xpath, '//*[@class="u_ico _icon"]').click
1039
- sleep(1)
1152
+ sleep(2)
1040
1153
  end
1041
1154
  else
1042
1155
  end
1043
1156
 
1157
+
1158
+
1044
1159
 
1045
- begin
1160
+ begin
1046
1161
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
1047
1162
  wait.until { @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]') }
1048
1163
 
@@ -1093,6 +1208,7 @@ class Naver
1093
1208
  sleep(1)
1094
1209
  else
1095
1210
  begin
1211
+ puts (content)
1096
1212
  @driver.find_element(:xpath, '//*[@placeholder="댓글을 남겨보세요"]').send_keys(content)
1097
1213
  sleep(1)
1098
1214
  rescue
@@ -1210,13 +1326,25 @@ class Naver
1210
1326
  puts '-[√] 로그 파일 생성 완료.......'.yellow
1211
1327
  end
1212
1328
  end
1213
-
1214
1329
  end
1215
1330
  @driver.switch_to.default_content() # 아이프레임 해제
1216
- rescue => e
1217
- puts "Error: #{e.message}"
1218
- 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"
1219
1340
  end
1341
+ sleep_with_progress(sleep_delay)
1342
+
1343
+
1344
+ rescue => e
1345
+ puts "Error: #{e.message}"
1346
+ end
1347
+ end
1220
1348
  else
1221
1349
  end
1222
1350
 
@@ -1504,7 +1632,7 @@ end
1504
1632
  proxy = table[3].to_s
1505
1633
  user_id = table[1].to_s
1506
1634
  user_pw = table[2].to_s
1507
- naver = Naver.new
1635
+ naver = Naver.new(@data)
1508
1636
  @data['table'][index][-1] = 30
1509
1637
  @data['table'] << []
1510
1638
  @data['table'].pop
@@ -1648,7 +1776,8 @@ end
1648
1776
  # 댓글 설정 수 카운트
1649
1777
  counts_number = @data['table'][index][5].to_i
1650
1778
  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)
1779
+ sleep_delay = @data['table'][index][4].to_i
1780
+ naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key,sleep_delay)
1652
1781
 
1653
1782
 
1654
1783
 
@@ -1657,7 +1786,7 @@ end
1657
1786
  @data['table'][index][-1] = 100
1658
1787
  @data['table'] << []
1659
1788
  @data['table'].pop
1660
- sleep(@data['table'][index][4].to_i)
1789
+ #sleep(@data['table'][index][4].to_i)
1661
1790
  end
1662
1791
  rescue => exception
1663
1792
  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.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