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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/duo_cafe_comment.rb +153 -19
  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: 67b74f8adb28747ea69dc9d12621e0bebf3d58289b08321c33da66d132306d98
4
+ data.tar.gz: d3c7a576cdd74eff93c5b0fce1248cf1829d4c20279f6712508dd6cb1c6e6fe4
5
5
  SHA512:
6
- metadata.gz: 282fba90ff53111720a4316a7418b083096438b9c791b67edfec77c5c76feaa6a2dbbd8c6f3f3ed54c218f751ea6ddeb14b82a3bb7504029331ad49242ec0264
7
- data.tar.gz: 721abcd54186645468c4431fda7ed45f74070721adc600b7c3155ba82dc3659f339e5a7ae179bf583f9ce8307ffce14d796bd30a261e7964ef9db5d3900af024
6
+ metadata.gz: 61318dfbc068e9d62ecb41a1e4f42d53411af9f46fe973e94a87cb3f6704d40c5d9bc880d3a9d9899bca208266b5ebe68b392b6a3558dc4859b44de44a43f5d2
7
+ data.tar.gz: 11592ec23ca0baca7bef3dd8ff537848fd3d4824a458949941ed7e30e85539fbd35d3f904c7cf875ae0e5c232cb982968ef832af2d17b92a13086dee7b8d4cbd
@@ -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(1)
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(1)
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(1)
1158
+ sleep(2)
1041
1159
  end
1042
1160
  else
1043
1161
  end
1044
1162
 
1163
+
1164
+
1045
1165
 
1046
- begin
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
- rescue => e
1218
- puts "Error: #{e.message}"
1219
- 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"
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
- naver.update(content,board_url,nickname,image,option,counts_number,keyword,api_key)
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.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