posting_duo 0.0.59 → 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_duo.rb +31 -55
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6af7f2edae7b775789a066a5d6e704c68f3df7fd53100a8e9b8e06e687417191
|
4
|
+
data.tar.gz: 2da4e53171ede480abfc628abaa7e9680769e57551d2f6635e8484ae8baf79a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efe725a0c62d9482651af5010f962158be2a46916cf2509064e136543b93b806dab1f403d1b6865952b322e29e0dec6f9e881febb86a110750a67bd4ae1c2453
|
7
|
+
data.tar.gz: 52bfff3bbefaccd3e161c6c60e4e00c81589252dd4a4d905603699dd7d20cec4ec1bb88969b2b6f57bdefc1bb7aea06d712ee439f13f198f84e3e28feee51629
|
data/lib/posting_duo.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
|
@@ -153,58 +151,43 @@ class Naver
|
|
153
151
|
end
|
154
152
|
|
155
153
|
|
156
|
-
|
157
154
|
def login(proxy)
|
158
155
|
chrome_start(proxy)
|
159
|
-
|
156
|
+
|
160
157
|
@driver.get('about:blank')
|
161
158
|
sleep(2)
|
162
|
-
|
163
|
-
all_windows = @driver.window_handles
|
164
|
-
|
165
|
-
# chrome-extension:// 탭이 하나만 열렸을 경우
|
166
|
-
if all_windows.size == 1
|
167
|
-
@driver.switch_to.window(all_windows.first) # 첫 번째 탭으로 전환
|
168
|
-
if @driver.current_url.start_with?('chrome-extension://')
|
169
|
-
puts "확장 프로그램 탭 발견: #{@driver.current_url}"
|
170
|
-
@driver.close # 해당 탭을 닫습니다.
|
171
|
-
sleep(2) # 탭을 닫고 안정화할 시간 추가
|
172
159
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
end
|
177
|
-
end
|
160
|
+
# 열린 모든 탭 핸들 확인
|
161
|
+
all_windows = @driver.window_handles
|
162
|
+
puts "현재 열려 있는 탭 수: #{all_windows.size}" # 열린 탭 수 출력
|
178
163
|
|
179
|
-
#
|
180
|
-
|
181
|
-
|
182
|
-
|
164
|
+
# 빈 탭만 남기고 나머지 탭 닫기
|
165
|
+
all_windows.each do |window|
|
166
|
+
@driver.switch_to.window(window)
|
167
|
+
current_url = @driver.current_url
|
168
|
+
puts "탭 URL: #{current_url}" # 각 탭 URL 출력
|
183
169
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
170
|
+
# 'chrome-extension://'로 시작하는 확장 프로그램 탭을 제외하고 닫기
|
171
|
+
if current_url.start_with?('chrome-extension://')
|
172
|
+
puts "확장 프로그램 탭을 닫지 않음: #{current_url}"
|
173
|
+
else
|
174
|
+
@driver.close # 빈 탭 등 다른 탭은 닫기
|
175
|
+
puts "빈 탭 또는 확장 프로그램이 아닌 탭을 닫았습니다."
|
190
176
|
end
|
191
177
|
end
|
192
178
|
|
193
|
-
#
|
194
|
-
all_windows = @driver.window_handles
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
sleep(1)
|
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 "빈 탭을 찾을 수 없습니다."
|
201
186
|
end
|
202
187
|
|
203
|
-
# 마지막 탭으로 전환 (남은 탭이 하나라면 그 탭으로 전환)
|
204
|
-
@driver.switch_to.window(all_windows.last)
|
205
188
|
sleep(1)
|
206
189
|
|
207
|
-
#
|
190
|
+
# 빈 탭에서 원하는 작업을 진행하거나, 옵션 페이지로 이동
|
208
191
|
@driver.get('chrome-extension://ifibfemgeogfhoebkmokieepdoobkbpo/options/options.html')
|
209
192
|
sleep(1)
|
210
193
|
end
|
@@ -396,7 +379,7 @@ sleep(2)
|
|
396
379
|
else
|
397
380
|
|
398
381
|
begin
|
399
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
382
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
400
383
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
401
384
|
@driver.get(signup_url)
|
402
385
|
sleep(1)
|
@@ -2604,7 +2587,7 @@ login_url = option['login_url'].to_s
|
|
2604
2587
|
else
|
2605
2588
|
|
2606
2589
|
begin
|
2607
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
2590
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
2608
2591
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
2609
2592
|
@driver.get(login_url)
|
2610
2593
|
sleep(1)
|
@@ -3800,7 +3783,7 @@ login_url = option['login_url'].to_s
|
|
3800
3783
|
|
3801
3784
|
|
3802
3785
|
##################
|
3803
|
-
cc_check_url = option['cc_check_url'].
|
3786
|
+
cc_check_url = option['cc_check_url'].to_s
|
3804
3787
|
|
3805
3788
|
|
3806
3789
|
begin
|
@@ -3809,7 +3792,7 @@ begin
|
|
3809
3792
|
else
|
3810
3793
|
|
3811
3794
|
begin
|
3812
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
3795
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
3813
3796
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
3814
3797
|
@driver.get(cc_check_url)
|
3815
3798
|
sleep(1)
|
@@ -4048,22 +4031,15 @@ end
|
|
4048
4031
|
|
4049
4032
|
|
4050
4033
|
|
4051
|
-
|
4052
|
-
|
4053
|
-
|
4054
|
-
|
4055
|
-
#######
|
4056
|
-
post_url = option['post_url'].to_s
|
4034
|
+
login_url = option['login_url'].to_s
|
4057
4035
|
|
4058
4036
|
begin
|
4059
4037
|
if post_url == '' or post_url == '게시판 글쓰기 url'
|
4060
4038
|
|
4061
4039
|
else
|
4062
|
-
|
4063
|
-
|
4064
|
-
|
4040
|
+
|
4065
4041
|
begin
|
4066
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
4042
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30) # 최대 20초 대기
|
4067
4043
|
wait.until { @driver.execute_script("return document.readyState") == "complete" }
|
4068
4044
|
@driver.get(post_url)
|
4069
4045
|
sleep(1)
|