cafe_buy_duo 0.0.13 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cafe_buy_duo.rb +114 -68
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5eb3fe7832522e711e10227fd0a1a4f266272fd21c7bf66bd1d6b1643a66e59f
4
- data.tar.gz: a48720614d40f126b29d7984f95e28d5171b41f4917e517411996375a23b551d
3
+ metadata.gz: 5c84a17a17b46b73b6fe00583cd20cd2f883899767c4c9d710c7fc62b84feae3
4
+ data.tar.gz: 4a7a591bd2e0332cdfb687d45c718bc20c0e950bcdea2502ff32778686ca931d
5
5
  SHA512:
6
- metadata.gz: 6674b922841cbaa739d2f3c71dbb7a4e1269540d6bfd30098c7be56637fc2e5b432afed800a765216f152c2140fb8cbf97232d9b6bbd3697c3abfe57b0b3b7e2
7
- data.tar.gz: 2157c6d4ed2d9877d949ed7bfb8c00d07d2daebe07ba1cbf51af611467ae9b98e06324ffe5ad4ad33f5d87dc9f7deb4a6fec4f89a27d95d702666f0acf47190b
6
+ metadata.gz: 30188cfdc3e2afc3809eed75168a25f571e6926eebae2f90abe0fb33a7192a4abd19b2bfe2f1f6b2de42d40e2707e657676a19771492133e78c898aee8a4b54b
7
+ data.tar.gz: 405ace79597e148618b647c1ef685e152665e1128ea99102a6be0077e286039da1da49089454e657ce27d31b3666a3f8fa7242186771db35bcbbb33fb22702e0
data/lib/cafe_buy_duo.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'glimmer-dsl-libui'
2
2
  require 'selenium-webdriver'
3
- # require 'webdrivers'
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
- begin
224
- Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
225
- options = Selenium::WebDriver::Chrome::Options.new
226
- options.page_load_strategy = :normal
227
- options.timeouts = {page_load: 20_000}
228
- options.page_load_strategy = 'none'
229
- options.add_argument('--remote-debugging-port=9222')
230
- options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
231
- @driver = Selenium::WebDriver.for(:chrome, capabilities: options)
232
- rescue
233
- @driver = Selenium::WebDriver.for(:chrome, capabilities: options)
234
- end
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
- Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
238
- options = Selenium::WebDriver::Chrome::Options.new
239
- # profile = Selenium::WebDriver::Chrome::Profile.new
240
- # profile['network.proxy.type'] = 1
241
- # profile['network.proxy.http'] = proxy.split(':')[0]
242
- # profile['network.proxy.http_port'] = proxy.split(':')[1].to_i
243
- # options = Selenium::WebDriver::Chrome::Options.new
244
- # options.profile = profile
245
- options = Selenium::WebDriver::Chrome::Options.new
246
- options.add_argument '--proxy-server='+proxy.to_s.force_encoding('utf-8').to_s
247
- options.page_load_strategy = :normal
248
- options.timeouts = {page_load: 20_000}
249
- options.page_load_strategy = 'none'
250
- options.add_argument('--remote-debugging-port=9222')
251
- options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
252
- @driver = Selenium::WebDriver.for(:chrome, capabilities: options)
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
- end
286
+ end
271
287
 
272
288
 
273
289
 
@@ -1057,21 +1073,23 @@ end
1057
1073
 
1058
1074
 
1059
1075
 
1060
- begin
1061
- @driver.action.key_down(:up).key_up(:up).perform
1062
- wait = Selenium::WebDriver::Wait.new(:timeout => 3)
1063
- #요소가 나타날 때까지 60초 동안 기다립니다.
1064
- wait.until { @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]') }
1065
- sleep(1)
1066
- @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]').click
1067
- sleep(1)
1068
- @driver.action.send_keys(title).perform
1069
- sleep(1)
1070
- @driver.action.key_down(:enter).key_up(:enter).perform #엔터
1071
- sleep(1)
1072
- rescue
1073
- @driver.action.key_down(:down).key_up(:down).perform
1074
- end
1076
+ if option['사진타이틀'] == 'true'
1077
+ begin
1078
+ @driver.action.key_down(:up).key_up(:up).perform
1079
+ wait = Selenium::WebDriver::Wait.new(:timeout => 3)
1080
+ #요소가 나타날 때까지 60초 동안 기다립니다.
1081
+ wait.until { @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]') }
1082
+ sleep(1)
1083
+ @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]').click
1084
+ sleep(1)
1085
+ @driver.action.send_keys(title).perform
1086
+ sleep(1)
1087
+ @driver.action.key_down(:enter).key_up(:enter).perform #엔터
1088
+ sleep(1)
1089
+ rescue
1090
+ @driver.action.key_down(:down).key_up(:down).perform
1091
+ end
1092
+ end
1075
1093
 
