cafe_buy_duo 0.0.71 → 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 +118 -64
- 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'
|
@@ -3611,9 +3660,19 @@ class Wordpress
|
|
3611
3660
|
end
|
3612
3661
|
|
3613
3662
|
|
3663
|
+
#if @data['포스트설정']['내용첫줄제목에입력'].checked?
|
3664
|
+
# title = content.split("\n")[0]
|
3665
|
+
#end
|
3614
3666
|
if @data['포스트설정']['내용첫줄제목에입력'].checked?
|
3615
|
-
|
3616
|
-
|
3667
|
+
# 콘텐츠를 줄 단위로 분리
|
3668
|
+
content_lines = content.split("\n")
|
3669
|
+
|
3670
|
+
# 첫 번째 줄이 <img src=로 시작하는지 확인하고, 시작하는 경우 두 번째 줄부터 확인
|
3671
|
+
title = content_lines.find { |line| !line.start_with?('<img src=') }
|
3672
|
+
|
3673
|
+
# 만약 첫 번째 줄부터 <img src=로 시작하는 경우, 두 번째 줄을 제목으로 설정
|
3674
|
+
title ||= content_lines[1] # 첫 번째 줄이 <img src=일 경우 두 번째 줄을 사용
|
3675
|
+
|
3617
3676
|
end
|
3618
3677
|
|
3619
3678
|
if @data['포스트설정']['제목을내용첫줄입력'].checked?
|
@@ -5804,28 +5863,24 @@ class Wordpress
|
|
5804
5863
|
top 2
|
5805
5864
|
left 0
|
5806
5865
|
}
|
5807
|
-
@data['포스트설정']['pay안전결제
|
5866
|
+
@data['포스트설정']['pay안전결제'] = checkbox('pay안전결제 가능'){
|
5808
5867
|
top 2
|
5809
5868
|
left 1
|
5810
5869
|
}
|
5870
|
+
|
5811
5871
|
|
5812
|
-
@data['포스트설정']['pay
|
5813
|
-
|
5814
|
-
@data['포스트설정']['상품등록정보의 거래업체 제공 동의'] = checkbox('상품등록정보의 거래업체 제공 동의'){
|
5872
|
+
@data['포스트설정']['pay송금'] = checkbox('pay송금 가능'){
|
5815
5873
|
top 2
|
5816
5874
|
left 2
|
5817
5875
|
}
|
5818
|
-
@data['포스트설정']['pay송금 가능'] = checkbox('pay송금 가능'){
|
5819
|
-
top 2
|
5820
|
-
left 3
|
5821
|
-
}
|
5822
|
-
@data['포스트설정']['pay송금 가능'].checked = true
|
5823
5876
|
|
5824
|
-
|
5877
|
+
|
5878
|
+
@data['포스트설정']['휴대전화번호노출동의'] = checkbox('휴대전화번호 노출동의'){
|
5825
5879
|
top 3
|
5826
5880
|
left 1
|
5827
5881
|
}
|
5828
|
-
|
5882
|
+
|
5883
|
+
@data['포스트설정']['안심번호'] = checkbox('안심번호 이용'){
|
5829
5884
|
top 3
|
5830
5885
|
left 2
|
5831
5886
|
}
|
@@ -5861,7 +5916,6 @@ class Wordpress
|
|
5861
5916
|
stretchy false
|
5862
5917
|
}
|
5863
5918
|
|
5864
|
-
@data['포스트설정']['워터마크'].checked = true
|
5865
5919
|
}
|
5866
5920
|
}
|
5867
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
|