cafe_buy_duo 0.0.5 → 0.0.7
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 +524 -373
- metadata +2 -2
data/lib/cafe_buy_duo.rb
CHANGED
@@ -17,27 +17,29 @@ require 'cgi'
|
|
17
17
|
require 'digest'
|
18
18
|
require 'auto_click'
|
19
19
|
require 'rainbow/refinement'
|
20
|
-
require 'watir'
|
21
20
|
include AutoClickMethods
|
22
21
|
using Rainbow
|
23
|
-
|
22
|
+
include Glimmer
|
24
23
|
|
25
24
|
class Chat
|
25
|
+
|
26
26
|
def initialize(api_key)
|
27
27
|
@api_key = api_key
|
28
28
|
end
|
29
29
|
|
30
30
|
def message2(keyword)
|
31
|
+
puts'[GPT] 키워드 기반 글을 생성 중입니다.......'.yellow
|
31
32
|
url = 'https://api.openai.com/v1/chat/completions'
|
32
33
|
h = {
|
33
34
|
'Content-Type' => 'application/json',
|
34
35
|
'Authorization' => 'Bearer ' + @api_key
|
35
36
|
}
|
36
37
|
d = {
|
37
|
-
'model' => 'gpt-3.5-turbo',
|
38
|
+
#'model' => 'gpt-3.5-turbo',
|
39
|
+
'model' => 'gpt-4',
|
38
40
|
'messages' => [{
|
39
41
|
"role" => "assistant",
|
40
|
-
"content" => keyword.to_s+" 소개하는
|
42
|
+
"content" => keyword.to_s+" 소개하는 글을 1500자에서 2500자 사이로 만들어줘"
|
41
43
|
}]
|
42
44
|
}
|
43
45
|
answer = ''
|
@@ -68,10 +70,11 @@ class Chat
|
|
68
70
|
'Authorization' => 'Bearer ' + @api_key
|
69
71
|
}
|
70
72
|
d = {
|
71
|
-
'model' => 'gpt-3.5-turbo',
|
73
|
+
#'model' => 'gpt-3.5-turbo',
|
74
|
+
'model' => 'gpt-4',
|
72
75
|
'messages' => [{
|
73
76
|
"role" => "assistant",
|
74
|
-
"content" => keyword.to_s+"
|
77
|
+
"content" => keyword.to_s+" 관련된 글을 1500자에서 2500자 사이로 만들어줘"
|
75
78
|
}]
|
76
79
|
}
|
77
80
|
answer = ''
|
@@ -102,23 +105,137 @@ class Chat
|
|
102
105
|
end
|
103
106
|
end
|
104
107
|
|
108
|
+
class Chat_title
|
109
|
+
|
110
|
+
def initialize(api_key)
|
111
|
+
@api_key = api_key
|
112
|
+
end
|
113
|
+
|
114
|
+
def message(title)
|
115
|
+
puts'[GPT] 유사 제목을 생성 중입니다.......'.yellow
|
116
|
+
url = 'https://api.openai.com/v1/chat/completions'
|
117
|
+
headers = {
|
118
|
+
'Content-Type' => 'application/json',
|
119
|
+
'Authorization' => 'Bearer ' + @api_key
|
120
|
+
}
|
121
|
+
data = {
|
122
|
+
'model' => 'gpt-4',
|
123
|
+
'messages' => [{
|
124
|
+
"role" => "system",
|
125
|
+
"content" => "너는 매우 친절하고 성의 있게 답변하는 AI 어시스턴트야."
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"role" => "user",
|
129
|
+
"content" => "#{title}\n위 문장을 비슷한 길이로 ChatGPT의 멘트는 빼고 표현을 더 추가해서 하나만 만들어줘."
|
130
|
+
}]
|
131
|
+
}
|
132
|
+
|
133
|
+
begin
|
134
|
+
req = HTTP.headers(headers).post(url, json: data)
|
135
|
+
puts "HTTP Status: #{req.status}" # 상태 코드 확인
|
136
|
+
response = JSON.parse(req.body.to_s)
|
137
|
+
puts "API Response: #{response}" # 전체 응답 출력
|
138
|
+
|
139
|
+
if req.status == 429
|
140
|
+
return "API 요청 제한을 초과했습니다. 플랜 및 할당량을 확인하세요."
|
141
|
+
end
|
142
|
+
|
143
|
+
# 응답 데이터에서 안전하게 값 추출
|
144
|
+
answer = response.dig('choices', 0, 'message', 'content')
|
145
|
+
answer ||= (title) # 응답이 없을 경우 기본 메시지 설정
|
146
|
+
rescue => e
|
147
|
+
puts "Error: #{e.message}"
|
148
|
+
answer = "오류가 발생했습니다."
|
149
|
+
end
|
150
|
+
|
151
|
+
puts 'API return ==> '
|
152
|
+
puts answer
|
153
|
+
answer
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
class Chat_content
|
158
|
+
|
159
|
+
def initialize(api_key)
|
160
|
+
@api_key = api_key
|
161
|
+
end
|
162
|
+
|
163
|
+
def message(content)
|
164
|
+
puts'[GPT] 유사 내용을 생성 중입니다! 조금만 기다려주세요.......'.yellow
|
165
|
+
url = 'https://api.openai.com/v1/chat/completions'
|
166
|
+
headers = {
|
167
|
+
'Content-Type' => 'application/json',
|
168
|
+
'Authorization' => 'Bearer ' + @api_key
|
169
|
+
}
|
170
|
+
data = {
|
171
|
+
'model' => 'gpt-4',
|
172
|
+
'messages' => [{
|
173
|
+
"role" => "system",
|
174
|
+
"content" => "너는 매우 친절하고 성의 있게 답변하는 AI 어시스턴트야."
|
175
|
+
},
|
176
|
+
{
|
177
|
+
"role" => "user",
|
178
|
+
"content" => "#{content}\nChatGPT의 멘트는 빼고 위 전체적인 내용의 형식을 똑같이 표현을 더 추가하고 유사어로 변경하여 하나 만들어줘! 전화번호,연락처,가격,홈페이지안내 ,상담안내 관련 문구는 유지해야해"
|
179
|
+
}]
|
180
|
+
}
|
181
|
+
|
182
|
+
begin
|
183
|
+
req = HTTP.headers(headers).post(url, json: data)
|
184
|
+
puts "HTTP Status: #{req.status}" # 상태 코드 확인
|
185
|
+
response = JSON.parse(req.body.to_s)
|
186
|
+
puts "API Response: #{response}" # 전체 응답 출력
|
187
|
+
|
188
|
+
if req.status == 429
|
189
|
+
return "API 요청 제한을 초과했습니다. 플랜 및 할당량을 확인하세요."
|
190
|
+
end
|
191
|
+
|
192
|
+
# 응답 데이터에서 안전하게 값 추출
|
193
|
+
answer = response.dig('choices', 0, 'message', 'content')
|
194
|
+
answer ||= (content) # 응답이 없을 경우 기본 메시지 설정
|
195
|
+
rescue => e
|
196
|
+
puts "Error: #{e.message}"
|
197
|
+
answer = "오류가 발생했습니다."
|
198
|
+
end
|
199
|
+
|
200
|
+
puts 'API return ==> '
|
201
|
+
puts answer
|
202
|
+
answer
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
|
207
|
+
#############################################gpt############################################
|
208
|
+
|
105
209
|
class Naver
|
106
210
|
def initialize
|
107
211
|
@seed = 1
|
108
|
-
@cookie = ''
|
109
212
|
end
|
213
|
+
def chrome_setup(user_id)
|
214
|
+
naver_cookie_dir = "C:/naver_cookie"
|
215
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
216
|
+
system(%{"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" https://naver.com/ --remote-debugging-port=9222 --user-data-dir=C:/naver_cookie/#{user_id}})
|
110
217
|
|
111
|
-
|
218
|
+
end
|
219
|
+
def chrome_start(proxy, user_id)
|
220
|
+
naver_cookie_dir = "C:/naver_cookie"
|
221
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
112
222
|
if proxy == ''
|
113
223
|
begin
|
114
224
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
115
|
-
|
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)
|
116
232
|
rescue
|
117
|
-
@driver = Selenium::WebDriver.for :
|
233
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
118
234
|
end
|
119
235
|
else
|
120
236
|
begin
|
121
237
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
238
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
122
239
|
# profile = Selenium::WebDriver::Chrome::Profile.new
|
123
240
|
# profile['network.proxy.type'] = 1
|
124
241
|
# profile['network.proxy.http'] = proxy.split(':')[0]
|
@@ -127,177 +244,114 @@ class Naver
|
|
127
244
|
# options.profile = profile
|
128
245
|
options = Selenium::WebDriver::Chrome::Options.new
|
129
246
|
options.add_argument '--proxy-server='+proxy.to_s.force_encoding('utf-8').to_s
|
130
|
-
|
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)
|
131
253
|
rescue => e
|
132
254
|
puts e
|
133
255
|
puts 'proxy error...'
|
134
256
|
begin
|
135
257
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
136
|
-
|
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)
|
137
265
|
rescue
|
138
|
-
@driver = Selenium::WebDriver.for :
|
266
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
139
267
|
end
|
140
268
|
end
|
141
269
|
end
|
142
270
|
end
|
143
271
|
|
272
|
+
|
273
|
+
|
144
274
|
def login(user_id, user_pw, proxy)
|
145
275
|
@user_id = user_id
|
146
276
|
@user_id11 = user_id
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
user_cookie_file = Array.new
|
151
|
-
begin
|
152
|
-
Dir.entries('./cookie').each do |i|
|
153
|
-
if i == '.' or i == '..'
|
277
|
+
current_dir = File.dirname(__FILE__)
|
278
|
+
naver_cookie_dir = "C:/naver_cookie"
|
279
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
154
280
|
|
155
|
-
|
156
|
-
|
157
|
-
|
281
|
+
|
282
|
+
|
283
|
+
unless File.exist?("C:/naver_cookie/" + user_id)
|
284
|
+
driverfile_src = File.join(current_dir, 'driverfile')
|
285
|
+
if Dir.exist?(driverfile_src)
|
286
|
+
FileUtils.cp_r(driverfile_src, "C:/naver_cookie/" + user_id)
|
287
|
+
|
158
288
|
end
|
159
|
-
|
289
|
+
end
|
160
290
|
|
161
|
-
|
291
|
+
# 새로운 스레드 생성 및 실행
|
292
|
+
Thread.new { chrome_setup(user_id) }
|
293
|
+
sleep(3)
|
162
294
|
|
163
|
-
@cookie4 = Hash.new
|
164
|
-
if user_cookie_file.include?(user_id+'.txt')
|
165
|
-
f = File.open('./cookie/'+user_id+'.txt', 'r')
|
166
|
-
@cookie4 = JSON.parse(f.read())
|
167
|
-
f.close
|
168
|
-
end
|
169
295
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
end
|
175
|
-
rescue
|
296
|
+
chrome_start(proxy, user_id)
|
297
|
+
@driver.get('https://www.naver.com')
|
298
|
+
puts'[Step.01] 계정 로그인 및 세션 확인.......'.yellow
|
299
|
+
|
176
300
|
|
177
|
-
end
|
178
301
|
sleep(1)
|
179
|
-
|
302
|
+
|
180
303
|
begin
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
@driver.find_element(:xpath, '//*[@id="account"]/div/a').click
|
304
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
305
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
306
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]') }
|
307
|
+
sleep(1.5)
|
308
|
+
@driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]').click
|
187
309
|
check_cookie_login = 0
|
310
|
+
sleep(1)
|
188
311
|
rescue
|
189
312
|
check_cookie_login = 1
|
313
|
+
puts'[Step.02] 계정 세션 확인!! 로그인 skip.......'.yellow
|
314
|
+
sleep(2.5)
|
190
315
|
end
|
191
316
|
|
192
317
|
if check_cookie_login == 0
|
318
|
+
puts'[Step.02] 계정 세션이 없거나 기간 만료로 인해 로그인 시도.......'.yellow
|
193
319
|
# @driver.find_element(:xpath, '//*[@id="right-content-area"]/div[1]/div[1]/div/a').click
|
194
320
|
sleep(3)
|
195
|
-
|
196
|
-
|
321
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
322
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
323
|
+
wait.until { @driver.find_element(:xpath, '//*[@for="switch"]') }
|
324
|
+
sleep(1.5)
|
325
|
+
@driver.find_element(:xpath, '//*[@id="login_keep_wrap"]/div[1]/label').click
|
326
|
+
sleep(1.5)
|
197
327
|
@driver.find_element(:xpath, '//*[@id="id"]').click
|
198
328
|
Clipboard.copy(user_id)
|
199
329
|
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
200
|
-
sleep(
|
330
|
+
sleep(1.5)
|
201
331
|
@driver.find_element(:xpath, '//*[@id="pw"]').click
|
202
332
|
Clipboard.copy(user_pw)
|
203
333
|
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
204
|
-
sleep(
|
334
|
+
sleep(1.5)
|
205
335
|
@driver.find_element(:xpath, '//*[@id="log.login"]').click
|
206
|
-
sleep(
|
336
|
+
sleep(2.5)
|
337
|
+
|
207
338
|
else
|
208
339
|
# @driver.switch_to.default_content
|
209
340
|
end
|
210
341
|
|
211
|
-
@cookie = ''
|
212
|
-
cookie2 = Array.new
|
213
|
-
@driver.manage.all_cookies.each do |i|
|
214
|
-
puts i
|
215
|
-
@cookie += i[:name]+'='+i[:value]+'; '
|
216
|
-
cookie2 << i
|
217
|
-
end
|
218
|
-
|
219
|
-
File.open('./cookie/'+user_id+'.txt', 'w') do |ff|
|
220
|
-
ff.write(cookie2.to_json)
|
221
|
-
end
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
sleep(2)
|
226
342
|
begin
|
227
|
-
|
228
|
-
|
229
|
-
@driver.find_element(:xpath, '//*[@
|
230
|
-
|
343
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
344
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
345
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__btn_logout___bsTOJ"]') }
|
346
|
+
|
231
347
|
rescue => e
|
348
|
+
puts '-[√] 로그인 실패!!.......'.red
|
232
349
|
puts e
|
233
|
-
return 1
|
234
|
-
end
|
235
|
-
# if @driver.current_url.include?('viewPhoneInfo')
|
236
|
-
# #@driver.get('https://blog.naver.com/'+user_id)
|
237
|
-
# #@driver.get('https://blog.naver.com/MyBlog.naver')
|
238
|
-
# sleep(1)
|
239
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a').click
|
240
|
-
# sleep(1)
|
241
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[3]/div[2]/div[1]/a[2]').click
|
242
|
-
# sleep(1)
|
243
|
-
# @driver.switch_to.window(@driver.window_handles[1])
|
244
|
-
# @user_id = @driver.current_url.split('/')[-1]
|
245
|
-
# @url = 'https://blog.naver.com/'+@user_id
|
246
|
-
# @driver.close
|
247
|
-
# @driver.switch_to.window(@driver.window_handles[0])
|
248
|
-
# return 1
|
249
|
-
# else
|
250
|
-
# begin
|
251
|
-
# sleep(2)
|
252
|
-
# # @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="my-iframe"]'))
|
253
|
-
# # puts @driver.find_element(:xpath, '/html/body/div/div/div[1]/div[1]/a[1]').text
|
254
|
-
# # @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a/span').click
|
255
|
-
# # sleep(1)
|
256
|
-
# # @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a/span')
|
257
|
-
# #@driver.get('https://blog.naver.com/'+user_id)
|
258
|
-
# # @driver.get('https://blog.naver.com/MyBlog.naver')
|
259
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a').click
|
260
|
-
# sleep(1)
|
261
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[3]/div[2]/div[1]/a[2]').click
|
262
|
-
# sleep(1)
|
263
|
-
# sleep(1)
|
264
|
-
# @driver.switch_to.window(@driver.window_handles[1])
|
265
|
-
# @user_id = @driver.current_url.split('/')[-1]
|
266
|
-
# @url = 'https://blog.naver.com/'+@user_id
|
267
|
-
# @driver.close
|
268
|
-
# @driver.switch_to.window(@driver.window_handles[0])
|
269
|
-
# return 1
|
270
|
-
# rescue => e
|
271
|
-
# puts e
|
272
|
-
# @driver.close
|
273
|
-
# return 0
|
274
|
-
# end
|
275
|
-
# end
|
276
|
-
end
|
277
|
-
|
278
|
-
def driver_close
|
279
|
-
begin
|
280
350
|
@driver.close
|
281
|
-
|
282
|
-
|
351
|
+
return 0
|
283
352
|
end
|
284
353
|
end
|
285
354
|
|
286
|
-
def title_action(text)
|
287
|
-
@driver.find_element(:xpath, '/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[1]/div[2]/section/article/div[1]/div[1]/div').click
|
288
|
-
Clipboard.copy(text)
|
289
|
-
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
290
|
-
end
|
291
|
-
|
292
|
-
def update_test
|
293
|
-
@driver.get('https://blog.naver.com/'+@user_id+'?Redirect=Write')
|
294
|
-
sleep(1)
|
295
|
-
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]'))
|
296
|
-
|
297
|
-
title_action('제목 test')
|
298
|
-
|
299
|
-
end
|
300
|
-
|
301
355
|
def create_id
|
302
356
|
@seed += 1
|
303
357
|
hash = Digest::SHA256.hexdigest((Time.now.to_i+@seed).to_s).to_s
|
@@ -942,52 +996,10 @@ end
|
|
942
996
|
noko = Nokogiri::HTML(content, nil, Encoding::UTF_8.to_s)
|
943
997
|
toomung = 0
|
944
998
|
h = Hash.new
|
945
|
-
|
946
|
-
# h[:method] = 'POST'
|
947
|
-
# h[:path] = '/RabbitWrite.naver'
|
948
|
-
# h[:scheme] = 'https'
|
949
|
-
# h['accept'] = 'application/json, text/plain, */*'
|
950
|
-
# h['accept-encoding'] = 'gzip, deflate, br'
|
951
|
-
# h['accept-language'] = 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'
|
952
|
-
# h['content-type'] = 'application/x-www-form-urlencoded'
|
953
|
-
# h['cookie'] = @cookie
|
954
|
-
# h['origin'] = 'https://blog.naver.com'
|
955
|
-
# h['referer'] = 'https://blog.naver.com/'+@user_id+'/postwrite?categoryNo=1'
|
956
|
-
# h['sec-ch-ua'] = '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"'
|
957
|
-
# h['sec-ch-ua-mobile'] = '?0'
|
958
|
-
# h['sec-ch-ua-platform'] = '"Windows"'
|
959
|
-
# h['sec-fetch-dest'] = 'empty'
|
960
|
-
# h['sec-fetch-mode'] = 'cors'
|
961
|
-
# h['sec-fetch-site'] = 'same-origin'
|
962
|
-
# h['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
|
999
|
+
|
963
1000
|
|
964
1001
|
data = Hash.new
|
965
|
-
|
966
|
-
# data['documentModel'] = Hash.new
|
967
|
-
# data['documentModel']['documentId'] = ''
|
968
|
-
# data['documentModel']['document'] = Hash.new
|
969
|
-
# data['documentModel']['document']['version'] = '2.6.0'
|
970
|
-
# data['documentModel']['document']['theme'] = 'default'
|
971
|
-
# data['documentModel']['document']['language'] = 'ko-KR'
|
972
|
-
# data['documentModel']['document']['components'] = Array.new
|
973
|
-
# data['documentModel']['document']['components'][0] = {
|
974
|
-
# 'id' => create_id(),
|
975
|
-
# 'layout' => 'default',
|
976
|
-
# 'title' => [
|
977
|
-
# {
|
978
|
-
# 'id' => create_id(),
|
979
|
-
# 'nodes' => [{
|
980
|
-
# 'id' => create_id(),
|
981
|
-
# 'value' => title,
|
982
|
-
# '@ctype' => 'textNode'
|
983
|
-
# }],
|
984
|
-
# '@ctype' => 'paragraph'
|
985
|
-
# }
|
986
|
-
# ],
|
987
|
-
# 'subTitle' => nil,
|
988
|
-
# 'align' => 'left',
|
989
|
-
# '@ctype' => 'documentTitle'
|
990
|
-
# }
|
1002
|
+
|
991
1003
|
|
992
1004
|
check_position = 1
|
993
1005
|
noko.css('p').each do |i|
|
@@ -1037,21 +1049,7 @@ end
|
|
1037
1049
|
sleep(3)
|
1038
1050
|
key_stroke('enter')
|
1039
1051
|
sleep(3)
|
1040
|
-
|
1041
|
-
# puts path = CGI.unescape(path)
|
1042
|
-
# image_data = image_update(path)
|
1043
|
-
# components_value = Hash.new
|
1044
|
-
# components_value['id'] = create_id()
|
1045
|
-
# components_value['layout'] = 'default'
|
1046
|
-
# begin
|
1047
|
-
# if i.to_s.split('text-align: ')[1].split(';')[0] == 'center'
|
1048
|
-
# components_value['align'] = 'center'
|
1049
|
-
# elsif i.to_s.split('text-align: ')[1].split(';')[0] == 'right'
|
1050
|
-
# components_value['align'] = 'right'
|
1051
|
-
# else
|
1052
|
-
|
1053
|
-
# end
|
1054
|
-
# rescue
|
1052
|
+
|
1055
1053
|
|
1056
1054
|
if i2.to_s.split('href="')[1] != nil
|
1057
1055
|
href2 = i2.to_s.split('href="')[1].split('"')[0]
|
@@ -1067,30 +1065,7 @@ end
|
|
1067
1065
|
#key_stroke('enter')
|
1068
1066
|
sleep(1)
|
1069
1067
|
end
|
1070
|
-
|
1071
|
-
# components_value['src'] = 'https://blogfiles.pstatic.net'+image_data['item']['url']+'?type=w1'
|
1072
|
-
# components_value['internalResource'] = true
|
1073
|
-
# components_value['represent'] = true
|
1074
|
-
# components_value['path'] = image_data['item']['url']
|
1075
|
-
# components_value['domain'] = "https://blogfiles.pstatic.net"
|
1076
|
-
# components_value['fileSize'] = image_data['item']['fileSize'].to_i
|
1077
|
-
# components_value['width'] = image_data['item']['width'].to_i
|
1078
|
-
# components_value['widthPercentage'] = 0
|
1079
|
-
# components_value['height'] = image_data['item']['height'].to_i
|
1080
|
-
# components_value['fileName'] = image_data['item']['fileName'].to_i
|
1081
|
-
# components_value['caption'] = nil
|
1082
|
-
# if i2.to_s.split('href="')[1] != nil
|
1083
|
-
# components_value['link'] = CGI.unescape(i2.to_s.split('href="')[1].split('"')[0])
|
1084
|
-
# end
|
1085
|
-
# components_value['format'] = 'normal'
|
1086
|
-
# components_value['displayFormat'] = 'normal'
|
1087
|
-
# components_value['imageLoaded'] = true
|
1088
|
-
# components_value['contentMode'] = 'fit'
|
1089
|
-
# components_value['origin'] = {
|
1090
|
-
# 'srcFrom' => 'local',
|
1091
|
-
# '@ctype' => 'imageOrigin'
|
1092
|
-
# }
|
1093
|
-
# components_value['@ctype'] = 'image'
|
1068
|
+
|
1094
1069
|
elsif i2.to_s.include?('<video')
|
1095
1070
|
path = i2.to_s.split('src="')[1].split('"')[0]
|
1096
1071
|
path = URI.decode_www_form(path)[0][0]
|
@@ -2020,108 +1995,19 @@ class Wordpress
|
|
2020
1995
|
|
2021
1996
|
|
2022
1997
|
|
1998
|
+
#def chrome_start(url, user_id, user_pw)
|
1999
|
+
# @url = url
|
2000
|
+
# @user_id = user_id
|
2001
|
+
# @user_pw = user_pw
|
2002
|
+
# begin
|
2003
|
+
# Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
2004
|
+
# @driver = Selenium::WebDriver.for :chrome
|
2005
|
+
# rescue
|
2006
|
+
# @driver = Selenium::WebDriver.for :chrome
|
2007
|
+
# end
|
2008
|
+
#end
|
2023
2009
|
|
2024
|
-
def chrome_start(url, user_id, user_pw)
|
2025
|
-
@url = url
|
2026
|
-
@user_id = user_id
|
2027
|
-
@user_pw = user_pw
|
2028
|
-
begin
|
2029
|
-
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
2030
|
-
@driver = Selenium::WebDriver.for :chrome
|
2031
|
-
rescue
|
2032
|
-
@driver = Selenium::WebDriver.for :chrome
|
2033
|
-
end
|
2034
|
-
end
|
2035
|
-
|
2036
|
-
def login
|
2037
|
-
@driver.get(@url+'/wp-admin')
|
2038
|
-
@driver.find_element(:xpath , '//*[@id="user_login"]').send_keys(@user_id)
|
2039
|
-
@driver.find_element(:xpath , '//*[@id="user_pass"]').send_keys(@user_pw)
|
2040
|
-
@driver.find_element(:xpath , '//*[@id="wp-submit"]').click
|
2041
|
-
@cookie = Hash.new
|
2042
|
-
@driver.manage.all_cookies.each do |i|
|
2043
|
-
@cookie[i[:name]] = i[:value]
|
2044
|
-
end
|
2045
|
-
sleep(2)
|
2046
|
-
begin
|
2047
|
-
puts @driver.find_element(:xpath , '/html/body/div/div/div[1]/div[1]/div/div[1]/a[1]/span').text
|
2048
|
-
@driver.close
|
2049
|
-
return 1
|
2050
|
-
rescue => e
|
2051
|
-
puts e
|
2052
|
-
@driver.close
|
2053
|
-
return 0
|
2054
|
-
end
|
2055
|
-
end
|
2056
2010
|
|
2057
|
-
def update
|
2058
|
-
http = HTTP.cookies(@cookie).get(@url+'/wp-admin/post-new.php')
|
2059
|
-
noko = Nokogiri::HTML(http.to_s)
|
2060
|
-
@wpnonce = http.to_s.split('_wpnonce":"')[1].split('"')[0]
|
2061
|
-
@data2 = Hash.new
|
2062
|
-
@data2['_wpnonce'] = noko.xpath('//*[@id="_wpnonce"]')[0]['value']
|
2063
|
-
@data2['_wp_http_referer'] = '/wp-admin/post-new.php'
|
2064
|
-
@data2['user_ID'] = '1'
|
2065
|
-
@data2['action'] = 'editpost'
|
2066
|
-
@data2['originalaction'] = 'editpost'
|
2067
|
-
@data2['post_author'] = '1'
|
2068
|
-
@data2['post_type'] = 'post'
|
2069
|
-
@data2['original_post_status'] = 'auto-draft'
|
2070
|
-
@data2['referredby'] = @url+'/wp-admin/update-core.php'
|
2071
|
-
@data2['_wp_original_http_referer'] = @url+'/wp-admin/update-core.php'
|
2072
|
-
@data2['auto_draft'] = nil
|
2073
|
-
@data2['post_ID'] = noko.xpath('//*[@id="post_ID"]')[0]['value']
|
2074
|
-
@data2['meta-box-order-nonce'] = noko.xpath('//*[@id="meta-box-order-nonce"]')[0]['value']
|
2075
|
-
@data2['closedpostboxesnonce'] = noko.xpath('//*[@id="closedpostboxesnonce"]')[0]['value']
|
2076
|
-
@data2['post_title'] = 'title3'
|
2077
|
-
@data2['samplepermalinknonce'] = noko.xpath('//*[@id="samplepermalinknonce"]')[0]['value']
|
2078
|
-
@data2['content'] = 'content3'
|
2079
|
-
@data2['wp-preview'] = nil
|
2080
|
-
@data2['hidden_post_status'] = 'draft'
|
2081
|
-
@data2['post_status'] = 'draft'
|
2082
|
-
@data2['hidden_post_password'] = nil
|
2083
|
-
@data2['hidden_post_visibility'] = 'public'
|
2084
|
-
@data2['visibility'] = 'post'
|
2085
|
-
@data2['post_password'] = nil
|
2086
|
-
@data2['mm'] = '10'
|
2087
|
-
@data2['jj'] = '24'
|
2088
|
-
@data2['aa'] = '2022'
|
2089
|
-
@data2['hh'] = '02'
|
2090
|
-
@data2['mn'] = '41'
|
2091
|
-
@data2['ss'] = '32'
|
2092
|
-
@data2['hidden_mm'] = '10'
|
2093
|
-
@data2['cur_mm'] = '10'
|
2094
|
-
@data2['hidden_jj'] = '24'
|
2095
|
-
@data2['cur_jj'] = '24'
|
2096
|
-
@data2['hidden_aa'] = '2022'
|
2097
|
-
@data2['cur_aa'] = '2022'
|
2098
|
-
@data2['hidden_hh'] = '02'
|
2099
|
-
@data2['cur_hh'] = '02'
|
2100
|
-
@data2['hidden_mn'] = '41'
|
2101
|
-
@data2['cur_mn'] = '41'
|
2102
|
-
@data2['original_publish'] = '공개'
|
2103
|
-
@data2['publish'] = '공개'
|
2104
|
-
@data2['post_format'] = '0'
|
2105
|
-
@data2['post_category[]'] = '0'
|
2106
|
-
@data2['newcategory'] = '새 카테고리 이름'
|
2107
|
-
@data2['newcategory_parent'] = -1
|
2108
|
-
@data2['_ajax_nonce-add-category'] = noko.xpath('//*[@id="_ajax_nonce-add-category"]')[0]['value']
|
2109
|
-
@data2['tax_input[post_tag]'] = nil
|
2110
|
-
@data2['newtag[post_tag]'] = nil
|
2111
|
-
@data2['_thumbnail_id'] = -1
|
2112
|
-
@data2['excerpt'] = nil
|
2113
|
-
@data2['trackback_url'] = nil
|
2114
|
-
@data2['metakeyinput'] = nil
|
2115
|
-
@data2['metavalue'] = nil
|
2116
|
-
@data2['_ajax_nonce-add-meta'] = noko.xpath('//*[@id="_ajax_nonce-add-meta"]')[0]['value']
|
2117
|
-
@data2['advanced_view'] = '1'
|
2118
|
-
@data2['comment_status'] = 'open'
|
2119
|
-
@data2['ping_status'] = 'open'
|
2120
|
-
@data2['post_name'] = nil
|
2121
|
-
@data2['post_author_override'] = '1'
|
2122
|
-
#result_http = HTTP.cookies(@cookie).post(@url+'/wp-admin/post.php', :form => @data)
|
2123
|
-
return @data2
|
2124
|
-
end
|
2125
2011
|
|
2126
2012
|
def auto_image
|
2127
2013
|
begin
|
@@ -2464,6 +2350,13 @@ class Wordpress
|
|
2464
2350
|
end
|
2465
2351
|
end
|
2466
2352
|
end
|
2353
|
+
|
2354
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2355
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2356
|
+
gpt_text1 = chat.message(title)
|
2357
|
+
title = gpt_text1.to_s
|
2358
|
+
end
|
2359
|
+
|
2467
2360
|
@data['table'][index][-1] = 5
|
2468
2361
|
@data['table'] << []
|
2469
2362
|
@data['table'].pop
|
@@ -2501,6 +2394,25 @@ class Wordpress
|
|
2501
2394
|
end
|
2502
2395
|
end
|
2503
2396
|
end
|
2397
|
+
|
2398
|
+
|
2399
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2400
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2401
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2402
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2403
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2404
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2405
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2406
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2407
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2408
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2409
|
+
|
2410
|
+
|
2411
|
+
chat = Chat_content.new(api_key)
|
2412
|
+
gpt_text3 = chat.message(content)
|
2413
|
+
content = gpt_text3.to_s
|
2414
|
+
end
|
2415
|
+
|
2504
2416
|
content_tag = content.split('@##@')[1]
|
2505
2417
|
content = content.split('@##@')[0]
|
2506
2418
|
@data['table'][index][-1] = 15
|
@@ -2699,7 +2611,7 @@ class Wordpress
|
|
2699
2611
|
@data['table'][index][-1] = 50
|
2700
2612
|
@data['table'] << []
|
2701
2613
|
@data['table'].pop
|
2702
|
-
if @data['포스트설정']['gpt'].checked?
|
2614
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2703
2615
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2704
2616
|
gpt_text = chat.message(keyword)
|
2705
2617
|
content = content + "\n(자동생성글)\n" + gpt_text
|
@@ -2720,7 +2632,7 @@ class Wordpress
|
|
2720
2632
|
joongbok_check = 0
|
2721
2633
|
counter10 = 0
|
2722
2634
|
while joongbok_check == 0
|
2723
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2635
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2724
2636
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2725
2637
|
else
|
2726
2638
|
content22 = content.split("\n")
|
@@ -2744,12 +2656,12 @@ class Wordpress
|
|
2744
2656
|
content2 = content.split("\n")
|
2745
2657
|
end
|
2746
2658
|
|
2747
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2659
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2748
2660
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2749
2661
|
position.pop
|
2750
2662
|
end
|
2751
2663
|
|
2752
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2664
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2753
2665
|
content2 = content.split("\n")
|
2754
2666
|
end
|
2755
2667
|
|
@@ -2795,7 +2707,7 @@ class Wordpress
|
|
2795
2707
|
content = content3.join("\n")
|
2796
2708
|
end
|
2797
2709
|
|
2798
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2710
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2799
2711
|
content2.each_with_index do |con, index|
|
2800
2712
|
if position.include?(index)
|
2801
2713
|
insert_keyword_text = keyword.to_s
|
@@ -2825,7 +2737,7 @@ class Wordpress
|
|
2825
2737
|
end
|
2826
2738
|
end
|
2827
2739
|
|
2828
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2740
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2829
2741
|
begin
|
2830
2742
|
content2.each_with_index do |con, index|
|
2831
2743
|
if position.include?(index)
|
@@ -2920,7 +2832,7 @@ class Wordpress
|
|
2920
2832
|
end
|
2921
2833
|
end
|
2922
2834
|
|
2923
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2835
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2924
2836
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2925
2837
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2926
2838
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2952,7 +2864,7 @@ class Wordpress
|
|
2952
2864
|
|
2953
2865
|
position = position.sort
|
2954
2866
|
##여기서부터 이미지 순서대로 안되서 변경####-------------------------------------------------------------------------------
|
2955
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2867
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2956
2868
|
# image_url22 = get_image_file().force_encoding('utf-8')
|
2957
2869
|
# end
|
2958
2870
|
|
@@ -2970,7 +2882,7 @@ class Wordpress
|
|
2970
2882
|
# end
|
2971
2883
|
# end
|
2972
2884
|
|
2973
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2885
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2974
2886
|
# content = content5.join("\n")+'(자동생성글)'+content55
|
2975
2887
|
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2976
2888
|
# content = iconv.iconv(content)
|
@@ -2990,7 +2902,7 @@ class Wordpress
|
|
2990
2902
|
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2991
2903
|
|
2992
2904
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2993
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2905
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2994
2906
|
sleep(2)
|
2995
2907
|
puts '이미지 자동 세탁 중 · · · '
|
2996
2908
|
end
|
@@ -3009,7 +2921,7 @@ class Wordpress
|
|
3009
2921
|
end
|
3010
2922
|
sleep(2)
|
3011
2923
|
puts '이미지 자동 세탁 완료 · · · '
|
3012
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2924
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
3013
2925
|
content = content5.join("\n")+'(자동생성글)'+content55
|
3014
2926
|
puts content
|
3015
2927
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -3149,7 +3061,7 @@ class Wordpress
|
|
3149
3061
|
content = content
|
3150
3062
|
soosick_1 = content_end
|
3151
3063
|
else
|
3152
|
-
if @data['포스트설정']['gpt'].checked?
|
3064
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3153
3065
|
if @data['포스트설정']['gpt상단'].checked?
|
3154
3066
|
content = content_end+"\n"+content+"\n"
|
3155
3067
|
else
|
@@ -3824,7 +3736,10 @@ class Wordpress
|
|
3824
3736
|
}
|
3825
3737
|
horizontal_box{
|
3826
3738
|
stretchy false
|
3739
|
+
grid{
|
3827
3740
|
button('전체선택'){
|
3741
|
+
top 1
|
3742
|
+
left 1
|
3828
3743
|
on_clicked{
|
3829
3744
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
3830
3745
|
@data['키워드설정']['키워드'][n][0] = true
|
@@ -3833,7 +3748,20 @@ class Wordpress
|
|
3833
3748
|
end
|
3834
3749
|
}
|
3835
3750
|
}
|
3836
|
-
button('
|
3751
|
+
button('선택해제'){
|
3752
|
+
top 1
|
3753
|
+
left 2
|
3754
|
+
on_clicked{
|
3755
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3756
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3757
|
+
@data['키워드설정']['키워드'] << []
|
3758
|
+
@data['키워드설정']['키워드'].pop
|
3759
|
+
end
|
3760
|
+
}
|
3761
|
+
}
|
3762
|
+
button('삭제하기'){
|
3763
|
+
top 1
|
3764
|
+
left 3
|
3837
3765
|
on_clicked{
|
3838
3766
|
m = Array.new
|
3839
3767
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
@@ -3848,6 +3776,8 @@ class Wordpress
|
|
3848
3776
|
@data['키워드설정']['키워드'].delete(nil)
|
3849
3777
|
}
|
3850
3778
|
}
|
3779
|
+
}
|
3780
|
+
|
3851
3781
|
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3852
3782
|
stretchy false
|
3853
3783
|
on_toggled{ |c|
|
@@ -3865,6 +3795,59 @@ class Wordpress
|
|
3865
3795
|
}
|
3866
3796
|
}
|
3867
3797
|
}
|
3798
|
+
vertical_separator{
|
3799
|
+
stretchy false
|
3800
|
+
}
|
3801
|
+
horizontal_box{
|
3802
|
+
stretchy false
|
3803
|
+
grid{
|
3804
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3805
|
+
top 1
|
3806
|
+
left 0
|
3807
|
+
#enabled false # 기본적으로 비활성화
|
3808
|
+
on_toggled {
|
3809
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3810
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3811
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3812
|
+
else
|
3813
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3814
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3815
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3816
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3817
|
+
end
|
3818
|
+
}
|
3819
|
+
|
3820
|
+
}
|
3821
|
+
|
3822
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3823
|
+
top 1
|
3824
|
+
left 1
|
3825
|
+
enabled false # 기본적으로 비활성화
|
3826
|
+
on_toggled{
|
3827
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3828
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3829
|
+
end
|
3830
|
+
}
|
3831
|
+
}
|
3832
|
+
|
3833
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3834
|
+
top 1
|
3835
|
+
left 2
|
3836
|
+
enabled false # 기본적으로 비활성화
|
3837
|
+
on_toggled{
|
3838
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3839
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3840
|
+
end
|
3841
|
+
}
|
3842
|
+
}
|
3843
|
+
} }
|
3844
|
+
horizontal_box{
|
3845
|
+
stretchy false
|
3846
|
+
grid{
|
3847
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3848
|
+
} } }
|
3849
|
+
|
3850
|
+
|
3868
3851
|
table{
|
3869
3852
|
checkbox_column('선택'){
|
3870
3853
|
editable true
|
@@ -3875,7 +3858,9 @@ class Wordpress
|
|
3875
3858
|
|
3876
3859
|
cell_rows @data['키워드설정']['키워드']
|
3877
3860
|
}
|
3878
|
-
|
3861
|
+
|
3862
|
+
|
3863
|
+
|
3879
3864
|
}
|
3880
3865
|
vertical_separator{
|
3881
3866
|
stretchy false
|
@@ -3904,7 +3889,10 @@ class Wordpress
|
|
3904
3889
|
}
|
3905
3890
|
horizontal_box{
|
3906
3891
|
stretchy false
|
3892
|
+
grid{
|
3907
3893
|
button('전체선택'){
|
3894
|
+
top 1
|
3895
|
+
left 1
|
3908
3896
|
on_clicked{
|
3909
3897
|
for n in 0..@data['제목설정']['제목'].length-1
|
3910
3898
|
@data['제목설정']['제목'][n][0] = true
|
@@ -3913,7 +3901,20 @@ class Wordpress
|
|
3913
3901
|
end
|
3914
3902
|
}
|
3915
3903
|
}
|
3916
|
-
button('
|
3904
|
+
button('선택해제'){
|
3905
|
+
top 1
|
3906
|
+
left 2
|
3907
|
+
on_clicked{
|
3908
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3909
|
+
@data['제목설정']['제목'][n][0] = false
|
3910
|
+
@data['제목설정']['제목'] << []
|
3911
|
+
@data['제목설정']['제목'].pop
|
3912
|
+
end
|
3913
|
+
}
|
3914
|
+
}
|
3915
|
+
button('삭제하기'){
|
3916
|
+
top 1
|
3917
|
+
left 3
|
3917
3918
|
on_clicked{
|
3918
3919
|
m = Array.new
|
3919
3920
|
for n in 0..@data['제목설정']['제목'].length-1
|
@@ -3928,6 +3929,7 @@ class Wordpress
|
|
3928
3929
|
@data['제목설정']['제목'].delete(nil)
|
3929
3930
|
}
|
3930
3931
|
}
|
3932
|
+
}
|
3931
3933
|
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3932
3934
|
stretchy false
|
3933
3935
|
on_toggled{ |c|
|
@@ -3945,6 +3947,23 @@ class Wordpress
|
|
3945
3947
|
}
|
3946
3948
|
}
|
3947
3949
|
}
|
3950
|
+
vertical_separator{
|
3951
|
+
stretchy false
|
3952
|
+
}
|
3953
|
+
horizontal_box{
|
3954
|
+
stretchy false
|
3955
|
+
grid{
|
3956
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3957
|
+
|
3958
|
+
|
3959
|
+
}}}
|
3960
|
+
horizontal_box{
|
3961
|
+
stretchy false
|
3962
|
+
grid{
|
3963
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3964
|
+
} } }
|
3965
|
+
|
3966
|
+
|
3948
3967
|
table{
|
3949
3968
|
checkbox_column('선택'){
|
3950
3969
|
editable true
|
@@ -3955,6 +3974,7 @@ class Wordpress
|
|
3955
3974
|
|
3956
3975
|
cell_rows @data['제목설정']['제목']
|
3957
3976
|
}
|
3977
|
+
|
3958
3978
|
|
3959
3979
|
}
|
3960
3980
|
vertical_separator{
|
@@ -3982,7 +4002,10 @@ class Wordpress
|
|
3982
4002
|
}
|
3983
4003
|
horizontal_box{
|
3984
4004
|
stretchy false
|
4005
|
+
grid{
|
3985
4006
|
button('전체선택'){
|
4007
|
+
top 1
|
4008
|
+
left 1
|
3986
4009
|
on_clicked{
|
3987
4010
|
for n in 0..@data['내용설정']['내용'].length-1
|
3988
4011
|
@data['내용설정']['내용'][n][0] = true
|
@@ -3991,7 +4014,20 @@ class Wordpress
|
|
3991
4014
|
end
|
3992
4015
|
}
|
3993
4016
|
}
|
3994
|
-
button('
|
4017
|
+
button('선택해제'){
|
4018
|
+
top 1
|
4019
|
+
left 2
|
4020
|
+
on_clicked{
|
4021
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
4022
|
+
@data['내용설정']['내용'][n][0] = false
|
4023
|
+
@data['내용설정']['내용'] << []
|
4024
|
+
@data['내용설정']['내용'].pop
|
4025
|
+
end
|
4026
|
+
}
|
4027
|
+
}
|
4028
|
+
button('삭제하기'){
|
4029
|
+
top 1
|
4030
|
+
left 3
|
3995
4031
|
on_clicked{
|
3996
4032
|
m = Array.new
|
3997
4033
|
for n in 0..@data['내용설정']['내용'].length-1
|
@@ -4006,6 +4042,7 @@ class Wordpress
|
|
4006
4042
|
@data['내용설정']['내용'].delete(nil)
|
4007
4043
|
}
|
4008
4044
|
}
|
4045
|
+
}
|
4009
4046
|
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
4010
4047
|
stretchy false
|
4011
4048
|
on_toggled{ |c|
|
@@ -4023,6 +4060,22 @@ class Wordpress
|
|
4023
4060
|
}
|
4024
4061
|
}
|
4025
4062
|
}
|
4063
|
+
vertical_separator{
|
4064
|
+
stretchy false
|
4065
|
+
}
|
4066
|
+
horizontal_box{
|
4067
|
+
stretchy false
|
4068
|
+
grid{
|
4069
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
4070
|
+
|
4071
|
+
|
4072
|
+
}}}
|
4073
|
+
horizontal_box{
|
4074
|
+
stretchy false
|
4075
|
+
grid{
|
4076
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
4077
|
+
} } }
|
4078
|
+
|
4026
4079
|
table{
|
4027
4080
|
checkbox_column('선택'){
|
4028
4081
|
editable true
|
@@ -4040,8 +4093,8 @@ class Wordpress
|
|
4040
4093
|
stretchy false
|
4041
4094
|
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
4042
4095
|
}
|
4043
|
-
button('
|
4044
|
-
|
4096
|
+
button('폴더째로 불러오기'){
|
4097
|
+
|
4045
4098
|
on_clicked{
|
4046
4099
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
4047
4100
|
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4139,7 +4192,7 @@ class Wordpress
|
|
4139
4192
|
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
4140
4193
|
}
|
4141
4194
|
button('폴더째로불러오기'){
|
4142
|
-
|
4195
|
+
|
4143
4196
|
on_clicked{
|
4144
4197
|
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
4145
4198
|
Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4392,6 +4445,18 @@ class Wordpress
|
|
4392
4445
|
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4393
4446
|
top 2
|
4394
4447
|
left 0
|
4448
|
+
#enabled false # 기본적으로 비활성화
|
4449
|
+
on_toggled {
|
4450
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4451
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4452
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4453
|
+
else
|
4454
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4455
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4456
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4457
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4458
|
+
end
|
4459
|
+
}
|
4395
4460
|
}
|
4396
4461
|
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4397
4462
|
top 2
|
@@ -4414,6 +4479,7 @@ class Wordpress
|
|
4414
4479
|
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4415
4480
|
top 3
|
4416
4481
|
left 3
|
4482
|
+
enabled false # 기본적으로 비활성화
|
4417
4483
|
on_toggled{
|
4418
4484
|
if @data['포스트설정']['제목앞'].checked? == true
|
4419
4485
|
if @data['포스트설정']['제목뒤'].checked?
|
@@ -4429,6 +4495,7 @@ class Wordpress
|
|
4429
4495
|
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4430
4496
|
top 4
|
4431
4497
|
left 3
|
4498
|
+
enabled false # 기본적으로 비활성화
|
4432
4499
|
on_toggled{
|
4433
4500
|
if @data['포스트설정']['제목뒤'].checked? == true
|
4434
4501
|
if @data['포스트설정']['제목앞'].checked?
|
@@ -4437,26 +4504,51 @@ class Wordpress
|
|
4437
4504
|
end
|
4438
4505
|
}
|
4439
4506
|
}
|
4440
|
-
@data['포스트설정']['
|
4507
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4441
4508
|
top 4
|
4442
4509
|
left 0
|
4443
4510
|
}
|
4444
|
-
|
4445
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4511
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4446
4512
|
top 5
|
4447
4513
|
left 0
|
4514
|
+
on_toggled{
|
4515
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4516
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4517
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4518
|
+
end
|
4519
|
+
end
|
4520
|
+
}
|
4448
4521
|
}
|
4449
|
-
@data['포스트설정']['
|
4522
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4450
4523
|
top 6
|
4451
4524
|
left 0
|
4525
|
+
on_toggled{
|
4526
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4527
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4528
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4529
|
+
end
|
4530
|
+
end
|
4531
|
+
}
|
4452
4532
|
}
|
4453
4533
|
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4454
4534
|
top 7
|
4455
4535
|
left 0
|
4536
|
+
on_toggled {
|
4537
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4538
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4539
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4540
|
+
else
|
4541
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4542
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4543
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4544
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4545
|
+
end
|
4546
|
+
}
|
4456
4547
|
}
|
4457
4548
|
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4458
4549
|
top 7
|
4459
4550
|
left 1
|
4551
|
+
|
4460
4552
|
text '최소수량'
|
4461
4553
|
}
|
4462
4554
|
label('~'){
|
@@ -4477,55 +4569,51 @@ class Wordpress
|
|
4477
4569
|
left 1
|
4478
4570
|
text 'URL'
|
4479
4571
|
}
|
4480
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('
|
4572
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4481
4573
|
top 9
|
4482
4574
|
left 0
|
4483
4575
|
on_toggled{
|
4484
4576
|
if @data['포스트설정']['내용을자동생성'].checked?
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4577
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4578
|
+
@data['포스트설정']['내용투명'].checked = false
|
4579
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4580
|
+
|
4488
4581
|
end
|
4489
4582
|
}
|
4490
4583
|
}
|
4491
4584
|
|
4492
|
-
|
4493
|
-
top 10
|
4494
|
-
left 0
|
4495
|
-
}
|
4496
|
-
|
4497
|
-
@data['포스트설정']['api_key'] = entry(){
|
4498
|
-
top 10
|
4499
|
-
left 1
|
4500
|
-
text 'api key'
|
4501
|
-
}
|
4585
|
+
|
4502
4586
|
|
4503
|
-
@data['포스트설정']['gpt상단'] = checkbox('원고내용 위에 넣기'){
|
4504
|
-
top 10
|
4505
|
-
left 3
|
4506
|
-
}
|
4507
|
-
|
4508
|
-
@data['포스트설정']['gpt하단'] = checkbox('원고내용 아래에 넣기'){
|
4509
|
-
top 11
|
4510
|
-
left 3
|
4511
|
-
}
|
4512
4587
|
|
4513
4588
|
aa1 = 2
|
4514
|
-
|
4589
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4515
4590
|
top 10 + aa1
|
4516
4591
|
left 0
|
4517
|
-
on_toggled{
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4522
|
-
|
4592
|
+
on_toggled {
|
4593
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4594
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4595
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4596
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4597
|
+
else
|
4598
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4599
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4600
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4601
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4602
|
+
end
|
4523
4603
|
}
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4604
|
+
}
|
4605
|
+
|
4606
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4607
|
+
top 11 + aa1
|
4527
4608
|
left 0
|
4528
|
-
|
4609
|
+
enabled false # 기본적으로 비활성화
|
4610
|
+
on_toggled {
|
4611
|
+
if @data['포스트설정']['내용투명'].checked?
|
4612
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4613
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4614
|
+
end
|
4615
|
+
}
|
4616
|
+
}
|
4529
4617
|
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4530
4618
|
top 12+ aa1
|
4531
4619
|
left 0
|
@@ -4553,6 +4641,18 @@ class Wordpress
|
|
4553
4641
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4554
4642
|
top 13+ aa1
|
4555
4643
|
left 0
|
4644
|
+
#enabled false # 기본적으로 비활성화
|
4645
|
+
on_toggled {
|
4646
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4647
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4648
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4649
|
+
else
|
4650
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4651
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4652
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4653
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4654
|
+
end
|
4655
|
+
}
|
4556
4656
|
}
|
4557
4657
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4558
4658
|
top 13+ aa1
|
@@ -4570,15 +4670,28 @@ class Wordpress
|
|
4570
4670
|
}
|
4571
4671
|
|
4572
4672
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4673
|
+
enabled false # 기본적으로 비활성화
|
4573
4674
|
top 14+ aa1
|
4574
4675
|
left 0
|
4575
4676
|
}
|
4576
4677
|
|
4577
4678
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
4679
|
+
enabled false # 기본적으로 비활성화
|
4578
4680
|
top 14+ aa1
|
4579
4681
|
left 1
|
4580
4682
|
text 'URL'
|
4581
4683
|
}
|
4684
|
+
|
4685
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4686
|
+
top 15+ aa1
|
4687
|
+
left 0
|
4688
|
+
}
|
4689
|
+
|
4690
|
+
@data['포스트설정']['api_key'] = entry(){
|
4691
|
+
top 15+ aa1
|
4692
|
+
left 1
|
4693
|
+
text 'api key 입력 필수!!'
|
4694
|
+
}
|
4582
4695
|
}
|
4583
4696
|
}
|
4584
4697
|
|
@@ -4769,6 +4882,22 @@ class Wordpress
|
|
4769
4882
|
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4770
4883
|
top 6
|
4771
4884
|
left 0
|
4885
|
+
#enabled false # 기본적으로 비활성화
|
4886
|
+
on_toggled {
|
4887
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4888
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4889
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4890
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4891
|
+
|
4892
|
+
else
|
4893
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4894
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4895
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4896
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4897
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4898
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4899
|
+
end
|
4900
|
+
}
|
4772
4901
|
}
|
4773
4902
|
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4774
4903
|
top 6
|
@@ -4798,10 +4927,12 @@ class Wordpress
|
|
4798
4927
|
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4799
4928
|
top 7
|
4800
4929
|
left 0
|
4930
|
+
enabled false # 기본적으로 비활성화
|
4801
4931
|
}
|
4802
4932
|
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4803
4933
|
top 7
|
4804
4934
|
left 1
|
4935
|
+
enabled false # 기본적으로 비활성화
|
4805
4936
|
}
|
4806
4937
|
|
4807
4938
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
@@ -4826,11 +4957,19 @@ class Wordpress
|
|
4826
4957
|
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4827
4958
|
top 9
|
4828
4959
|
left 0
|
4960
|
+
enabled false # 기본적으로 비활성화
|
4961
|
+
on_toggled {
|
4962
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4963
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4964
|
+
@data['포스트설정']['내용투명'].checked = false
|
4965
|
+
end
|
4966
|
+
}
|
4829
4967
|
}
|
4830
4968
|
|
4831
4969
|
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4832
4970
|
top 9
|
4833
4971
|
left 1
|
4972
|
+
enabled false # 기본적으로 비활성화
|
4834
4973
|
}
|
4835
4974
|
|
4836
4975
|
|
@@ -4913,10 +5052,22 @@ class Wordpress
|
|
4913
5052
|
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4914
5053
|
top 15
|
4915
5054
|
left 0
|
5055
|
+
on_toggled{
|
5056
|
+
if @data['포스트설정']['테더링'].checked?
|
5057
|
+
@data['포스트설정']['프록시'].checked = false
|
5058
|
+
|
5059
|
+
end
|
5060
|
+
}
|
4916
5061
|
}
|
4917
5062
|
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4918
5063
|
top 15
|
4919
5064
|
left 1
|
5065
|
+
on_toggled{
|
5066
|
+
if @data['포스트설정']['프록시'].checked?
|
5067
|
+
@data['포스트설정']['테더링'].checked = false
|
5068
|
+
|
5069
|
+
end
|
5070
|
+
}
|
4920
5071
|
}
|
4921
5072
|
button('프록시 IP 파일 불러오기'){
|
4922
5073
|
top 15
|