duo_blog_cafe_comment 0.0.6 → 0.0.9

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_blog_cafe_comment.rb +78 -25
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4088aab9b2a41ea84152bae09d7a6a5c73760b4fa052b5f85ff9c01a879fc14
4
- data.tar.gz: 3f763899612f523ed1167c864e09af1221da22783d8da62eb76edcc82fc7fafa
3
+ metadata.gz: cfe5094730d9f125b951cd4e87a189874acea9c7fd92245c1d3f38ca5dde75ad
4
+ data.tar.gz: aaadb2ec38f32d4422d0cc14c11bd90c2b64610c0468d1d9dce064e47f7ce529
5
5
  SHA512:
6
- metadata.gz: af4d4b0e56c45502d106ed21c9f7fd80c35f5676eda6d5f2d2fdcdaae98859682723c1d9d9f204edb0a5f815a8213b988ca730107359b402b1710f0fba1bc77f
7
- data.tar.gz: 637d2e2b9c891c26449d0fc223da99ca90148000e87992ec3dfd41b92a4343a679675bbab5c6b9f59755d7362890b3085a8c940b1a12e68681cc8cd4e50a8fb2
6
+ metadata.gz: 494e71c8e433f6663027c33a3d0e31448ce11734c84af0a4c21f9db1c41696893e76e8831283cacb9ead6fd812d499fd2b4ec78dee22926ecd83d8e97719f45e
7
+ data.tar.gz: 13acf4ab8cd412ca73851f9f5572bc8b79db5fd38cfca880f11c8abd72f66cd3edcbd41aac68961cfe502f4e4b15d2b456e997277293c48d8736f5e5591365a2
@@ -50,9 +50,17 @@ class Naver
50
50
  options.add_argument('--disable-gpu')
51
51
  options.add_argument('--remote-debugging-port=9222')
52
52
  options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
53
- @driver = Selenium::WebDriver.for(:chrome, options: options)
54
- rescue
55
- @driver = Selenium::WebDriver.for(:chrome, options: options)
53
+ # 'capabilities'과 'options' 배열로 설정
54
+ capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
55
+ capabilities["goog:chromeOptions"] = options.as_json
56
+
57
+ # Selenium 4에서는 'capabilities'만 사용하는 방식
58
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
59
+
60
+ @driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: function(){ return false; }});") # 셀레니움 감지 방지
61
+
62
+ rescue => e
63
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
56
64
  end
57
65
  else
58
66
  begin
@@ -68,7 +76,14 @@ class Naver
68
76
  options.add_argument('--disable-gpu')
69
77
  options.add_argument('--remote-debugging-port=9222')
70
78
  options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
71
- @driver = Selenium::WebDriver.for(:chrome, options: options)
79
+ # 'capabilities'과 'options' 배열로 설정
80
+ capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
81
+ capabilities["goog:chromeOptions"] = options.as_json
82
+
83
+ # Selenium 4에서는 'capabilities'만 사용하는 방식
84
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
85
+
86
+ @driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: function(){ return false; }});") # 셀레니움 감지 방지
72
87
  rescue => e
73
88
  puts e
74
89
  puts 'proxy error...'
@@ -84,9 +99,16 @@ class Naver
84
99
  options.add_argument('--disable-gpu')
85
100
  options.add_argument('--remote-debugging-port=9222')
86
101
  options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
87
- @driver = Selenium::WebDriver.for(:chrome, options: options)
102
+ # 'capabilities'과 'options' 배열로 설정
103
+ capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
104
+ capabilities["goog:chromeOptions"] = options.as_json
105
+
106
+ # Selenium 4에서는 'capabilities'만 사용하는 방식
107
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
108
+
109
+ @driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: function(){ return false; }});") # 셀레니움 감지 방지
88
110
  rescue
89
- @driver = Selenium::WebDriver.for(:chrome, options: options)
111
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
90
112
  end
91
113
  end
92
114
  end
@@ -94,6 +116,7 @@ class Naver
94
116
 
95
117
 
96
118
 
119
+
97
120
  def login(user_id, user_pw, proxy)
