cafe_basics_duo 0.0.13 → 0.0.17
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/cafe_basics_duo.rb +113 -68
- 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: bfbbaf6428eee25f772417269a4ff86459b359615720f14fab0c8ee81727f429
|
4
|
+
data.tar.gz: 41b716dd89954bd2ea744eee3cd8a2d517e57677d30bac6640c64503c0f233a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ffb1afd6aeebc9d04d68d75658a5db2e048ffc566876d4aea1fc46c21b49d5aecf62eb2478ce01fbb9a2a5a8c305fec0301a8d344015e83c1b57e6a53505d5c0
|
7
|
+
data.tar.gz: fa069d428ff13e87192f83f535cb072909012892f00dbc2f56cd7c4397d782f400d219041d9c833e93389a113c7d29bfce288261df35deaca27f0473b7c8b20c
|
data/lib/cafe_basics_duo.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'
|
@@ -219,55 +219,71 @@ class Naver
|
|
219
219
|
def chrome_start(proxy, user_id)
|
220
220
|
naver_cookie_dir = "C:/naver_cookie"
|
221
221
|
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
222
|
+
|
222
223
|
if proxy == ''
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
224
|
+
begin
|
225
|
+
# webdrivers Gem이 크롬 드라이버 자동 다운로드 및 설정을 관리함
|
226
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
227
|
+
options.page_load_strategy = :normal
|
228
|
+
options.timeouts = { page_load: 20_000 }
|
229
|
+
options.page_load_strategy = 'none'
|
230
|
+
options.add_argument('--disable-blink-features=AutomationControlled') #자동화된 환경에서 실행되는 것을 감지하는 기능을 비활성화합니다.
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
options.add_argument('--remote-debugging-port=9222')
|
235
|
+
options.add_argument("user-data-dir=#{naver_cookie_dir}/#{user_id}")
|
236
|
+
|
237
|
+
# :capabilities에 options를 배열로 전달
|
238
|
+
capabilities = [options]
|
239
|
+
|
240
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
241
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
242
|
+
rescue
|
243
|
+
# 예외 발생 시 다른 방법으로 셀레니움 실행
|
244
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
245
|
+
end
|
235
246
|
else
|
247
|
+
begin
|
248
|
+
# Proxy를 사용하는 경우
|
249
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
250
|
+
options.add_argument '--proxy-server=' + proxy.to_s.force_encoding('utf-8')
|
251
|
+
options.page_load_strategy = :normal
|
252
|
+
options.timeouts = { page_load: 20_000 }
|
253
|
+
options.page_load_strategy = 'none'
|
254
|
+
options.add_argument('--disable-blink-features=AutomationControlled') #자동화된 환경에서 실행되는 것을 감지하는 기능을 비활성화합니다.
|
255
|
+
|
256
|
+
options.add_argument('--remote-debugging-port=9222')
|
257
|
+
options.add_argument("user-data-dir=#{naver_cookie_dir}/#{user_id}")
|
258
|
+
|
259
|
+
# :capabilities에 options를 배열로 전달
|
260
|
+
capabilities = [options]
|
261
|
+
|
262
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
263
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
264
|
+
rescue => e
|
265
|
+
puts 'proxy error...'
|
236
266
|
begin
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
rescue => e
|
254
|
-
puts e
|
255
|
-
puts 'proxy error...'
|
256
|
-
begin
|
257
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
258
|
-
options = Selenium::WebDriver::Chrome::Options.new
|
259
|
-
options.page_load_strategy = :normal
|
260
|
-
options.timeouts = {page_load: 20_000}
|
261
|
-
options.page_load_strategy = 'none'
|
262
|
-
options.add_argument('--remote-debugging-port=9222')
|
263
|
-
options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
|
264
|
-
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
265
|
-
rescue
|
266
|
-
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
267
|
-
end
|
267
|
+
# Proxy가 실패할 경우 예외 처리
|
268
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
269
|
+
options.page_load_strategy = :normal
|
270
|
+
options.timeouts = { page_load: 20_000 }
|
271
|
+
options.page_load_strategy = 'none'
|
272
|
+
options.add_argument('--disable-blink-features=AutomationControlled') #자동화된 환경에서 실행되는 것을 감지하는 기능을 비활성화합니다.
|
273
|
+
options.add_argument('--remote-debugging-port=9222')
|
274
|
+
options.add_argument("user-data-dir=#{naver_cookie_dir}/#{user_id}")
|
275
|
+
|
276
|
+
# :capabilities에 options를 배열로 전달
|
277
|
+
capabilities = [options]
|
278
|
+
|
279
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
280
|
+
rescue
|
281
|
+
# 예외 발생 시 다른 방법으로 셀레니움 실행
|
282
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
268
283
|
end
|
284
|
+
end
|
269
285
|
end
|
270
|
-
|
286
|
+
end
|
271
287
|
|
272
288
|
|
273
289
|
|
@@ -738,21 +754,23 @@ class Naver
|
|
738
754
|
|
739
755
|
|
740
756
|
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
757
|
+
if option['사진타이틀'] == 'true'
|
758
|
+
begin
|
759
|
+
@driver.action.key_down(:up).key_up(:up).perform
|
760
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
761
|
+
#요소가 나타날 때까지 60초 동안 기다립니다.
|
762
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]') }
|
763
|
+
sleep(1)
|
764
|
+
@driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]').click
|
765
|
+
sleep(1)
|
766
|
+
@driver.action.send_keys(title).perform
|
767
|
+
sleep(1)
|
768
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
769
|
+
sleep(1)
|
770
|
+
rescue
|
771
|
+
@driver.action.key_down(:down).key_up(:down).perform
|
772
|
+
end
|
773
|
+
end
|
756
774
|
|
757
775
|
|
758
776
|
if i2.to_s.split('href="')[1] != nil
|
@@ -1637,10 +1655,18 @@ class Wordpress
|
|
1637
1655
|
|
1638
1656
|
def get_naver_text(q)
|
1639
1657
|
begin
|
1640
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1641
|
-
|
1658
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1659
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
1660
|
+
capabilities = [options]
|
1661
|
+
|
1662
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1663
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1642
1664
|
rescue
|
1643
|
-
|
1665
|
+
# :capabilities에 options를 배열로 전달
|
1666
|
+
capabilities = [options]
|
1667
|
+
|
1668
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1669
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1644
1670
|
end
|
1645
1671
|
@driver.get('https://search.naver.com/search.naver?display=15&f=&filetype=0&page=3&query='+q.to_s+'&research_url=&sm=tab_pge&start=16&where=web')
|
1646
1672
|
noko = Nokogiri::HTML(@driver.page_source)
|
@@ -1670,10 +1696,18 @@ class Wordpress
|
|
1670
1696
|
|
1671
1697
|
def get_naver_text2(keyword)
|
1672
1698
|
begin
|
1673
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1674
|
-
|
1699
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1700
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
1701
|
+
capabilities = [options]
|
1702
|
+
|
1703
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1704
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1675
1705
|
rescue
|
1676
|
-
|
1706
|
+
# :capabilities에 options를 배열로 전달
|
1707
|
+
capabilities = [options]
|
1708
|
+
|
1709
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1710
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1677
1711
|
end
|
1678
1712
|
@driver.get('https://search.naver.com/search.naver?ssc=tab.blog.all&sm=tab_jum&query='+keyword.to_s)
|
1679
1713
|
for n3 in 1..10
|
@@ -2908,6 +2942,12 @@ class Wordpress
|
|
2908
2942
|
option['CCL사용'] = 'false'
|
2909
2943
|
end
|
2910
2944
|
|
2945
|
+
if @data['포스트설정']['사진타이틀'].checked?
|
2946
|
+
option['사진타이틀'] = 'true'
|
2947
|
+
else
|
2948
|
+
option['사진타이틀'] = 'false'
|
2949
|
+
end
|
2950
|
+
|
2911
2951
|
|
2912
2952
|
if @data['포스트설정']['내용첫줄제목에입력'].checked?
|
2913
2953
|
title = content.split("\n")[0]
|
@@ -4441,13 +4481,18 @@ class Wordpress
|
|
4441
4481
|
text 'URL'
|
4442
4482
|
}
|
4443
4483
|
|
4444
|
-
@data['포스트설정']['
|
4484
|
+
@data['포스트설정']['사진타이틀'] = checkbox('사진 등록시 사진 하단에 제목 넣기'){
|
4445
4485
|
top 15+ aa1
|
4446
4486
|
left 0
|
4447
4487
|
}
|
4488
|
+
|
4489
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4490
|
+
top 16+ aa1
|
4491
|
+
left 0
|
4492
|
+
}
|
4448
4493
|
|
4449
4494
|
@data['포스트설정']['api_key'] = entry(){
|
4450
|
-
top
|
4495
|
+
top 16+ aa1
|
4451
4496
|
left 1
|
4452
4497
|
text 'api key 입력 필수!!'
|
4453
4498
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cafe_basics_duo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-01-
|
11
|
+
date: 2025-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|