1076
1094
 
1077
1095
  if i2.to_s.split('href="')[1] != nil
@@ -1951,10 +1969,18 @@ class Wordpress
1951
1969
 
1952
1970
  def get_naver_text(q)
1953
1971
  begin
1954
- Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
1955
- @driver = Selenium::WebDriver.for :chrome
1972
+ #Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
1973
+ options = Selenium::WebDriver::Chrome::Options.new
1974
+ capabilities = [options]
1975
+
1976
+ # Selenium WebDriver에서 options를 capabilities로 전달
1977
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
1956
1978
  rescue
1957
- @driver = Selenium::WebDriver.for :chrome
1979
+ # :capabilities에 options를 배열로 전달
1980
+ capabilities = [options]
1981
+
1982
+ # Selenium WebDriver에서 options를 capabilities로 전달
1983
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
1958
1984
  end
1959
1985
  @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')
1960
1986
  noko = Nokogiri::HTML(@driver.page_source)
@@ -1984,10 +2010,18 @@ class Wordpress
1984
2010
 
1985
2011
  def get_naver_text2(keyword)
1986
2012
  begin
1987
- Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
1988
- @driver = Selenium::WebDriver.for :chrome
2013
+ #Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
2014
+ options = Selenium::WebDriver::Chrome::Options.new
2015
+ capabilities = [options]
2016
+
2017
+ # Selenium WebDriver에서 options를 capabilities로 전달
2018
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
1989
2019
  rescue
1990
- @driver = Selenium::WebDriver.for :chrome
2020
+ # :capabilities에 options를 배열로 전달
2021
+ capabilities = [options]
2022
+
2023
+ # Selenium WebDriver에서 options를 capabilities로 전달
2024
+ @driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
1991
2025
  end
1992
2026
  @driver.get('https://search.naver.com/search.naver?ssc=tab.blog.all&sm=tab_jum&query='+keyword.to_s)
1993
2027
  for n3 in 1..10
@@ -2024,6 +2058,7 @@ class Wordpress
2024
2058
 
2025
2059
 
2026
2060
 
2061
+
2027
2062
  #def chrome_start(url, user_id, user_pw)
2028
2063
  # @url = url
2029
2064
  # @user_id = user_id
@@ -3243,6 +3278,12 @@ class Wordpress
3243
3278
  option['CCL사용'] = 'false'
3244
3279
  end
3245
3280
 
3281
+ if @data['포스트설정']['사진타이틀'].checked?
3282
+ option['사진타이틀'] = 'true'
3283
+ else
3284
+ option['사진타이틀'] = 'false'
3285
+ end
3286
+
3246
3287
 
3247
3288
  if @data['포스트설정']['내용첫줄제목에입력'].checked?
3248
3289
  title = content.split("\n")[0]
@@ -4774,13 +4815,18 @@ class Wordpress
4774
4815
  text 'URL'
4775
4816
  }
4776
4817
 
4777
- @data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
4818
+ @data['포스트설정']['사진타이틀'] = checkbox('사진 등록시 사진 하단에 제목 넣기'){
4778
4819
  top 15+ aa1
4779
4820
  left 0
4780
4821
  }
4822
+
4823
+ @data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
4824
+ top 16+ aa1
4825
+ left 0
4826
+ }
4781
4827
 
4782
4828
  @data['포스트설정']['api_key'] = entry(){
4783
- top 15+ aa1
4829
+ top 16+ aa1
4784
4830
  left 1
4785
4831
  text 'api key 입력 필수!!'
4786
4832
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cafe_buy_duo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
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-06 00:00:00.000000000 Z
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