98
121
  @user_id = user_id
99
122
  @user_id11 = user_id
@@ -2040,36 +2063,66 @@ class Wordpress
2040
2063
  #if table[6].to_i #시작 부분 설정을 맞게해줘야 실행이 됨
2041
2064
 
2042
2065
  if @data['포스트설정']['테더링'].checked?
2043
- puts 'tedering ip change...'
2066
+ puts 'Tethering IP change...'
2067
+
2044
2068
  stdout, stderr, status = Open3.capture3('./adb devices')
2069
+
2045
2070
  if status.success?
2046
- device_id = stdout.split("\n")[1].split("\t")[0]
2047
- puts device_id
2048
- puts 'adb -s '+device_id+' shell svc data disable'
2049
- stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
2071
+ device_id = stdout.split("\n")[1].split("\t")[0]
2072
+ puts device_id
2073
+
2074
+ # ADB 서버 초기화
2075
+ puts 'adb kill-server'
2076
+ Open3.capture3('adb kill-server')
2077
+ sleep(2)
2078
+
2079
+ # 다시 ADB 서버 실행
2080
+ puts 'adb start-server'
2081
+ Open3.capture3('adb start-server')
2082
+ sleep(2)
2083
+
2084
+ # 데이터를 끄고 켜기
2085
+ puts 'adb -s ' + device_id + ' shell svc data disable'
2086
+ stdout2, stderr2, status2 = Open3.capture3('./adb -s ' + device_id + ' shell svc data disable')
2087
+
2088
+ if status2.success?
2050
2089
  sleep(3)
2051
- puts 'adb -s '+device_id+' shell svc data enable'
2052
- Open3.capture3('./adb -s '+device_id+' shell svc data enable')
2090
+ puts 'adb -s ' + device_id + ' shell svc data enable'
2091
+ Open3.capture3('./adb -s ' + device_id + ' shell svc data enable')
2053
2092
  sleep(3)
2054
2093
  puts 'adb ok'
2055
2094
  sleep(8)
2095
+
2096
+ # IP 변경을 확인하는 람다 함수
2056
2097
  robot_ip = lambda do
2057
- http = HTTP.get('https://www.findip.kr/')
2058
- noko = Nokogiri::HTML(http.to_s)
2059
- if noko.xpath('/html/body/header/h2').text != @my_ip
2060
- @my_ip = noko.xpath('/html/body/header/h2').text
2061
- else
2062
- puts @my_ip
2063
- puts'[테더링] 연결 재시도.......'.red
2064
- sleep(3)
2065
- robot_ip[]
2098
+ loop do # 무한 루프
2099
+ begin
2100
+ http = HTTP.get('https://www.findip.kr/')
2101
+ noko = Nokogiri::HTML(http.to_s)
2102
+ new_ip = noko.xpath('/html/body/header/h2').text.strip
2103
+
2104
+ if new_ip != @my_ip
2105
+ @my_ip = new_ip
2106
+ puts "IP 변경됨: #{@my_ip}"
2107
+ break # IP가 변경되었으면 루프 종료
2108
+ else
2109
+ puts 'IP가 변경되지 않음. 재시도...'
2110
+ sleep(3) # 3초 후 재시도
2111
+ end
2112
+ rescue => e
2113
+ puts "IP 확인 중 오류 발생: #{e.message}. 재시도 중..."
2114
+ sleep(3) # 3초 후 재시도
2066
2115
  end
2116
+ end
2067
2117
  end
2068
- robot_ip[]
2118
+ robot_ip[] # 최초 호출
2119
+ else
2120
+ puts 'Failed to disable data. Error: ' + stderr2
2121
+ end
2069
2122
  else
2070
- puts 'adb error pass'.red
2123
+ puts 'adb error, unable to get devices. Error: ' + stderr
2071
2124
  end
2072
- end
2125
+ end
2073
2126
 
2074
2127
 
2075
2128
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duo_blog_cafe_comment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-07 00:00:00.000000000 Z
11
+ date: 2025-02-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: File to Clipboard gem
14
14
  email: mymin26@naver.com