zon_cafe_comment 0.0.15 → 0.0.23
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.
- checksums.yaml +4 -4
- data/lib/zon_cafe_comment.rb +74 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 752c2b450ef5ff6005562228c8562dad784892342f09b6f88b27679d62ce027a
|
4
|
+
data.tar.gz: 84374d23a74c44221e7b6466cf83f19dcd0548d8ae15af61ae4ed2d43fb170e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2ee381a689a996e64ce5d8827af3a680db7311777cea6a50f472aa96d5d3ed45455761df0f8cc3bb945de86039b3a0ab92f0aad978c0cf3da8ae2b54af7fbd7
|
7
|
+
data.tar.gz: 4aaee6155ce95501883a3d63b46d21477f5f957dd60d53f76759ef0537fbf9782a38b250c62cee42d2ba70f01a473c0753bbdea3dc8457bf15b14da2093611f2
|
data/lib/zon_cafe_comment.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'glimmer-dsl-libui'
|
2
2
|
require 'selenium-webdriver'
|
3
|
-
|
3
|
+
require 'webdrivers'
|
4
4
|
require 'iconv'
|
5
5
|
require 'nokogiri'
|
6
6
|
require 'http'
|
@@ -21,17 +21,43 @@ include AutoClickMethods
|
|
21
21
|
using Rainbow
|
22
22
|
include Glimmer
|
23
23
|
|
24
|
+
|
24
25
|
class Naver
|
25
26
|
def initialize
|
26
27
|
@seed = 1
|
28
|
+
|
29
|
+
begin
|
30
|
+
# webdrivers가 사용자의 Chrome 버전에 맞는 chromedriver 다운로드 시도
|
31
|
+
|
32
|
+
# Webdrivers가 드라이버를 다운로드할 경로를 설정
|
33
|
+
Webdrivers.cache_time = 86_400 # 하루로 설정 (기본값: 86_400초)
|
34
|
+
Webdrivers.install_dir = "./" # 크롬드라이버를 수동으로 설치할 경로를 설정
|
35
|
+
# 크롬드라이버 자동 업데이트 시도
|
36
|
+
Webdrivers::Chromedriver.update
|
37
|
+
puts "chromedriver 자동 다운로드 성공"
|
38
|
+
rescue => e
|
39
|
+
puts "chromedriver 자동 다운로드 실패: #{e.message}"
|
40
|
+
puts "폴더내 크롬드라이버를 사용합니다."
|
41
|
+
puts "크롬드라이버가 오래된 경우 오류 발생될 수 있으며, 만일 오류 발생시 아래 지침을 따라주세요."
|
42
|
+
puts "1.크롬 업데이트 2.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일을 열어 드라이버를 교체하세요."
|
43
|
+
chromedriver_path = './chromedriver.exe' # 수동 경로를 인스턴스 변수로 설정
|
44
|
+
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
45
|
+
end
|
46
|
+
|
27
47
|
end
|
48
|
+
|
49
|
+
|
28
50
|
def chrome_setup(user_id, proxy)
|
29
51
|
naver_cookie_dir = "C:/naver_cookie"
|
30
52
|
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
31
53
|
if proxy == ''
|
32
|
-
|
54
|
+
|
55
|
+
system(%{"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" https://naver.com/ --remote-debugging-port=9222 --user-data-dir=C:/naver_cookie/#{user_id} --no-first-run --no-default-browser-check --disable-sync})
|
56
|
+
|
33
57
|
else
|
34
|
-
|
58
|
+
|
59
|
+
system(%{"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" https://naver.com/ --remote-debugging-port=9222 --user-data-dir=C:/naver_cookie/#{user_id} --proxy-server=#{proxy.to_s.force_encoding('utf-8').to_s} --no-first-run --no-default-browser-check --disable-sync})
|
60
|
+
|
35
61
|
end
|
36
62
|
end
|
37
63
|
def chrome_start(proxy, user_id)
|
@@ -39,10 +65,12 @@ class Naver
|
|
39
65
|
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
40
66
|
if proxy == ''
|
41
67
|
begin
|
42
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
43
68
|
options = Selenium::WebDriver::Chrome::Options.new
|
44
69
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
45
|
-
options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
|
70
|
+
#options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
|
71
|
+
options.add_argument('--disable-sync') # Chrome 동기화 비활성화
|
72
|
+
options.add_argument('--disable-popup-blocking') # 팝업 방지 (로그인 창이 뜨는 경우 대비)
|
73
|
+
options.add_argument('--no-default-browser-check')
|
46
74
|
options.page_load_strategy = :normal
|
47
75
|
options.timeouts = {page_load: 20_000}
|
48
76
|
options.page_load_strategy = 'none'
|
@@ -64,10 +92,13 @@ class Naver
|
|
64
92
|
end
|
65
93
|
else
|
66
94
|
begin
|
67
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
95
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
68
96
|
options = Selenium::WebDriver::Chrome::Options.new
|
69
97
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
70
98
|
options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
|
99
|
+
options.add_argument('--disable-sync') # Chrome 동기화 비활성화
|
100
|
+
options.add_argument('--disable-popup-blocking') # 팝업 방지 (로그인 창이 뜨는 경우 대비)
|
101
|
+
options.add_argument('--no-default-browser-check')
|
71
102
|
options.add_argument '--proxy-server='+proxy.to_s.force_encoding('utf-8').to_s
|
72
103
|
options.page_load_strategy = :normal
|
73
104
|
options.timeouts = {page_load: 20_000}
|
@@ -88,10 +119,13 @@ class Naver
|
|
88
119
|
puts e
|
89
120
|
puts 'proxy error...'
|
90
121
|
begin
|
91
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
122
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
92
123
|
options = Selenium::WebDriver::Chrome::Options.new
|
93
124
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
94
125
|
options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
|
126
|
+
options.add_argument('--disable-sync') # Chrome 동기화 비활성화
|
127
|
+
options.add_argument('--disable-popup-blocking') # 팝업 방지 (로그인 창이 뜨는 경우 대비)
|
128
|
+
options.add_argument('--no-default-browser-check')
|
95
129
|
options.page_load_strategy = :normal
|
96
130
|
options.timeouts = {page_load: 20_000}
|
97
131
|
options.page_load_strategy = 'none'
|
@@ -1181,7 +1215,7 @@ end
|
|
1181
1215
|
puts 'Tethering IP change...'
|
1182
1216
|
|
1183
1217
|
stdout, stderr, status = Open3.capture3('./adb devices')
|
1184
|
-
|
1218
|
+
|
1185
1219
|
if status.success?
|
1186
1220
|
device_id = stdout.split("\n")[1].split("\t")[0]
|
1187
1221
|
puts device_id
|
@@ -1189,42 +1223,53 @@ end
|
|
1189
1223
|
# ADB 서버 초기화
|
1190
1224
|
puts 'adb kill-server'
|
1191
1225
|
Open3.capture3('./adb kill-server')
|
1192
|
-
sleep(
|
1226
|
+
sleep(5) # ADB 서버가 안정될 시간을 충분히 주기
|
1193
1227
|
|
1194
1228
|
# 다시 ADB 서버 실행
|
1195
1229
|
puts 'adb start-server'
|
1196
1230
|
Open3.capture3('./adb start-server')
|
1197
|
-
sleep(
|
1231
|
+
sleep(5) # ADB 서버가 안정될 시간을 충분히 주기
|
1198
1232
|
|
1199
1233
|
# 데이터를 끄고 켜기
|
1200
1234
|
puts 'adb -s ' + device_id + ' shell svc data disable'
|
1201
|
-
stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
|
1202
|
-
|
1235
|
+
stdout2, stderr2, status2 = Open3.capture3('./adb -s ' + device_id + ' shell svc data disable')
|
1236
|
+
puts "stderr: #{stderr2}" unless status2.success? # 오류 출력
|
1237
|
+
sleep(5) # 네트워크가 안정될 시간을 더 줍니다.
|
1203
1238
|
puts 'adb -s ' + device_id + ' shell svc data enable'
|
1204
|
-
Open3.capture3('./adb -s '+device_id+' shell svc data enable')
|
1205
|
-
|
1239
|
+
stdout3, stderr3, status3 = Open3.capture3('./adb -s ' + device_id + ' shell svc data enable')
|
1240
|
+
puts "stderr: #{stderr3}" unless status3.success? # 오류 출력
|
1241
|
+
sleep(5) # 네트워크가 안정될 시간을 더 줍니다.
|
1206
1242
|
puts 'adb ok'
|
1207
1243
|
sleep(8)
|
1208
|
-
|
1244
|
+
|
1245
|
+
# IP 변경 확인을 위한 람다 함수
|
1209
1246
|
robot_ip = lambda do
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1247
|
+
begin
|
1248
|
+
# IP 변경 확인
|
1249
|
+
http = HTTP.get('https://www.findip.kr/')
|
1250
|
+
noko = Nokogiri::HTML(http.to_s)
|
1251
|
+
|
1252
|
+
current_ip = noko.xpath('/html/body/header/h2').text.strip
|
1253
|
+
if current_ip != @my_ip
|
1254
|
+
@my_ip = current_ip
|
1214
1255
|
puts "IP 변경됨[ #{@my_ip} ]"
|
1215
|
-
|
1216
|
-
puts @my_ip
|
1217
|
-
puts '
|
1218
|
-
sleep(
|
1219
|
-
robot_ip[]
|
1256
|
+
else
|
1257
|
+
puts "현재 IP: #{@my_ip}"
|
1258
|
+
puts 'IP 변경이 감지되지 않았습니다. 다시 시도합니다...'
|
1259
|
+
sleep(5) # 여유롭게 대기 시간 증가
|
1260
|
+
robot_ip[] # 재시도
|
1261
|
+
end
|
1262
|
+
rescue HTTP::ConnectionError => e
|
1263
|
+
puts "네트워크 오류 발생: #{e.message}. 재시도 중..."
|
1264
|
+
sleep(5) # 재시도 간 여유 시간 추가
|
1265
|
+
retry # 재시도
|
1220
1266
|
end
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1267
|
+
end
|
1268
|
+
robot_ip[] # IP 확인 시작
|
1224
1269
|
else
|
1225
|
-
|
1270
|
+
puts "adb devices 명령어 실행 실패. stderr: #{stderr}"
|
1226
1271
|
end
|
1227
|
-
|
1272
|
+
end
|
1228
1273
|
|
1229
1274
|
|
1230
1275
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zon_cafe_comment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|