zon_blog_comment 0.0.50 → 0.0.55

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_blog_comment.rb +93 -43
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5acc164af63755e66dd8a570e9bea3d38bd103dc9a7ccfa09dd56a1e9ad67a7
4
- data.tar.gz: caf22df0997e95276eabd3de59be7dda7594f3880d7991c0c6c41ca2eadcb074
3
+ metadata.gz: 1d7340486eaff486cd290d63cc012e9397cb885cff0725c3c76d0f98e222891b
4
+ data.tar.gz: ea0feef7efdbacbe4a3e899bcea885c52356f30415acf3b40f929c99a929b909
5
5
  SHA512:
6
- metadata.gz: 591fc0dd6d286cde09ee537cc0eaf467b5f9aa082c270677e8156fff8ec8b1c7ad50e368a50df87ac89330e57c6f085d9e643b9ac9bf1c17e8cc781f376f4aab
7
- data.tar.gz: 9293124f517b44655e5a09155bf712222bb78ad258f1835e1c692d358441f8584a92603d09195a6079edb0f66cccafc69b4283e11e2da69089f8adb79bd58e90
6
+ metadata.gz: 7570e12b5d1291eb8f3a7c7b760d8980d67ecbd5aae311d6df07d514224a44a85b35106b0ed76d782ae4a29391b9f1b380f3598960c4c85a6259040312ee55b5
7
+ data.tar.gz: 7a7f2caf4dadc72d01016a8ac8d5910ecb52af8c8859590013e282a01cebcac5d6a7c038f0c2fd8271c29ccdcf6a306d3e5e1c352571144845437ce955d0aa2d
@@ -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
 
@@ -274,12 +275,13 @@ class Naver
274
275
 
275
276
 
276
277
 
277
- def update(content,image,option,counts_number,keyword,blog_url,api_key,counts_delay)
278
+ def update(content,image,option,counts_number,keyword,blog_url,api_key,sleep_delay)
278
279
 
279
280
  @keyword = keyword
280
281
  @content = content
281
282
  @api_key = api_key
282
283
  @blog_url = blog_url
284
+ @sleep_delay = sleep_delay
283
285
  #sleep(counts_delay)
284
286
 
285
287
 
@@ -469,48 +471,60 @@ class Naver
469
471
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]')) # 아이프레임 선택
470
472
  sleep(1)
471
473
  begin
472
- @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]').click
473
- sleep(2)
474
- rescue
474
+ element = @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]') # 목록 열기 코드
475
+ text = element.text.strip
476
+
477
+ if text == "목록열기"
478
+ element.click
479
+ sleep(2)
480
+ else
481
+
482
+ end
483
+ rescue
475
484
  begin
476
- @driver.find_element(:xpath, '//*[@class="off itemfont _doNclick _param(false|blog|)"]').click
477
- sleep(2)
485
+ @driver.find_element(:xpath, '//*[@class="off itemfont _doNclick _param(false|blog|)"]').click #블로그 txt 클릭
486
+ sleep(2)
487
+ rescue
488
+ begin
489
+ @driver.find_element(:xpath, '//*[@class="on itemfont _doNclick _param(false|blog|)"]').click #블로그 txt 클릭
490
+ sleep(2)
491
+ rescue
492
+ end
493
+ end
494
+
495
+ begin
478
496
  begin
479
497
  wait = Selenium::WebDriver::Wait.new(:timeout => 5)
480
- wait.until { @driver.find_element(:xpath, '//*[@id="category0"]') }
498
+ wait.until { @driver.find_element(:xpath, '//*[@id="category0"]') } # 전체 보기 클릭
481
499
  element = @driver.find_element(:xpath, '//*[@id="category0"]')
482
500
  @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element)#크롤 이동
483
501
  sleep(2)
484
- @driver.find_element(:xpath, '//*[@id="category0"]').click
502
+ @driver.find_element(:xpath, '//*[@id="category0"]').click # 전체 보기 클릭
485
503
  sleep(2)
486
504
  rescue
487
505
  end
488
506
  wait = Selenium::WebDriver::Wait.new(:timeout => 5)
489
- wait.until { @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]') }
507
+ wait.until { @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]') } # 목록 열기 코드
490
508
  element = @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]')
491
509
  @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element)#크롤 이동
492
- sleep(2)
493
- @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]').click
494
- sleep(1)
495
- rescue => e
496
- @driver.window_handles.each do |handle|
497
- @driver.switch_to.window(handle)
498
- begin
499
- # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
500
- puts 'id="toplistSpanBlind" 요소를 찾지 못했습니다.'
501
- @driver.close
502
- rescue Selenium::WebDriver::Error::WebDriverError => e
503
- puts "Failed to close tab: #{e.message}"
504
- end
510
+ sleep(2)
511
+ element = @driver.find_element(:xpath, '//*[@id="toplistSpanBlind"]')
512
+ text = element.text.strip
513
+
514
+ if text == "목록열기"
515
+ element.click
516
+ sleep(2)
517
+ else
505
518
  end
506
- @driver.quit
519
+ sleep(1)
520
+ rescue
507
521
  end
508
522
  end
509
523
 
510
524
 
511
525
  begin
512
526
  wait = Selenium::WebDriver::Wait.new(:timeout => 3)
513
- wait.until { @driver.find_element(:xpath, '//*[@class="aline"]') }
527
+ wait.until { @driver.find_element(:xpath, '//*[@class="aline"]') } # 목록 리스트 (5줄 보기) 클릭
514
528
  element = @driver.find_element(:xpath, '//*[@class="aline"]')
515
529
  @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element)#크롤 이동
516
530
  sleep(2)
@@ -519,24 +533,13 @@ class Naver
519
533
  rescue
