cafe_buy_duo 0.0.72 → 0.0.79
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 +106 -62
- 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: c7d98aa3880f049ac882783d77ffa0a68cd626033c562c8bd08b9cea908f9e54
|
4
|
+
data.tar.gz: 1c017e16ce6e215d7c7695f41738748cb598eb75832a19443fde167fc4d66a73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66a56101aad4f3cc130848bfe36d6924379c94fd3612380809716e23a1d86a79ab424c88db5bf0e5e2695acdbc88d9109a702f49a243daad425d87c64f45f14c
|
7
|
+
data.tar.gz: d66c8426987455b8d3278bc8ef07d8711a7f7ff28b26f072e42f13d9f740295828a9974282831fca965563bf028bd19ab4f7e7d78f1c4cb52b16469667c96513
|
data/lib/cafe_buy_duo.rb
CHANGED
@@ -243,22 +243,22 @@ class Naver
|
|
243
243
|
@seed = 1
|
244
244
|
|
245
245
|
begin
|
246
|
-
#
|
247
|
-
|
248
|
-
# Webdrivers가 드라이버를 다운로드할 경로를 설정
|
246
|
+
# 웹드라이버가 사용자의 Chrome 버전에 맞는 chromedriver 다운로드 시도
|
249
247
|
Webdrivers.cache_time = 86_400 # 하루로 설정 (기본값: 86_400초)
|
250
248
|
Webdrivers.install_dir = "./" # 크롬드라이버를 수동으로 설치할 경로를 설정
|
249
|
+
|
251
250
|
# 크롬드라이버 자동 업데이트 시도
|
252
251
|
Webdrivers::Chromedriver.update
|
253
252
|
puts "chromedriver 자동 다운로드 성공"
|
254
|
-
|
253
|
+
rescue => e
|
255
254
|
puts "chromedriver 자동 다운로드 실패: #{e.message}"
|
256
255
|
puts "폴더내 크롬드라이버를 사용합니다."
|
257
256
|
puts "크롬드라이버가 오래된 경우 오류 발생될 수 있으며, 만일 오류 발생시 아래 지침을 따라주세요."
|
258
257
|
puts "1.크롬 업데이트 2.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일을 열어 드라이버를 교체하세요."
|
259
258
|
chromedriver_path = './chromedriver.exe' # 수동 경로를 인스턴스 변수로 설정
|
260
259
|
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
261
|
-
|
260
|
+
end
|
261
|
+
|
262
262
|
|
263
263
|
end
|
264
264
|
|
@@ -367,6 +367,8 @@ class Naver
|
|
367
367
|
|
368
368
|
|
369
369
|
|
370
|
+
|
371
|
+
|
370
372
|
def login(user_id, user_pw, proxy)
|
371
373
|
@user_id = user_id
|
372
374
|
@user_id11 = user_id
|
@@ -1050,54 +1052,80 @@ end
|
|
1050
1052
|
|
1051
1053
|
|
1052
1054
|
#######################################
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
if option['결제'][0] == false
|
1057
|
-
puts '결제1'
|
1058
|
-
@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
|
1059
|
-
sleep(1)
|
1060
|
-
end
|
1061
|
-
|
1062
|
-
if option['결제'][1] == true
|
1063
|
-
puts '결제2'
|
1055
|
+
if option['pay안전결제'] == 'true'
|
1064
1056
|
begin
|
1065
|
-
|
1066
|
-
|
1057
|
+
# 'selected' 클래스가 없는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1058
|
+
@driver.find_element(:xpath, "//div[@class='deal_item' and not(contains(@class, 'selected'))]//label[@for='deal1']").click
|
1059
|
+
puts '안전결제 가능 클릭'
|
1060
|
+
rescue
|
1061
|
+
end
|
1062
|
+
sleep(1)
|
1063
|
+
elsif option['pay안전결제'] == 'false'
|
1064
|
+
puts 'pay안전결제 선택 해제'
|
1065
|
+
begin
|
1066
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1067
|
+
@driver.find_element(:xpath, "//div[@class='deal_item selected']//label[@for='deal1']").click
|
1067
1068
|
rescue
|
1068
|
-
|
1069
1069
|
end
|
1070
1070
|
end
|
1071
|
-
|
1072
|
-
if option['
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1071
|
+
|
1072
|
+
if option['pay송금'] == 'true'
|
1073
|
+
begin
|
1074
|
+
# 'selected' 클래스가 없는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1075
|
+
@driver.find_element(:xpath, "//div[@class='deal_item' and not(contains(@class, 'selected'))]//label[@for='deal2']").click
|
1076
|
+
puts '안전결제 클릭'
|
1077
|
+
rescue
|
1078
|
+
end
|
1079
|
+
sleep(1)
|
1080
|
+
elsif option['pay송금'] == 'false'
|
1081
|
+
begin
|
1082
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1083
|
+
@driver.find_element(:xpath, "//div[@class='deal_item selected']//label[@for='deal2']").click
|
1084
|
+
puts 'pay송금 해제'
|
1085
|
+
rescue
|
1086
|
+
end
|
1076
1087
|
end
|
1077
1088
|
|
1078
|
-
if option['
|
1079
|
-
|
1080
|
-
|
1089
|
+
if option['휴대전화번호노출동의'] == 'true'
|
1090
|
+
begin
|
1091
|
+
# 부모 요소 .check_area 안에 .safe_number가 없는 경우에만 클릭
|
1092
|
+
@driver.find_element(:xpath, '//*[@class="check_area"]//*[@for="agree1"]').click
|
1093
|
+
puts '휴대전화번호 노출 동의 클릭'
|
1094
|
+
sleep(1)
|
1095
|
+
if option['안심번호'] == 'true'
|
1096
|
+
begin
|
1097
|
+
@driver.find_element(:xpath, '//*[@class="safe_number"]//*[@for="agree2"]').click
|
1098
|
+
puts '안심번호 클릭'
|
1099
|
+
rescue
|
1100
|
+
end
|
1101
|
+
sleep(1)
|
1102
|
+
end
|
1103
|
+
rescue
|
1104
|
+
end
|
1105
|
+
|
1106
|
+
elsif option['휴대전화번호노출동의'] == 'false'
|
1107
|
+
begin
|
1108
|
+
puts '휴대전화번호 노출 동의 해제'
|
1109
|
+
rescue
|
1110
|
+
end
|
1081
1111
|
sleep(1)
|
1082
1112
|
end
|
1083
|
-
|
1084
|
-
if option['
|
1085
|
-
|
1113
|
+
|
1114
|
+
if option['워터마크'] == 'true'
|
1115
|
+
begin
|
1116
|
+
puts '워터마크 클릭 된 상태'
|
1117
|
+
rescue
|
1118
|
+
end
|
1119
|
+
sleep(1)
|
1120
|
+
elsif option['워터마크'] == 'false'
|
1086
1121
|
begin
|
1087
|
-
|
1088
|
-
|
1122
|
+
# 'selected' 클래스가 있는 첫 번째 deal_item 요소를 찾아 그 안의 label을 클릭
|
1123
|
+
@driver.find_element(:xpath, '//*[@for="watermark"]').click
|
1124
|
+
puts '워터마크 해제 클릭'
|
1089
1125
|
rescue
|
1090
|
-
|
1091
1126
|
end
|
1092
1127
|
end
|
1093
|
-
|
1094
|
-
if option['결제'][5] == false
|
1095
|
-
puts '결제6'
|
1096
|
-
@driver.find_element(:xpath, '//*[@id="app"]/div/div/section/div/div[2]/div[1]/div[1]/div[2]/div[7]/div/div/label').click
|
1097
|
-
|
1098
|
-
end
|
1099
1128
|
|
1100
|
-
|
1101
1129
|
|
1102
1130
|
|
1103
1131
|
|
@@ -2311,7 +2339,8 @@ class Wordpress
|
|
2311
2339
|
|
2312
2340
|
|
2313
2341
|
|
2314
|
-
|
2342
|
+
|
2343
|
+
#def chrome_start(url, user_id, user_pw)
|
2315
2344
|
# @url = url
|
2316
2345
|
# @user_id = user_id
|
2317
2346
|
# @user_pw = user_pw
|
@@ -2566,13 +2595,7 @@ class Wordpress
|
|
2566
2595
|
product_category1 << @data['포스트설정']['카테고리대1'].text.to_s.force_encoding('utf-8')
|
2567
2596
|
product_category1 << @data['포스트설정']['카테고리중2'].text.to_s.force_encoding('utf-8')
|
2568
2597
|
product_category1 << @data['포스트설정']['카테고리소3'].text.to_s.force_encoding('utf-8')
|
2569
|
-
|
2570
|
-
payment << @data['포스트설정']['pay안전결제 가능'].checked?
|
2571
|
-
payment << @data['포스트설정']['상품등록정보의 거래업체 제공 동의'].checked?
|
2572
|
-
payment << @data['포스트설정']['pay송금 가능'].checked?
|
2573
|
-
payment << @data['포스트설정']['휴대전화번호 노출동의'].checked?
|
2574
|
-
payment << @data['포스트설정']['안심번호 이용'].checked?
|
2575
|
-
payment << @data['포스트설정']['워터마크'].checked?
|
2598
|
+
|
2576
2599
|
|
2577
2600
|
while true
|
2578
2601
|
for n in 0..@data['table'].length-1
|
@@ -2679,7 +2702,6 @@ class Wordpress
|
|
2679
2702
|
end
|
2680
2703
|
end
|
2681
2704
|
|
2682
|
-
|
2683
2705
|
check_success = 1
|
2684
2706
|
@data['table'][index][-1] = 0
|
2685
2707
|
if @data['제목설정']['제목'].length == 0
|
@@ -3554,7 +3576,34 @@ class Wordpress
|
|
3554
3576
|
option['클릭항목'] = [@data['포스트설정']['미개봉'].checked?,@data['포스트설정']['거의 새 것'].checked?,@data['포스트설정']['사용감있음'].checked?]
|
3555
3577
|
option['배달'] = [@data['포스트설정']['직거래'].checked?, @data['포스트설정']['택배 거래'].checked?, @data['포스트설정']['온라인전송'].checked?]
|
3556
3578
|
option['직 거래 카테고리'] = product_category1
|
3557
|
-
|
3579
|
+
|
3580
|
+
|
3581
|
+
if @data['포스트설정']['pay안전결제'].checked?
|
3582
|
+
option['pay안전결제'] = 'true'
|
3583
|
+
else
|
3584
|
+
option['pay안전결제'] = 'false'
|
3585
|
+
end
|
3586
|
+
if @data['포스트설정']['pay송금'].checked?
|
3587
|
+
option['pay송금'] = 'true'
|
3588
|
+
else
|
3589
|
+
option['pay송금'] = 'false'
|
3590
|
+
end
|
3591
|
+
if @data['포스트설정']['휴대전화번호노출동의'].checked?
|
3592
|
+
option['휴대전화번호노출동의'] = 'true'
|
3593
|
+
else
|
3594
|
+
option['휴대전화번호노출동의'] = 'false'
|
3595
|
+
end
|
3596
|
+
if @data['포스트설정']['안심번호'].checked?
|
3597
|
+
option['안심번호'] = 'true'
|
3598
|
+
else
|
3599
|
+
option['안심번호'] = 'false'
|
3600
|
+
end
|
3601
|
+
if @data['포스트설정']['워터마크'].checked?
|
3602
|
+
option['워터마크'] = 'true'
|
3603
|
+
else
|
3604
|
+
option['워터마크'] = 'false'
|
3605
|
+
end
|
3606
|
+
|
3558
3607
|
|
3559
3608
|
if @data['포스트설정']['전체공개'].checked?
|
3560
3609
|
option['전체공개'] = 'true'
|
@@ -5814,28 +5863,24 @@ class Wordpress
|
|
5814
5863
|
top 2
|
5815
5864
|
left 0
|
5816
5865
|
}
|
5817
|
-
@data['포스트설정']['pay안전결제
|
5866
|
+
@data['포스트설정']['pay안전결제'] = checkbox('pay안전결제 가능'){
|
5818
5867
|
top 2
|
5819
5868
|
left 1
|
5820
5869
|
}
|
5870
|
+
|
5821
5871
|
|
5822
|
-
@data['포스트설정']['pay
|
5823
|
-
|
5824
|
-
@data['포스트설정']['상품등록정보의 거래업체 제공 동의'] = checkbox('상품등록정보의 거래업체 제공 동의'){
|
5872
|
+
@data['포스트설정']['pay송금'] = checkbox('pay송금 가능'){
|
5825
5873
|
top 2
|
5826
5874
|
left 2
|
5827
5875
|
}
|
5828
|
-
@data['포스트설정']['pay송금 가능'] = checkbox('pay송금 가능'){
|
5829
|
-
top 2
|
5830
|
-
left 3
|
5831
|
-
}
|
5832
|
-
@data['포스트설정']['pay송금 가능'].checked = true
|
5833
5876
|
|
5834
|
-
|
5877
|
+
|
5878
|
+
@data['포스트설정']['휴대전화번호노출동의'] = checkbox('휴대전화번호 노출동의'){
|
5835
5879
|
top 3
|
5836
5880
|
left 1
|
5837
5881
|
}
|
5838
|
-
|
5882
|
+
|
5883
|
+
@data['포스트설정']['안심번호'] = checkbox('안심번호 이용'){
|
5839
5884
|
top 3
|
5840
5885
|
left 2
|
5841
5886
|
}
|
@@ -5871,7 +5916,6 @@ class Wordpress
|
|
5871
5916
|
stretchy false
|
5872
5917
|
}
|
5873
5918
|
|
5874
|
-
@data['포스트설정']['워터마크'].checked = true
|
5875
5919
|
}
|
5876
5920
|
}
|
5877
5921
|
}
|
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.79
|
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
|