posting_zon 0.0.55 → 0.0.60
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/posting_zon.rb +66 -78
- 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: 9daa48b576d4da20be43b1c58beec3d2cfe1999746362531a05496308f3bdeb1
|
4
|
+
data.tar.gz: 24ad25bd9b389d6f9ec2130a215e94af8a78fed52ab2fff596aba246e3cd73ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f31e31649a8680b2fec5254299c8bb8ba61197b3ef385cb2ec44236cfd779e382c3d4d04735cff6f185fb3e4fb88b738a24524414b52d2fa5b8e481ca87de3a1
|
7
|
+
data.tar.gz: 77bf2473b752cd2322670bac34c1e1e9a65f83d044e7c86c35b123f1e8c294c6a6f04f8231f1cc4e2abe4bdc29c6dd8be45720c76ced67c219f7c525d05535ed
|
data/lib/posting_zon.rb
CHANGED
@@ -54,7 +54,6 @@ class Naver
|
|
54
54
|
options.add_argument("--disable-logging")
|
55
55
|
options.add_argument("--silent") # 로그를 최소화 (최소한의 경고만)
|
56
56
|
options.add_argument("--log-level=3") # LogLevel: 3 = ERROR
|
57
|
-
options.add_argument('--disable-blink-features=AutomationControlled') # JavaScript로 navigator.webdriver 숨기기
|
58
57
|
|
59
58
|
# 'capabilities'과 'options' 배열로 설정
|
60
59
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
|
@@ -97,8 +96,7 @@ class Naver
|
|
97
96
|
options.add_argument("--disable-logging")
|
98
97
|
options.add_argument("--silent") # 로그를 최소화 (최소한의 경고만)
|
99
98
|
options.add_argument("--log-level=3") # LogLevel: 3 = ERROR
|
100
|
-
|
101
|
-
options.add_argument('--disable-blink-features=AutomationControlled')
|
99
|
+
|
102
100
|
|
103
101
|
# 'capabilities'과 'options' 배열로 설정
|
104
102
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
|
@@ -155,35 +153,45 @@ class Naver
|
|
155
153
|
|
156
154
|
def login(proxy)
|
157
155
|
chrome_start(proxy)
|
158
|
-
|
156
|
+
|
159
157
|
@driver.get('about:blank')
|
160
158
|
sleep(2)
|
159
|
+
|
160
|
+
# 열린 모든 탭 핸들 확인
|
161
161
|
all_windows = @driver.window_handles
|
162
|
-
|
163
|
-
|
162
|
+
puts "현재 열려 있는 탭 수: #{all_windows.size}" # 열린 탭 수 출력
|
163
|
+
|
164
|
+
# 빈 탭만 남기고 나머지 탭 닫기
|
164
165
|
all_windows.each do |window|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
166
|
+
@driver.switch_to.window(window)
|
167
|
+
current_url = @driver.current_url
|
168
|
+
puts "탭 URL: #{current_url}" # 각 탭 URL 출력
|
169
|
+
|
170
|
+
# 'chrome-extension://'로 시작하는 확장 프로그램 탭을 제외하고 닫기
|
171
|
+
if current_url.start_with?('chrome-extension://')
|
172
|
+
puts "확장 프로그램 탭을 닫지 않음: #{current_url}"
|
173
|
+
else
|
174
|
+
@driver.close # 빈 탭 등 다른 탭은 닫기
|
175
|
+
puts "빈 탭 또는 확장 프로그램이 아닌 탭을 닫았습니다."
|
176
|
+
end
|
173
177
|
end
|
178
|
+
|
179
|
+
# 빈 탭을 남긴 후, 빈 탭으로 다시 전환
|
180
|
+
all_windows = @driver.window_handles # 남은 탭 리스트 갱신
|
181
|
+
if all_windows.size == 1
|
182
|
+
@driver.switch_to.window(all_windows.first) # 남은 빈 탭으로 전환
|
183
|
+
puts "빈 탭으로 전환됨."
|
184
|
+
else
|
185
|
+
puts "빈 탭을 찾을 수 없습니다."
|
174
186
|
end
|
175
|
-
|
176
|
-
|
177
|
-
all_windows = @driver.window_handles # 모든 탭을 다시 초기화
|
178
|
-
@driver.switch_to.window(all_windows.last) # 마지막 탭으로 전환
|
179
|
-
sleep(1)
|
180
|
-
|
181
|
-
all_windows = @driver.window_handles # 다시 탭 목록 초기화
|
187
|
+
|
182
188
|
sleep(1)
|
183
|
-
|
189
|
+
|
190
|
+
# 빈 탭에서 원하는 작업을 진행하거나, 옵션 페이지로 이동
|
184
191
|
@driver.get('chrome-extension://ifibfemgeogfhoebkmokieepdoobkbpo/options/options.html')
|
185
192
|
sleep(1)
|
186
|
-
|
193
|
+
end
|
194
|
+
|
187
195
|
|
188
196
|
|
189
197
|
|
@@ -371,7 +379,7 @@ sleep(2)
|
|
371
379
|
else
|
372
380
|
|
373
381
|
begin
|
374
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
382
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
375
383
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
376
384
|
@driver.get(signup_url)
|
377
385
|
sleep(1)
|
@@ -2579,7 +2587,7 @@ login_url = option['login_url'].to_s
|
|
2579
2587
|
else
|
2580
2588
|
|
2581
2589
|
begin
|
2582
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
2590
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
2583
2591
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
2584
2592
|
@driver.get(login_url)
|
2585
2593
|
sleep(1)
|
@@ -3775,7 +3783,7 @@ login_url = option['login_url'].to_s
|
|
3775
3783
|
|
3776
3784
|
|
3777
3785
|
##################
|
3778
|
-
cc_check_url = option['cc_check_url'].
|
3786
|
+
cc_check_url = option['cc_check_url'].to_s
|
3779
3787
|
|
3780
3788
|
|
3781
3789
|
begin
|
@@ -3784,7 +3792,7 @@ begin
|
|
3784
3792
|
else
|
3785
3793
|
|
3786
3794
|
begin
|
3787
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
3795
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
3788
3796
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
3789
3797
|
@driver.get(cc_check_url)
|
3790
3798
|
sleep(1)
|
@@ -4023,22 +4031,15 @@ end
|
|
4023
4031
|
|
4024
4032
|
|
4025
4033
|
|
4026
|
-
|
4027
|
-
|
4028
|
-
|
4029
|
-
|
4030
|
-
#######
|
4031
|
-
post_url = option['post_url'].to_s
|
4034
|
+
login_url = option['login_url'].to_s
|
4032
4035
|
|
4033
4036
|
begin
|
4034
4037
|
if post_url == '' or post_url == '게시판 글쓰기 url'
|
4035
4038
|
|
4036
4039
|
else
|
4037
|
-
|
4038
|
-
|
4039
|
-
|
4040
|
+
|
4040
4041
|
begin
|
4041
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
4042
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
4042
4043
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
4043
4044
|
@driver.get(post_url)
|
4044
4045
|
sleep(1)
|
@@ -9400,56 +9401,43 @@ class Wordpress
|
|
9400
9401
|
|
9401
9402
|
# ADB 서버 초기화
|
9402
9403
|
puts 'adb kill-server'
|
9403
|
-
Open3.capture3('adb kill-server')
|
9404
|
-
sleep(
|
9404
|
+
Open3.capture3('./adb kill-server')
|
9405
|
+
sleep(3)
|
9405
9406
|
|
9406
9407
|
# 다시 ADB 서버 실행
|
9407
9408
|
puts 'adb start-server'
|
9408
|
-
Open3.capture3('adb start-server')
|
9409
|
-
sleep(
|
9409
|
+
Open3.capture3('./adb start-server')
|
9410
|
+
sleep(3)
|
9410
9411
|
|
9411
9412
|
# 데이터를 끄고 켜기
|
9412
9413
|
puts 'adb -s ' + device_id + ' shell svc data disable'
|
9413
|
-
stdout2, stderr2, status2 = Open3.capture3('./adb -s '
|
9414
|
-
|
9415
|
-
|
9416
|
-
|
9417
|
-
|
9418
|
-
|
9419
|
-
|
9420
|
-
|
9421
|
-
|
9422
|
-
|
9423
|
-
|
9424
|
-
|
9425
|
-
|
9426
|
-
|
9427
|
-
|
9428
|
-
|
9429
|
-
|
9430
|
-
|
9431
|
-
|
9432
|
-
@my_ip = new_ip
|
9433
|
-
puts "IP 변경됨: #{@my_ip}"
|
9434
|
-
break # IP가 변경되었으면 루프 종료
|
9435
|
-
else
|
9436
|
-
puts 'IP가 변경되지 않음. 재시도...'
|
9437
|
-
sleep(3) # 3초 후 재시도
|
9438
|
-
end
|
9439
|
-
rescue => e
|
9440
|
-
puts "IP 확인 중 오류 발생: #{e.message}. 재시도 중..."
|
9441
|
-
sleep(3) # 3초 후 재시도
|
9442
|
-
end
|
9443
|
-
end
|
9414
|
+
stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
|
9415
|
+
sleep(3)
|
9416
|
+
puts 'adb -s ' + device_id + ' shell svc data enable'
|
9417
|
+
Open3.capture3('./adb -s '+device_id+' shell svc data enable')
|
9418
|
+
sleep(3)
|
9419
|
+
puts 'adb ok'
|
9420
|
+
sleep(8)
|
9421
|
+
|
9422
|
+
robot_ip = lambda do
|
9423
|
+
http = HTTP.get('https://www.findip.kr/')
|
9424
|
+
noko = Nokogiri::HTML(http.to_s)
|
9425
|
+
if noko.xpath('/html/body/header/h2').text != @my_ip
|
9426
|
+
@my_ip = noko.xpath('/html/body/header/h2').text
|
9427
|
+
puts "IP 변경됨[ #{@my_ip} ]"
|
9428
|
+
else
|
9429
|
+
puts @my_ip
|
9430
|
+
puts '제시도...'
|
9431
|
+
sleep(3)
|
9432
|
+
robot_ip[]
|
9444
9433
|
end
|
9445
|
-
|
9446
|
-
|
9447
|
-
|
9448
|
-
end
|
9434
|
+
end
|
9435
|
+
robot_ip[]
|
9436
|
+
|
9449
9437
|
else
|
9450
|
-
|
9438
|
+
puts 'adb error pass'
|
9451
9439
|
end
|
9452
|
-
|
9440
|
+
end
|
9453
9441
|
|
9454
9442
|
check_success = 1
|
9455
9443
|
@data['table'][index][-1] = 0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.60
|
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-
|
11
|
+
date: 2025-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: posting app
|
14
14
|
email: mymin26@naver.com
|