cafe_buy 0.0.72 → 0.0.75
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.rb +106 -61
- 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: 72417a84154e3b317e254b159f769e173271fd2e0ba50c6e9b46dd0925ef47d5
|
4
|
+
data.tar.gz: cb37a0987e7999771cf37cbf3e8e5a58c8b7d5b3241ed8da2eafbe2b603c5b88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4ccae15a5e19b822ac1d743bdc9abd324da8af96840e328d66ff50cbb38eb2c72527237b2a8d89fd0bcbb2a451935710cd526dee6df557b01680d6eb9a7b522
|
7
|
+
data.tar.gz: e1f60497fb201359b97211ff7785be6259af8065078a5a1224d2bc0b476fac03ca6c752064cd073d34abd4f35242173ee56d9f2b6fa9ebbb6bc2633b3bbf3f1a
|
data/lib/cafe_buy.rb
CHANGED
@@ -243,22 +243,25 @@ class Naver
|
|
243
243
|
@seed = 1
|
244
244
|
|
245
245
|
begin
|
246
|
-
#
|
247
|
-
|
248
|
-
|
246
|
+
# 캐시를 지워서 이전에 다운로드된 chromedriver를 제거
|
247
|
+
Webdrivers.cache_clear
|
248
|
+
|
249
|
+
# 웹드라이버가 사용자의 Chrome 버전에 맞는 chromedriver 다운로드 시도
|
249
250
|
Webdrivers.cache_time = 86_400 # 하루로 설정 (기본값: 86_400초)
|
250
251
|
Webdrivers.install_dir = "./" # 크롬드라이버를 수동으로 설치할 경로를 설정
|
252
|
+
|
251
253
|
# 크롬드라이버 자동 업데이트 시도
|
252
254
|
Webdrivers::Chromedriver.update
|
253
255
|
puts "chromedriver 자동 다운로드 성공"
|
254
|
-
|
256
|
+
rescue => e
|
255
257
|
puts "chromedriver 자동 다운로드 실패: #{e.message}"
|
256
258
|
puts "폴더내 크롬드라이버를 사용합니다."
|
257
259
|
puts "크롬드라이버가 오래된 경우 오류 발생될 수 있으며, 만일 오류 발생시 아래 지침을 따라주세요."
|
258
260
|
puts "1.크롬 업데이트 2.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일을 열어 드라이버를 교체하세요."
|
259
261
|
chromedriver_path = './chromedriver.exe' # 수동 경로를 인스턴스 변수로 설정
|
260
262
|
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
261
|
-
|
263
|
+
end
|
264
|
+
|
262
265
|
|
263
266
|
end
|
264
267
|
|
@@ -1052,54 +1055,80 @@ end
|
|
1052
1055
|
|
1053
1056
|
|
1054
1057
|
#######################################
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
if option['결제'][0] == false
|
1059
|
-
puts '결제1'
|
1060
|
-
@driver.find_element(:xpath, '//*[@id="app"]/div/div/section/div/div[2]/div[1]/div[1]/div[2]/div[5]/div/div/div[1]/div[1]/div/label').click
|
1061
|
-
sleep(1)
|
1062
|
-
end
|
1063
|
-
|
1064
|
-
if option['결제'][1] == true
|
1065
|
-
puts '결제2'
|
1058
|
+
if option['pay안전결제'] == 'true'
|
1066
1059
|
begin
|
1067
|
-
|
1068
|
-
|
1060
|
+
# 'selected' 클래스가 없는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1061
|
+
@driver.find_element(:xpath, "//div[@class='deal_item' and not(contains(@class, 'selected'))]//label[@for='deal1']").click
|
1062
|
+
puts '안전결제 가능 클릭'
|
1063
|
+
rescue
|
1064
|
+
end
|
1065
|
+
sleep(1)
|
1066
|
+
elsif option['pay안전결제'] == 'false'
|
1067
|
+
puts 'pay안전결제 선택 해제'
|
1068
|
+
begin
|
1069
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1070
|
+
@driver.find_element(:xpath, "//div[@class='deal_item selected']//label[@for='deal1']").click
|
1069
1071
|
rescue
|
1070
|
-
|
1071
1072
|
end
|
1072
1073
|
end
|
1073
|
-
|
1074
|
-
if option['
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1074
|
+
|
1075
|
+
if option['pay송금'] == 'true'
|
1076
|
+
begin
|
1077
|
+
# 'selected' 클래스가 없는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1078
|
+
@driver.find_element(:xpath, "//div[@class='deal_item' and not(contains(@class, 'selected'))]//label[@for='deal2']").click
|
1079
|
+
puts '안전결제 클릭'
|
1080
|
+
rescue
|
1081
|
+
end
|
1082
|
+
sleep(1)
|
1083
|
+
elsif option['pay송금'] == 'false'
|
1084
|
+
begin
|
1085
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1086
|
+
@driver.find_element(:xpath, "//div[@class='deal_item selected']//label[@for='deal2']").click
|
1087
|
+
puts 'pay송금 해제'
|
1088
|
+
rescue
|
1089
|
+
end
|
1078
1090
|
end
|
1079
1091
|
|
1080
|
-
if option['
|
1081
|
-
|
1082
|
-
|
1092
|
+
if option['휴대전화번호노출동의'] == 'true'
|
1093
|
+
begin
|
1094
|
+
# 부모 요소 .check_area 안에 .safe_number가 없는 경우에만 클릭
|
1095
|
+
@driver.find_element(:xpath, '//*[@class="check_area"]//*[@for="agree1"]').click
|
1096
|
+
puts '휴대전화번호 노출 동의 클릭'
|
1097
|
+
sleep(1)
|
1098
|
+
if option['안심번호'] == 'true'
|
1099
|
+
begin
|
1100
|
+
@driver.find_element(:xpath, '//*[@class="safe_number"]//*[@for="agree2"]').click
|
1101
|
+
puts '안심번호 클릭'
|
1102
|
+
rescue
|
1103
|
+
end
|
1104
|
+
sleep(1)
|
1105
|
+
end
|
1106
|
+
rescue
|
1107
|
+
end
|
1108
|
+
|
1109
|
+
elsif option['휴대전화번호노출동의'] == 'false'
|
1110
|
+
begin
|
1111
|
+
puts '휴대전화번호 노출 동의 해제'
|
1112
|
+
rescue
|
1113
|
+
end
|
1083
1114
|
sleep(1)
|
1084
1115
|
end
|
1085
|
-
|
1086
|
-
if option['
|
1087
|
-
|
1116
|
+
|
1117
|
+
if option['워터마크'] == 'true'
|
1118
|
+
begin
|
1119
|
+
puts '워터마크 클릭 된 상태'
|
1120
|
+
rescue
|
1121
|
+
end
|
1122
|
+
sleep(1)
|
1123
|
+
elsif option['워터마크'] == 'false'
|
1088
1124
|
begin
|
1089
|
-
|
1090
|
-
|
1125
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1126
|
+
@driver.find_element(:xpath, '//*[@for="watermark"]').click
|
1127
|
+
puts '워터마크 해제 클릭'
|
1091
1128
|
rescue
|
1092
|
-
|
1093
1129
|
end
|
1094
1130
|
end
|
1095
|
-
|
1096
|
-
if option['결제'][5] == false
|
1097
|
-
puts '결제6'
|
1098
|
-
@driver.find_element(:xpath, '//*[@id="app"]/div/div/section/div/div[2]/div[1]/div[1]/div[2]/div[7]/div/div/label').click
|
1099
|
-
|
1100
|
-
end
|
1101
1131
|
|
1102
|
-
|
1103
1132
|
|
1104
1133
|
|
1105
1134
|
|
@@ -2501,13 +2530,7 @@ class Wordpress
|
|
2501
2530
|
product_category1 << @data['포스트설정']['카테고리대1'].text.to_s.force_encoding('utf-8')
|
2502
2531
|
product_category1 << @data['포스트설정']['카테고리중2'].text.to_s.force_encoding('utf-8')
|
2503
2532
|
product_category1 << @data['포스트설정']['카테고리소3'].text.to_s.force_encoding('utf-8')
|
2504
|
-
|
2505
|
-
payment << @data['포스트설정']['pay안전결제 가능'].checked?
|
2506
|
-
payment << @data['포스트설정']['상품등록정보의 거래업체 제공 동의'].checked?
|
2507
|
-
payment << @data['포스트설정']['pay송금 가능'].checked?
|
2508
|
-
payment << @data['포스트설정']['휴대전화번호 노출동의'].checked?
|
2509
|
-
payment << @data['포스트설정']['안심번호 이용'].checked?
|
2510
|
-
payment << @data['포스트설정']['워터마크'].checked?
|
2533
|
+
|
2511
2534
|
|
2512
2535
|
while true
|
2513
2536
|
for n in 0..@data['table'].length-1
|
@@ -3488,7 +3511,34 @@ class Wordpress
|
|
3488
3511
|
option['클릭항목'] = [@data['포스트설정']['미개봉'].checked?,@data['포스트설정']['거의 새 것'].checked?,@data['포스트설정']['사용감있음'].checked?]
|
3489
3512
|
option['배달'] = [@data['포스트설정']['직거래'].checked?, @data['포스트설정']['택배 거래'].checked?, @data['포스트설정']['온라인전송'].checked?]
|
3490
3513
|
option['직 거래 카테고리'] = product_category1
|
3491
|
-
|
3514
|
+
|
3515
|
+
|
3516
|
+
if @data['포스트설정']['pay안전결제'].checked?
|
3517
|
+
option['pay안전결제'] = 'true'
|
3518
|
+
else
|
3519
|
+
option['pay안전결제'] = 'false'
|
3520
|
+
end
|
3521
|
+
if @data['포스트설정']['pay송금'].checked?
|
3522
|
+
option['pay송금'] = 'true'
|
3523
|
+
else
|
3524
|
+
option['pay송금'] = 'false'
|
3525
|
+
end
|
3526
|
+
if @data['포스트설정']['휴대전화번호노출동의'].checked?
|
3527
|
+
option['휴대전화번호노출동의'] = 'true'
|
3528
|
+
else
|
3529
|
+
option['휴대전화번호노출동의'] = 'false'
|
3530
|
+
end
|
3531
|
+
if @data['포스트설정']['안심번호'].checked?
|
3532
|
+
option['안심번호'] = 'true'
|
3533
|
+
else
|
3534
|
+
option['안심번호'] = 'false'
|
3535
|
+
end
|
3536
|
+
if @data['포스트설정']['워터마크'].checked?
|
3537
|
+
option['워터마크'] = 'true'
|
3538
|
+
else
|
3539
|
+
option['워터마크'] = 'false'
|
3540
|
+
end
|
3541
|
+
|
3492
3542
|
|
3493
3543
|
if @data['포스트설정']['전체공개'].checked?
|
3494
3544
|
option['전체공개'] = 'true'
|
@@ -3655,7 +3705,7 @@ class Wordpress
|
|
3655
3705
|
@data['포스트설정']['막글'] = ''
|
3656
3706
|
@data['포스트설정']['프록시리스트'] = Array.new
|
3657
3707
|
@data['포스트설정']['인용구'] = Array.new
|
3658
|
-
@user_login_ok = "
|
3708
|
+
@user_login_ok = "0"
|
3659
3709
|
window('카페 상품 게시판 등록기', 800, 570) {
|
3660
3710
|
margined true
|
3661
3711
|
|
@@ -5742,28 +5792,24 @@ class Wordpress
|
|
5742
5792
|
top 2
|
5743
5793
|
left 0
|
5744
5794
|
}
|
5745
|
-
@data['포스트설정']['pay안전결제
|
5795
|
+
@data['포스트설정']['pay안전결제'] = checkbox('pay안전결제 가능'){
|
5746
5796
|
top 2
|
5747
5797
|
left 1
|
5748
5798
|
}
|
5799
|
+
|
5749
5800
|
|
5750
|
-
@data['포스트설정']['pay
|
5751
|
-
|
5752
|
-
@data['포스트설정']['상품등록정보의 거래업체 제공 동의'] = checkbox('상품등록정보의 거래업체 제공 동의'){
|
5801
|
+
@data['포스트설정']['pay송금'] = checkbox('pay송금 가능'){
|
5753
5802
|
top 2
|
5754
5803
|
left 2
|
5755
5804
|
}
|
5756
|
-
@data['포스트설정']['pay송금 가능'] = checkbox('pay송금 가능'){
|
5757
|
-
top 2
|
5758
|
-
left 3
|
5759
|
-
}
|
5760
|
-
@data['포스트설정']['pay송금 가능'].checked = true
|
5761
5805
|
|
5762
|
-
|
5806
|
+
|
5807
|
+
@data['포스트설정']['휴대전화번호노출동의'] = checkbox('휴대전화번호 노출동의'){
|
5763
5808
|
top 3
|
5764
5809
|
left 1
|
5765
5810
|
}
|
5766
|
-
|
5811
|
+
|
5812
|
+
@data['포스트설정']['안심번호'] = checkbox('안심번호 이용'){
|
5767
5813
|
top 3
|
5768
5814
|
left 2
|
5769
5815
|
}
|
@@ -5799,7 +5845,6 @@ class Wordpress
|
|
5799
5845
|
stretchy false
|
5800
5846
|
}
|
5801
5847
|
|
5802
|
-
@data['포스트설정']['워터마크'].checked = true
|
5803
5848
|
}
|
5804
5849
|
}
|
5805
5850
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cafe_buy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.75
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
11
|
+
date: 2025-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|