520
534
  begin
521
535
  wait = Selenium::WebDriver::Wait.new(:timeout => 3)
522
- wait.until { @driver.find_element(:xpath, '//*[@id="listCountToggle"]') }
536
+ wait.until { @driver.find_element(:xpath, '//*[@id="listCountToggle"]') } # 목록 리스트 (5줄 보기) 클릭
523
537
  element = @driver.find_element(:xpath, '//*[@id="listCountToggle"]')
524
538
  @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", element)#크롤 이동
525
539
  sleep(2)
526
540
  element.send_keys(:return)
527
541
  sleep(1)
528
- rescue => e
529
- @driver.window_handles.each do |handle|
530
- @driver.switch_to.window(handle)
531
- begin
532
- # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
533
- puts 'class="aline" 요소를 찾지 못했습니다.'
534
- @driver.close
535
- rescue Selenium::WebDriver::Error::WebDriverError => e
536
- puts "Failed to close tab: #{e.message}"
537
- end
538
- end
539
- @driver.quit
542
+ rescue
540
543
  end
541
544
  end
542
545
 
@@ -660,7 +663,12 @@ class Naver
660
663
  wait.until { @driver.find_element(:xpath, '//*[@id="mainFrame"]') } # 아이프레임 선택
661
664
  sleep(1)
662
665
  @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]')) # 아이프레임 선택
663
- sleep(1)
666
+ sleep(1)
667
+ puts "게시글 읽는 모션 진행".yellow
668
+ @driver.action.send_keys(:page_down).perform #스크롤 내리기
669
+ sleep(1)
670
+ @driver.action.send_keys(:page_down).perform #스크롤 내리기
671
+ sleep(1)
664
672
 
665
673
  if option['이웃추가'] == 'true'
666
674
  begin
@@ -1049,6 +1057,36 @@ class Naver
1049
1057
  else
1050
1058
  end
1051
1059
 
1060
+ content_soon = 0
1061
+ # 💬 content 설정 (여기 추가!)
1062
+ if @data['내용설정']['내용'].nil? || @data['내용설정']['내용'].empty?
1063
+ content = ''
1064
+ else
1065
+ if @data.dig('내용설정', '랜덤사용')&.respond_to?(:checked?) && @data['내용설정']['랜덤사용'].checked?
1066
+ content = @data['내용설정']['내용'].sample[2] # 랜덤 사용 시
1067
+ else
1068
+ content = @data['내용설정']['내용'][content_soon][2] # 순차적으로 사용
1069
+ content_soon += 1
1070
+ if content_soon >= @data['내용설정']['내용'].length
1071
+ content_soon = 0
1072
+ end
1073
+ end
1074
+ end
1075
+
1076
+ # 디엠 자동 변경이 체크된 경우 content를 변환
1077
+ if @data['포스트설정']['내용자동변경'].checked?
1078
+ change_memory = {}
1079
+ @data['포스트설정']['내용자동변경값'].each do |key, v|
1080
+ change_memory[key] = v.sample
1081
+ end
1082
+ @data['포스트설정']['내용자동변경값'].each do |key, _|
1083
+ if content.include?(key)
1084
+ content = content.gsub(key, change_memory[key]) # gsub을 사용하여 내용 치환
1085
+ else
1086
+ end
1087
+ end
1088
+ end
1089
+
1052
1090
  begin #댓글 작업 >> 시작
1053
1091
  # 댓글 쓰기 버튼 클릭
1054
1092
  begin
@@ -1352,6 +1390,18 @@ class Naver
1352
1390
  puts '-[√] 로그 파일 생성 완료.......'.yellow
1353
1391
  end
1354
1392
  end
1393
+
1394
+ def sleep_with_progress(sleep_delay)
1395
+ print "[설정 딜레이 진행 중] "
1396
+ steps = (sleep_delay.to_f / 0.5).to_i
1397
+ steps.times do
1398
+ print "."
1399
+ STDOUT.flush
1400
+ sleep(1)
1401
+ end
1402
+ puts "\n"
1403
+ end
1404
+ sleep_with_progress(sleep_delay)
1355
1405
 
1356
1406
  rescue
1357
1407
 
@@ -1635,7 +1685,7 @@ end
1635
1685
  proxy = table[3].to_s
1636
1686
  user_id = table[1].to_s
1637
1687
  user_pw = table[2].to_s
1638
- naver = Naver.new
1688
+ naver = Naver.new(@data)
1639
1689
  @data['table'][index][-1] = 30
1640
1690
  @data['table'] << []
1641
1691
  @data['table'].pop
@@ -1821,9 +1871,9 @@ end
1821
1871
 
1822
1872
  # 댓글 설정 수 카운트
1823
1873
  counts_number = @data['table'][index][6].to_i
1824
- counts_delay = @data['table'][index][5].to_i
1874
+ sleep_delay = @data['table'][index][5].to_i
1825
1875
  api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
1826
- naver.update(content,image,option,counts_number,keyword,blog_url,api_key,counts_delay)
1876
+ naver.update(content,image,option,counts_number,keyword,blog_url,api_key,sleep_delay)
1827
1877
 
1828
1878
 
1829
1879
 
@@ -1832,7 +1882,7 @@ end
1832
1882
  @data['table'][index][-1] = 100
1833
1883
  @data['table'] << []
1834
1884
  @data['table'].pop
1835
- sleep(@data['table'][index][5].to_i)
1885
+ #sleep(@data['table'][index][5].to_i)
1836
1886
  end
1837
1887
  rescue => exception
1838
1888
  puts exception
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zon_blog_comment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.50
4
+ version: 0.0.55
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-19 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: File to Clipboard gem
13
13
  email: mymin26@naver.com