cafe_buy_duo 0.0.11 → 0.0.15
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_buy_duo.rb +206 -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: 36b4b834d11812846aac4f7ffcf7e25dd1acf42c42208b10c0028ca4933a82d7
|
4
|
+
data.tar.gz: 5b1386b8aa40d9c57677e36ca0b34fc41711bb7417c97e386927e31873116e4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e59c88da41c5cfe8e445c65c77995c39d13adfc9cefb6eeb64a79b94e35a3868aa43bb7a6e5591f89a93c698ff7ccec3dbc5b6632a8e674fd5511815f61b49a
|
7
|
+
data.tar.gz: 48410279650ff588a39632266ec8f8b1a62922816b483ac413d2b8117ee54a3073f63bc2b2be2857fe2c50a435ab95fbbf565d81b75b9c4da06fa3fd036d5df3
|
data/lib/cafe_buy_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
|
|
@@ -1951,10 +1967,18 @@ class Wordpress
|
|
1951
1967
|
|
1952
1968
|
def get_naver_text(q)
|
1953
1969
|
begin
|
1954
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1955
|
-
|
1970
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1971
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
1972
|
+
capabilities = [options]
|
1973
|
+
|
1974
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1975
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1956
1976
|
rescue
|
1957
|
-
|
1977
|
+
# :capabilities에 options를 배열로 전달
|
1978
|
+
capabilities = [options]
|
1979
|
+
|
1980
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
1981
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1958
1982
|
end
|
1959
1983
|
@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
1984
|
noko = Nokogiri::HTML(@driver.page_source)
|
@@ -1984,10 +2008,18 @@ class Wordpress
|
|
1984
2008
|
|
1985
2009
|
def get_naver_text2(keyword)
|
1986
2010
|
begin
|
1987
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1988
|
-
|
2011
|
+
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
2012
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
2013
|
+
capabilities = [options]
|
2014
|
+
|
2015
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
2016
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1989
2017
|
rescue
|
1990
|
-
|
2018
|
+
# :capabilities에 options를 배열로 전달
|
2019
|
+
capabilities = [options]
|
2020
|
+
|
2021
|
+
# Selenium WebDriver에서 options를 capabilities로 전달
|
2022
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
1991
2023
|
end
|
1992
2024
|
@driver.get('https://search.naver.com/search.naver?ssc=tab.blog.all&sm=tab_jum&query='+keyword.to_s)
|
1993
2025
|
for n3 in 1..10
|
@@ -2024,6 +2056,7 @@ class Wordpress
|
|
2024
2056
|
|
2025
2057
|
|
2026
2058
|
|
2059
|
+
|
2027
2060
|
#def chrome_start(url, user_id, user_pw)
|
2028
2061
|
# @url = url
|
2029
2062
|
# @user_id = user_id
|
@@ -3075,10 +3108,36 @@ class Wordpress
|
|
3075
3108
|
end
|
3076
3109
|
|
3077
3110
|
if @data['포스트설정']['인용구변경'].checked?
|
3078
|
-
@data['포스트설정']['
|
3079
|
-
|
3111
|
+
if @data['포스트설정']['인용구문구설정'].checked?
|
3112
|
+
# 인용구순서 사용 시
|
3113
|
+
if @data['포스트설정']['인용구순서'].checked?
|
3114
|
+
quote_index = 0
|
3115
|
+
@data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
3116
|
+
content = content.gsub(i.force_encoding('utf-8')) {
|
3117
|
+
quote = "<inyonggoo src=''>" + @data['포스트설정']['인용구'][quote_index] + "</inyonggoo>"
|
3118
|
+
quote_index = (quote_index + 1) % @data['포스트설정']['인용구'].length
|
3119
|
+
quote
|
3120
|
+
}
|
3121
|
+
end
|
3122
|
+
elsif @data['포스트설정']['인용구랜덤'].checked?
|
3123
|
+
# 인용구랜덤 사용 시
|
3124
|
+
@data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
3125
|
+
# 랜덤으로 인용구를 선택하여 각 단어마다 다른 인용구가 적용되도록 함
|
3126
|
+
content = content.gsub(i.force_encoding('utf-8')) {
|
3127
|
+
# 랜덤으로 인용구를 선택
|
3128
|
+
chosen_quote = @data['포스트설정']['인용구'].sample
|
3129
|
+
"<inyonggoo src=''>" + chosen_quote + "</inyonggoo>"
|
3130
|
+
}
|
3131
|
+
end
|
3132
|
+
end
|
3133
|
+
elsif @data['포스트설정']['인용구제목사용'].checked?
|
3134
|
+
# 제목으로 적용할 경우, 특정 단어가 포함된 위치에 제목 스타일을 적용
|
3135
|
+
@data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
3136
|
+
# i는 '특정단어'입니다. 이 단어가 content에 여러 번 있을 수 있습니다.
|
3137
|
+
content = content.split(i.force_encoding('utf-8')).join(""+'<inyonggoo src="">'+title+'</inyonggoo>'+"")
|
3080
3138
|
end
|
3081
3139
|
end
|
3140
|
+
end
|
3082
3141
|
|
3083
3142
|
@data['table'][index][-1] = 80
|
3084
3143
|
@data['table'] << []
|
@@ -3218,8 +3277,14 @@ class Wordpress
|
|
3218
3277
|
end
|
3219
3278
|
|
3220
3279
|
|
3221
|
-
if @data['포스트설정']['
|
3222
|
-
title = content.split("\n")[0]
|
3280
|
+
if @data['포스트설정']['내용첫줄제목에입력'].checked?
|
3281
|
+
title = content.split("\n")[0]
|
3282
|
+
|
3283
|
+
end
|
3284
|
+
|
3285
|
+
if @data['포스트설정']['제목을내용첫줄입력'].checked?
|
3286
|
+
|
3287
|
+
content = "#{title}\n" + content
|
3223
3288
|
end
|
3224
3289
|
|
3225
3290
|
if @data['포스트설정']['중앙정렬'].checked?
|
@@ -4564,21 +4629,29 @@ class Wordpress
|
|
4564
4629
|
top 5
|
4565
4630
|
left 0
|
4566
4631
|
on_toggled{
|
4567
|
-
if @data['포스트설정']['제목을랜덤'].checked?
|
4568
|
-
|
4569
|
-
|
4570
|
-
end
|
4632
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4633
|
+
@data['포스트설정']['내용첫줄제목에입력'].checked = false
|
4634
|
+
@data['포스트설정']['제목을내용첫줄입력'].checked = false
|
4571
4635
|
end
|
4572
4636
|
}
|
4573
4637
|
}
|
4574
|
-
@data['포스트설정']['
|
4638
|
+
@data['포스트설정']['내용첫줄제목에입력'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4575
4639
|
top 6
|
4576
4640
|
left 0
|
4577
4641
|
on_toggled{
|
4578
|
-
if @data['포스트설정']['
|
4579
|
-
|
4580
|
-
|
4581
|
-
|
4642
|
+
if @data['포스트설정']['내용첫줄제목에입력'].checked?
|
4643
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4644
|
+
@data['포스트설정']['제목을내용첫줄입력'].checked = false
|
4645
|
+
end
|
4646
|
+
}
|
4647
|
+
}
|
4648
|
+
@data['포스트설정']['제목을내용첫줄입력'] = checkbox('제목을 내용 첫 줄에 넣기'){
|
4649
|
+
top 6
|
4650
|
+
left 1
|
4651
|
+
on_toggled{
|
4652
|
+
if @data['포스트설정']['제목을내용첫줄입력'].checked?
|
4653
|
+
@data['포스트설정']['내용첫줄제목에입력'].checked = false
|
4654
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4582
4655
|
end
|
4583
4656
|
}
|
4584
4657
|
}
|
@@ -4858,22 +4931,66 @@ class Wordpress
|
|
4858
4931
|
left 1
|
4859
4932
|
text 'ex) OO시 OO구 OO동 270-68'
|
4860
4933
|
}
|
4861
|
-
@data['포스트설정']['인용구변경'] = checkbox('
|
4934
|
+
@data['포스트설정']['인용구변경'] = checkbox('특정단어를 인용구로 적용'){
|
4862
4935
|
top 11
|
4863
4936
|
left 0
|
4937
|
+
on_toggled {
|
4938
|
+
if @data['포스트설정']['인용구변경'].checked?
|
4939
|
+
@data['포스트설정']['인용구제목사용'].enabled = true # '내용투명' 활성화
|
4940
|
+
@data['포스트설정']['인용구문구설정'].enabled = true # '내용투명' 활성화
|
4941
|
+
else
|
4942
|
+
@data['포스트설정']['인용구변경'].checked = false # 체크 해제
|
4943
|
+
@data['포스트설정']['인용구제목사용'].enabled = false # 비활성화
|
4944
|
+
@data['포스트설정']['인용구문구설정'].enabled = false # 비활성화
|
4945
|
+
@data['포스트설정']['인용구순서'].enabled = false # 비활성화
|
4946
|
+
@data['포스트설정']['인용구랜덤'].enabled = false # 비활성화
|
4947
|
+
end
|
4948
|
+
}
|
4864
4949
|
}
|
4865
4950
|
@data['포스트설정']['인용구변경단어'] = entry{
|
4866
4951
|
top 11
|
4867
4952
|
left 1
|
4868
4953
|
text '특정단어'
|
4869
4954
|
}
|
4870
|
-
|
4955
|
+
@data['포스트설정']['인용구제목사용'] = checkbox('인용구를 제목으로 삽입 설정'){
|
4871
4956
|
top 12
|
4872
4957
|
left 0
|
4958
|
+
enabled false # 기본적으로 비활성화
|
4959
|
+
on_toggled {
|
4960
|
+
if @data['포스트설정']['인용구제목사용'].checked?
|
4961
|
+
@data['포스트설정']['인용구문구설정'].checked = false # 체크 해제
|
4962
|
+
@data['포스트설정']['인용구문구설정'].enabled = false
|
4963
|
+
else
|
4964
|
+
@data['포스트설정']['인용구문구설정'].enabled = true
|
4965
|
+
end
|
4966
|
+
}
|
4967
|
+
|
4968
|
+
}
|
4969
|
+
#label('ㄴ인용구 사용시 들어갈 문구'){
|
4970
|
+
@data['포스트설정']['인용구문구설정'] = checkbox('인용구에 들어갈 문구 설정'){
|
4971
|
+
top 13
|
4972
|
+
left 0
|
4973
|
+
enabled false # 기본적으로 비활성화
|
4974
|
+
|
4975
|
+
on_toggled {
|
4976
|
+
if @data['포스트설정']['인용구문구설정'].checked?
|
4977
|
+
@data['포스트설정']['인용구제목사용'].checked = false
|
4978
|
+
@data['포스트설정']['인용구제목사용'].enabled = false
|
4979
|
+
@data['포스트설정']['인용구순서'].enabled = true # '내용투명' 활성화
|
4980
|
+
@data['포스트설정']['인용구랜덤'].enabled = true # '내용투명' 활성화
|
4981
|
+
else
|
4982
|
+
@data['포스트설정']['인용구문구설정'].checked = false # 체크 해제
|
4983
|
+
@data['포스트설정']['인용구순서'].enabled = false # 비활성화
|
4984
|
+
@data['포스트설정']['인용구랜덤'].enabled = false # 비활성화
|
4985
|
+
@data['포스트설정']['인용구제목사용'].enabled = true
|
4986
|
+
end
|
4987
|
+
}
|
4988
|
+
|
4873
4989
|
}
|
4874
4990
|
button('설정 파일 불러오기'){
|
4875
|
-
top
|
4991
|
+
top 13
|
4876
4992
|
left 1
|
4993
|
+
|
4877
4994
|
on_clicked{
|
4878
4995
|
file = open_file
|
4879
4996
|
if file != nil
|
@@ -4881,6 +4998,27 @@ class Wordpress
|
|
4881
4998
|
@data['포스트설정']['인용구'] = file_data.split(',')
|
4882
4999
|
end
|
4883
5000
|
}
|
5001
|
+
}
|
5002
|
+
@data['포스트설정']['인용구순서'] = checkbox('인용구 순서 사용'){
|
5003
|
+
top 14
|
5004
|
+
left 0
|
5005
|
+
enabled false # 기본적으로 비활성화
|
5006
|
+
on_toggled {
|
5007
|
+
if @data['포스트설정']['인용구순서'].checked?
|
5008
|
+
@data['포스트설정']['인용구랜덤'].checked = false
|
5009
|
+
end
|
5010
|
+
}
|
5011
|
+
|
5012
|
+
}
|
5013
|
+
@data['포스트설정']['인용구랜덤'] = checkbox('인용구 랜덤 사용'){
|
5014
|
+
top 14
|
5015
|
+
left 1
|
5016
|
+
enabled false # 기본적으로 비활성화
|
5017
|
+
on_toggled {
|
5018
|
+
if @data['포스트설정']['인용구랜덤'].checked?
|
5019
|
+
@data['포스트설정']['인용구순서'].checked = false
|
5020
|
+
end
|
5021
|
+
}
|
4884
5022
|
}
|
4885
5023
|
}
|
4886
5024
|
}
|
@@ -5407,7 +5545,7 @@ class Wordpress
|
|
5407
5545
|
@data['포스트설정']['복사,저장 허용'].checked = true
|
5408
5546
|
@data['포스트설정']['자동출처 사용'].checked = false
|
5409
5547
|
@data['포스트설정']['CCL사용'].checked = false
|
5410
|
-
|
5548
|
+
@data['포스트설정']['인용구랜덤'].checked = true
|
5411
5549
|
|
5412
5550
|
}.show
|
5413
5551
|
end
|
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.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|