cafe_buy 0.0.5 → 0.0.9
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 +535 -374
- metadata +2 -2
data/lib/cafe_buy.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]
|
@@ -1126,12 +1101,21 @@ end
|
|
1126
1101
|
sleep(3)
|
1127
1102
|
@driver.action.key_down(:up).key_up(:up).perform #x탭
|
1128
1103
|
sleep(1)
|
1104
|
+
begin
|
1105
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
1106
|
+
#요소가 나타날 때까지 60초 동안 기다립니다.
|
1107
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]') }
|
1108
|
+
sleep(1)
|
1129
1109
|
@driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]').click
|
1110
|
+
sleep(1)
|
1130
1111
|
@driver.action.send_keys(title).perform
|
1131
1112
|
sleep(1)
|
1132
1113
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
1133
1114
|
sleep(1)
|
1134
|
-
|
1115
|
+
rescue
|
1116
|
+
@driver.action.key_down(:down).key_up(:down).perform
|
1117
|
+
end
|
1118
|
+
|
1135
1119
|
elsif i2.to_s.include?('<inyonggoo')
|
1136
1120
|
if i2.text == ''
|
1137
1121
|
|
@@ -1952,107 +1936,19 @@ class Wordpress
|
|
1952
1936
|
|
1953
1937
|
|
1954
1938
|
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
end
|
1939
|
+
#def chrome_start(url, user_id, user_pw)
|
1940
|
+
# @url = url
|
1941
|
+
# @user_id = user_id
|
1942
|
+
# @user_pw = user_pw
|
1943
|
+
# begin
|
1944
|
+
# Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1945
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1946
|
+
# rescue
|
1947
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1948
|
+
# end
|
1949
|
+
#end
|
1966
1950
|
|
1967
|
-
def login
|
1968
|
-
@driver.get(@url+'/wp-admin')
|
1969
|
-
@driver.find_element(:xpath , '//*[@id="user_login"]').send_keys(@user_id)
|
1970
|
-
@driver.find_element(:xpath , '//*[@id="user_pass"]').send_keys(@user_pw)
|
1971
|
-
@driver.find_element(:xpath , '//*[@id="wp-submit"]').click
|
1972
|
-
@cookie = Hash.new
|
1973
|
-
@driver.manage.all_cookies.each do |i|
|
1974
|
-
@cookie[i[:name]] = i[:value]
|
1975
|
-
end
|
1976
|
-
sleep(2)
|
1977
|
-
begin
|
1978
|
-
puts @driver.find_element(:xpath , '/html/body/div/div/div[1]/div[1]/div/div[1]/a[1]/span').text
|
1979
|
-
@driver.close
|
1980
|
-
return 1
|
1981
|
-
rescue => e
|
1982
|
-
puts e
|
1983
|
-
@driver.close
|
1984
|
-
return 0
|
1985
|
-
end
|
1986
|
-
end
|
1987
1951
|
|
1988
|
-
def update
|
1989
|
-
http = HTTP.cookies(@cookie).get(@url+'/wp-admin/post-new.php')
|
1990
|
-
noko = Nokogiri::HTML(http.to_s)
|
1991
|
-
@wpnonce = http.to_s.split('_wpnonce":"')[1].split('"')[0]
|
1992
|
-
@data2 = Hash.new
|
1993
|
-
@data2['_wpnonce'] = noko.xpath('//*[@id="_wpnonce"]')[0]['value']
|
1994
|
-
@data2['_wp_http_referer'] = '/wp-admin/post-new.php'
|
1995
|
-
@data2['user_ID'] = '1'
|
1996
|
-
@data2['action'] = 'editpost'
|
1997
|
-
@data2['originalaction'] = 'editpost'
|
1998
|
-
@data2['post_author'] = '1'
|
1999
|
-
@data2['post_type'] = 'post'
|
2000
|
-
@data2['original_post_status'] = 'auto-draft'
|
2001
|
-
@data2['referredby'] = @url+'/wp-admin/update-core.php'
|
2002
|
-
@data2['_wp_original_http_referer'] = @url+'/wp-admin/update-core.php'
|
2003
|
-
@data2['auto_draft'] = nil
|
2004
|
-
@data2['post_ID'] = noko.xpath('//*[@id="post_ID"]')[0]['value']
|
2005
|
-
@data2['meta-box-order-nonce'] = noko.xpath('//*[@id="meta-box-order-nonce"]')[0]['value']
|
2006
|
-
@data2['closedpostboxesnonce'] = noko.xpath('//*[@id="closedpostboxesnonce"]')[0]['value']
|
2007
|
-
@data2['post_title'] = 'title3'
|
2008
|
-
@data2['samplepermalinknonce'] = noko.xpath('//*[@id="samplepermalinknonce"]')[0]['value']
|
2009
|
-
@data2['content'] = 'content3'
|
2010
|
-
@data2['wp-preview'] = nil
|
2011
|
-
@data2['hidden_post_status'] = 'draft'
|
2012
|
-
@data2['post_status'] = 'draft'
|
2013
|
-
@data2['hidden_post_password'] = nil
|
2014
|
-
@data2['hidden_post_visibility'] = 'public'
|
2015
|
-
@data2['visibility'] = 'post'
|
2016
|
-
@data2['post_password'] = nil
|
2017
|
-
@data2['mm'] = '10'
|
2018
|
-
@data2['jj'] = '24'
|
2019
|
-
@data2['aa'] = '2022'
|
2020
|
-
@data2['hh'] = '02'
|
2021
|
-
@data2['mn'] = '41'
|
2022
|
-
@data2['ss'] = '32'
|
2023
|
-
@data2['hidden_mm'] = '10'
|
2024
|
-
@data2['cur_mm'] = '10'
|
2025
|
-
@data2['hidden_jj'] = '24'
|
2026
|
-
@data2['cur_jj'] = '24'
|
2027
|
-
@data2['hidden_aa'] = '2022'
|
2028
|
-
@data2['cur_aa'] = '2022'
|
2029
|
-
@data2['hidden_hh'] = '02'
|
2030
|
-
@data2['cur_hh'] = '02'
|
2031
|
-
@data2['hidden_mn'] = '41'
|
2032
|
-
@data2['cur_mn'] = '41'
|
2033
|
-
@data2['original_publish'] = '공개'
|
2034
|
-
@data2['publish'] = '공개'
|
2035
|
-
@data2['post_format'] = '0'
|
2036
|
-
@data2['post_category[]'] = '0'
|
2037
|
-
@data2['newcategory'] = '새 카테고리 이름'
|
2038
|
-
@data2['newcategory_parent'] = -1
|
2039
|
-
@data2['_ajax_nonce-add-category'] = noko.xpath('//*[@id="_ajax_nonce-add-category"]')[0]['value']
|
2040
|
-
@data2['tax_input[post_tag]'] = nil
|
2041
|
-
@data2['newtag[post_tag]'] = nil
|
2042
|
-
@data2['_thumbnail_id'] = -1
|
2043
|
-
@data2['excerpt'] = nil
|
2044
|
-
@data2['trackback_url'] = nil
|
2045
|
-
@data2['metakeyinput'] = nil
|
2046
|
-
@data2['metavalue'] = nil
|
2047
|
-
@data2['_ajax_nonce-add-meta'] = noko.xpath('//*[@id="_ajax_nonce-add-meta"]')[0]['value']
|
2048
|
-
@data2['advanced_view'] = '1'
|
2049
|
-
@data2['comment_status'] = 'open'
|
2050
|
-
@data2['ping_status'] = 'open'
|
2051
|
-
@data2['post_name'] = nil
|
2052
|
-
@data2['post_author_override'] = '1'
|
2053
|
-
#result_http = HTTP.cookies(@cookie).post(@url+'/wp-admin/post.php', :form => @data)
|
2054
|
-
return @data2
|
2055
|
-
end
|
2056
1952
|
|
2057
1953
|
def auto_image
|
2058
1954
|
begin
|
@@ -2395,6 +2291,13 @@ class Wordpress
|
|
2395
2291
|
end
|
2396
2292
|
end
|
2397
2293
|
end
|
2294
|
+
|
2295
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2296
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2297
|
+
gpt_text1 = chat.message(title)
|
2298
|
+
title = gpt_text1.to_s
|
2299
|
+
end
|
2300
|
+
|
2398
2301
|
@data['table'][index][-1] = 5
|
2399
2302
|
@data['table'] << []
|
2400
2303
|
@data['table'].pop
|
@@ -2432,6 +2335,25 @@ class Wordpress
|
|
2432
2335
|
end
|
2433
2336
|
end
|
2434
2337
|
end
|
2338
|
+
|
2339
|
+
|
2340
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2341
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2342
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2343
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2344
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2345
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2346
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2347
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2348
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2349
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2350
|
+
|
2351
|
+
|
2352
|
+
chat = Chat_content.new(api_key)
|
2353
|
+
gpt_text3 = chat.message(content)
|
2354
|
+
content = gpt_text3.to_s
|
2355
|
+
end
|
2356
|
+
|
2435
2357
|
content_tag = content.split('@##@')[1]
|
2436
2358
|
content = content.split('@##@')[0]
|
2437
2359
|
@data['table'][index][-1] = 15
|
@@ -2630,7 +2552,7 @@ class Wordpress
|
|
2630
2552
|
@data['table'][index][-1] = 50
|
2631
2553
|
@data['table'] << []
|
2632
2554
|
@data['table'].pop
|
2633
|
-
if @data['포스트설정']['gpt'].checked?
|
2555
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2634
2556
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2635
2557
|
gpt_text = chat.message(keyword)
|
2636
2558
|
content = content + "\n(자동생성글)\n" + gpt_text
|
@@ -2651,7 +2573,7 @@ class Wordpress
|
|
2651
2573
|
joongbok_check = 0
|
2652
2574
|
counter10 = 0
|
2653
2575
|
while joongbok_check == 0
|
2654
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2576
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2655
2577
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2656
2578
|
else
|
2657
2579
|
content22 = content.split("\n")
|
@@ -2675,12 +2597,12 @@ class Wordpress
|
|
2675
2597
|
content2 = content.split("\n")
|
2676
2598
|
end
|
2677
2599
|
|
2678
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2600
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2679
2601
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2680
2602
|
position.pop
|
2681
2603
|
end
|
2682
2604
|
|
2683
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2605
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2684
2606
|
content2 = content.split("\n")
|
2685
2607
|
end
|
2686
2608
|
|
@@ -2726,7 +2648,7 @@ class Wordpress
|
|
2726
2648
|
content = content3.join("\n")
|
2727
2649
|
end
|
2728
2650
|
|
2729
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2651
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2730
2652
|
content2.each_with_index do |con, index|
|
2731
2653
|
if position.include?(index)
|
2732
2654
|
insert_keyword_text = keyword.to_s
|
@@ -2756,7 +2678,7 @@ class Wordpress
|
|
2756
2678
|
end
|
2757
2679
|
end
|
2758
2680
|
|
2759
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2681
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2760
2682
|
begin
|
2761
2683
|
content2.each_with_index do |con, index|
|
2762
2684
|
if position.include?(index)
|
@@ -2851,7 +2773,7 @@ class Wordpress
|
|
2851
2773
|
end
|
2852
2774
|
end
|
2853
2775
|
|
2854
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2776
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2855
2777
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2856
2778
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2857
2779
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2881,9 +2803,9 @@ class Wordpress
|
|
2881
2803
|
end
|
2882
2804
|
end
|
2883
2805
|
|
2884
|
-
|
2806
|
+
position = position.sort
|
2885
2807
|
##여기서부터 이미지 순서대로 안되서 변경####-------------------------------------------------------------------------------
|
2886
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2808
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2887
2809
|
# image_url22 = get_image_file().force_encoding('utf-8')
|
2888
2810
|
# end
|
2889
2811
|
|
@@ -2901,7 +2823,7 @@ class Wordpress
|
|
2901
2823
|
# end
|
2902
2824
|
# end
|
2903
2825
|
|
2904
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2826
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2905
2827
|
# content = content5.join("\n")+'(자동생성글)'+content55
|
2906
2828
|
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2907
2829
|
# content = iconv.iconv(content)
|
@@ -2921,7 +2843,7 @@ class Wordpress
|
|
2921
2843
|
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2922
2844
|
|
2923
2845
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2924
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2846
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2925
2847
|
sleep(2)
|
2926
2848
|
puts '이미지 자동 세탁 중 · · · '
|
2927
2849
|
end
|
@@ -2940,7 +2862,7 @@ class Wordpress
|
|
2940
2862
|
end
|
2941
2863
|
sleep(2)
|
2942
2864
|
puts '이미지 자동 세탁 완료 · · · '
|
2943
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2865
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2944
2866
|
content = content5.join("\n")+'(자동생성글)'+content55
|
2945
2867
|
puts content
|
2946
2868
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -3080,7 +3002,7 @@ class Wordpress
|
|
3080
3002
|
content = content
|
3081
3003
|
soosick_1 = content_end
|
3082
3004
|
else
|
3083
|
-
if @data['포스트설정']['gpt'].checked?
|
3005
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3084
3006
|
if @data['포스트설정']['gpt상단'].checked?
|
3085
3007
|
content = content_end+"\n"+content+"\n"
|
3086
3008
|
else
|
@@ -3749,7 +3671,10 @@ class Wordpress
|
|
3749
3671
|
}
|
3750
3672
|
horizontal_box{
|
3751
3673
|
stretchy false
|
3674
|
+
grid{
|
3752
3675
|
button('전체선택'){
|
3676
|
+
top 1
|
3677
|
+
left 1
|
3753
3678
|
on_clicked{
|
3754
3679
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
3755
3680
|
@data['키워드설정']['키워드'][n][0] = true
|
@@ -3758,7 +3683,20 @@ class Wordpress
|
|
3758
3683
|
end
|
3759
3684
|
}
|
3760
3685
|
}
|
3761
|
-
button('
|
3686
|
+
button('선택해제'){
|
3687
|
+
top 1
|
3688
|
+
left 2
|
3689
|
+
on_clicked{
|
3690
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3691
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3692
|
+
@data['키워드설정']['키워드'] << []
|
3693
|
+
@data['키워드설정']['키워드'].pop
|
3694
|
+
end
|
3695
|
+
}
|
3696
|
+
}
|
3697
|
+
button('삭제하기'){
|
3698
|
+
top 1
|
3699
|
+
left 3
|
3762
3700
|
on_clicked{
|
3763
3701
|
m = Array.new
|
3764
3702
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
@@ -3773,6 +3711,8 @@ class Wordpress
|
|
3773
3711
|
@data['키워드설정']['키워드'].delete(nil)
|
3774
3712
|
}
|
3775
3713
|
}
|
3714
|
+
}
|
3715
|
+
|
3776
3716
|
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3777
3717
|
stretchy false
|
3778
3718
|
on_toggled{ |c|
|
@@ -3790,6 +3730,59 @@ class Wordpress
|
|
3790
3730
|
}
|
3791
3731
|
}
|
3792
3732
|
}
|
3733
|
+
vertical_separator{
|
3734
|
+
stretchy false
|
3735
|
+
}
|
3736
|
+
horizontal_box{
|
3737
|
+
stretchy false
|
3738
|
+
grid{
|
3739
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3740
|
+
top 1
|
3741
|
+
left 0
|
3742
|
+
#enabled false # 기본적으로 비활성화
|
3743
|
+
on_toggled {
|
3744
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3745
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3746
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3747
|
+
else
|
3748
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3749
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3750
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3751
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3752
|
+
end
|
3753
|
+
}
|
3754
|
+
|
3755
|
+
}
|
3756
|
+
|
3757
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3758
|
+
top 1
|
3759
|
+
left 1
|
3760
|
+
enabled false # 기본적으로 비활성화
|
3761
|
+
on_toggled{
|
3762
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3763
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3764
|
+
end
|
3765
|
+
}
|
3766
|
+
}
|
3767
|
+
|
3768
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3769
|
+
top 1
|
3770
|
+
left 2
|
3771
|
+
enabled false # 기본적으로 비활성화
|
3772
|
+
on_toggled{
|
3773
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3774
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3775
|
+
end
|
3776
|
+
}
|
3777
|
+
}
|
3778
|
+
} }
|
3779
|
+
horizontal_box{
|
3780
|
+
stretchy false
|
3781
|
+
grid{
|
3782
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3783
|
+
} } }
|
3784
|
+
|
3785
|
+
|
3793
3786
|
table{
|
3794
3787
|
checkbox_column('선택'){
|
3795
3788
|
editable true
|
@@ -3800,7 +3793,9 @@ class Wordpress
|
|
3800
3793
|
|
3801
3794
|
cell_rows @data['키워드설정']['키워드']
|
3802
3795
|
}
|
3803
|
-
|
3796
|
+
|
3797
|
+
|
3798
|
+
|
3804
3799
|
}
|
3805
3800
|
vertical_separator{
|
3806
3801
|
stretchy false
|
@@ -3829,7 +3824,10 @@ class Wordpress
|
|
3829
3824
|
}
|
3830
3825
|
horizontal_box{
|
3831
3826
|
stretchy false
|
3827
|
+
grid{
|
3832
3828
|
button('전체선택'){
|
3829
|
+
top 1
|
3830
|
+
left 1
|
3833
3831
|
on_clicked{
|
3834
3832
|
for n in 0..@data['제목설정']['제목'].length-1
|
3835
3833
|
@data['제목설정']['제목'][n][0] = true
|
@@ -3838,7 +3836,20 @@ class Wordpress
|
|
3838
3836
|
end
|
3839
3837
|
}
|
3840
3838
|
}
|
3841
|
-
button('
|
3839
|
+
button('선택해제'){
|
3840
|
+
top 1
|
3841
|
+
left 2
|
3842
|
+
on_clicked{
|
3843
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3844
|
+
@data['제목설정']['제목'][n][0] = false
|
3845
|
+
@data['제목설정']['제목'] << []
|
3846
|
+
@data['제목설정']['제목'].pop
|
3847
|
+
end
|
3848
|
+
}
|
3849
|
+
}
|
3850
|
+
button('삭제하기'){
|
3851
|
+
top 1
|
3852
|
+
left 3
|
3842
3853
|
on_clicked{
|
3843
3854
|
m = Array.new
|
3844
3855
|
for n in 0..@data['제목설정']['제목'].length-1
|
@@ -3853,6 +3864,7 @@ class Wordpress
|
|
3853
3864
|
@data['제목설정']['제목'].delete(nil)
|
3854
3865
|
}
|
3855
3866
|
}
|
3867
|
+
}
|
3856
3868
|
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3857
3869
|
stretchy false
|
3858
3870
|
on_toggled{ |c|
|
@@ -3870,6 +3882,23 @@ class Wordpress
|
|
3870
3882
|
}
|
3871
3883
|
}
|
3872
3884
|
}
|
3885
|
+
vertical_separator{
|
3886
|
+
stretchy false
|
3887
|
+
}
|
3888
|
+
horizontal_box{
|
3889
|
+
stretchy false
|
3890
|
+
grid{
|
3891
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3892
|
+
|
3893
|
+
|
3894
|
+
}}}
|
3895
|
+
horizontal_box{
|
3896
|
+
stretchy false
|
3897
|
+
grid{
|
3898
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3899
|
+
} } }
|
3900
|
+
|
3901
|
+
|
3873
3902
|
table{
|
3874
3903
|
checkbox_column('선택'){
|
3875
3904
|
editable true
|
@@ -3880,6 +3909,7 @@ class Wordpress
|
|
3880
3909
|
|
3881
3910
|
cell_rows @data['제목설정']['제목']
|
3882
3911
|
}
|
3912
|
+
|
3883
3913
|
|
3884
3914
|
}
|
3885
3915
|
vertical_separator{
|
@@ -3907,7 +3937,10 @@ class Wordpress
|
|
3907
3937
|
}
|
3908
3938
|
horizontal_box{
|
3909
3939
|
stretchy false
|
3940
|
+
grid{
|
3910
3941
|
button('전체선택'){
|
3942
|
+
top 1
|
3943
|
+
left 1
|
3911
3944
|
on_clicked{
|
3912
3945
|
for n in 0..@data['내용설정']['내용'].length-1
|
3913
3946
|
@data['내용설정']['내용'][n][0] = true
|
@@ -3916,7 +3949,20 @@ class Wordpress
|
|
3916
3949
|
end
|
3917
3950
|
}
|
3918
3951
|
}
|
3919
|
-
button('
|
3952
|
+
button('선택해제'){
|
3953
|
+
top 1
|
3954
|
+
left 2
|
3955
|
+
on_clicked{
|
3956
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3957
|
+
@data['내용설정']['내용'][n][0] = false
|
3958
|
+
@data['내용설정']['내용'] << []
|
3959
|
+
@data['내용설정']['내용'].pop
|
3960
|
+
end
|
3961
|
+
}
|
3962
|
+
}
|
3963
|
+
button('삭제하기'){
|
3964
|
+
top 1
|
3965
|
+
left 3
|
3920
3966
|
on_clicked{
|
3921
3967
|
m = Array.new
|
3922
3968
|
for n in 0..@data['내용설정']['내용'].length-1
|
@@ -3931,6 +3977,7 @@ class Wordpress
|
|
3931
3977
|
@data['내용설정']['내용'].delete(nil)
|
3932
3978
|
}
|
3933
3979
|
}
|
3980
|
+
}
|
3934
3981
|
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
3935
3982
|
stretchy false
|
3936
3983
|
on_toggled{ |c|
|
@@ -3948,6 +3995,22 @@ class Wordpress
|
|
3948
3995
|
}
|
3949
3996
|
}
|
3950
3997
|
}
|
3998
|
+
vertical_separator{
|
3999
|
+
stretchy false
|
4000
|
+
}
|
4001
|
+
horizontal_box{
|
4002
|
+
stretchy false
|
4003
|
+
grid{
|
4004
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
4005
|
+
|
4006
|
+
|
4007
|
+
}}}
|
4008
|
+
horizontal_box{
|
4009
|
+
stretchy false
|
4010
|
+
grid{
|
4011
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
4012
|
+
} } }
|
4013
|
+
|
3951
4014
|
table{
|
3952
4015
|
checkbox_column('선택'){
|
3953
4016
|
editable true
|
@@ -3965,8 +4028,8 @@ class Wordpress
|
|
3965
4028
|
stretchy false
|
3966
4029
|
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3967
4030
|
}
|
3968
|
-
button('
|
3969
|
-
|
4031
|
+
button('폴더째로 불러오기'){
|
4032
|
+
|
3970
4033
|
on_clicked{
|
3971
4034
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3972
4035
|
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4064,7 +4127,7 @@ class Wordpress
|
|
4064
4127
|
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
4065
4128
|
}
|
4066
4129
|
button('폴더째로불러오기'){
|
4067
|
-
|
4130
|
+
|
4068
4131
|
on_clicked{
|
4069
4132
|
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
4070
4133
|
Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4317,6 +4380,18 @@ class Wordpress
|
|
4317
4380
|
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4318
4381
|
top 2
|
4319
4382
|
left 0
|
4383
|
+
#enabled false # 기본적으로 비활성화
|
4384
|
+
on_toggled {
|
4385
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4386
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4387
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4388
|
+
else
|
4389
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4390
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4391
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4392
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4393
|
+
end
|
4394
|
+
}
|
4320
4395
|
}
|
4321
4396
|
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4322
4397
|
top 2
|
@@ -4339,6 +4414,7 @@ class Wordpress
|
|
4339
4414
|
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4340
4415
|
top 3
|
4341
4416
|
left 3
|
4417
|
+
enabled false # 기본적으로 비활성화
|
4342
4418
|
on_toggled{
|
4343
4419
|
if @data['포스트설정']['제목앞'].checked? == true
|
4344
4420
|
if @data['포스트설정']['제목뒤'].checked?
|
@@ -4354,6 +4430,7 @@ class Wordpress
|
|
4354
4430
|
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4355
4431
|
top 4
|
4356
4432
|
left 3
|
4433
|
+
enabled false # 기본적으로 비활성화
|
4357
4434
|
on_toggled{
|
4358
4435
|
if @data['포스트설정']['제목뒤'].checked? == true
|
4359
4436
|
if @data['포스트설정']['제목앞'].checked?
|
@@ -4362,26 +4439,51 @@ class Wordpress
|
|
4362
4439
|
end
|
4363
4440
|
}
|
4364
4441
|
}
|
4365
|
-
@data['포스트설정']['
|
4442
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4366
4443
|
top 4
|
4367
4444
|
left 0
|
4368
4445
|
}
|
4369
|
-
|
4370
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4446
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4371
4447
|
top 5
|
4372
4448
|
left 0
|
4449
|
+
on_toggled{
|
4450
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4451
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4452
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4453
|
+
end
|
4454
|
+
end
|
4455
|
+
}
|
4373
4456
|
}
|
4374
|
-
@data['포스트설정']['
|
4457
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4375
4458
|
top 6
|
4376
4459
|
left 0
|
4460
|
+
on_toggled{
|
4461
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4462
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4463
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4464
|
+
end
|
4465
|
+
end
|
4466
|
+
}
|
4377
4467
|
}
|
4378
4468
|
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4379
4469
|
top 7
|
4380
4470
|
left 0
|
4471
|
+
on_toggled {
|
4472
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4473
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4474
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4475
|
+
else
|
4476
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4477
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4478
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4479
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4480
|
+
end
|
4481
|
+
}
|
4381
4482
|
}
|
4382
4483
|
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4383
4484
|
top 7
|
4384
4485
|
left 1
|
4486
|
+
|
4385
4487
|
text '최소수량'
|
4386
4488
|
}
|
4387
4489
|
label('~'){
|
@@ -4402,55 +4504,51 @@ class Wordpress
|
|
4402
4504
|
left 1
|
4403
4505
|
text 'URL'
|
4404
4506
|
}
|
4405
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('
|
4507
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4406
4508
|
top 9
|
4407
4509
|
left 0
|
4408
4510
|
on_toggled{
|
4409
4511
|
if @data['포스트설정']['내용을자동생성'].checked?
|
4410
|
-
|
4411
|
-
|
4412
|
-
|
4512
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4513
|
+
@data['포스트설정']['내용투명'].checked = false
|
4514
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4515
|
+
|
4413
4516
|
end
|
4414
4517
|
}
|
4415
4518
|
}
|
4416
4519
|
|
4417
|
-
|
4418
|
-
top 10
|
4419
|
-
left 0
|
4420
|
-
}
|
4421
|
-
|
4422
|
-
@data['포스트설정']['api_key'] = entry(){
|
4423
|
-
top 10
|
4424
|
-
left 1
|
4425
|
-
text 'api key'
|
4426
|
-
}
|
4520
|
+
|
4427
4521
|
|
4428
|
-
@data['포스트설정']['gpt상단'] = checkbox('원고내용 위에 넣기'){
|
4429
|
-
top 10
|
4430
|
-
left 3
|
4431
|
-
}
|
4432
|
-
|
4433
|
-
@data['포스트설정']['gpt하단'] = checkbox('원고내용 아래에 넣기'){
|
4434
|
-
top 11
|
4435
|
-
left 3
|
4436
|
-
}
|
4437
4522
|
|
4438
4523
|
aa1 = 2
|
4439
|
-
|
4524
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4440
4525
|
top 10 + aa1
|
4441
4526
|
left 0
|
4442
|
-
on_toggled{
|
4443
|
-
|
4444
|
-
|
4445
|
-
|
4446
|
-
|
4447
|
-
|
4527
|
+
on_toggled {
|
4528
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4529
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4530
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4531
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4532
|
+
else
|
4533
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4534
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4535
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4536
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4537
|
+
end
|
4448
4538
|
}
|
4449
|
-
|
4450
|
-
|
4451
|
-
|
4539
|
+
}
|
4540
|
+
|
4541
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4542
|
+
top 11 + aa1
|
4452
4543
|
left 0
|
4453
|
-
|
4544
|
+
enabled false # 기본적으로 비활성화
|
4545
|
+
on_toggled {
|
4546
|
+
if @data['포스트설정']['내용투명'].checked?
|
4547
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4548
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4549
|
+
end
|
4550
|
+
}
|
4551
|
+
}
|
4454
4552
|
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4455
4553
|
top 12+ aa1
|
4456
4554
|
left 0
|
@@ -4478,6 +4576,18 @@ class Wordpress
|
|
4478
4576
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4479
4577
|
top 13+ aa1
|
4480
4578
|
left 0
|
4579
|
+
#enabled false # 기본적으로 비활성화
|
4580
|
+
on_toggled {
|
4581
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4582
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4583
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4584
|
+
else
|
4585
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4586
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4587
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4588
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4589
|
+
end
|
4590
|
+
}
|
4481
4591
|
}
|
4482
4592
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4483
4593
|
top 13+ aa1
|
@@ -4495,15 +4605,28 @@ class Wordpress
|
|
4495
4605
|
}
|
4496
4606
|
|
4497
4607
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4608
|
+
enabled false # 기본적으로 비활성화
|
4498
4609
|
top 14+ aa1
|
4499
4610
|
left 0
|
4500
4611
|
}
|
4501
4612
|
|
4502
4613
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
4614
|
+
enabled false # 기본적으로 비활성화
|
4503
4615
|
top 14+ aa1
|
4504
4616
|
left 1
|
4505
4617
|
text 'URL'
|
4506
4618
|
}
|
4619
|
+
|
4620
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4621
|
+
top 15+ aa1
|
4622
|
+
left 0
|
4623
|
+
}
|
4624
|
+
|
4625
|
+
@data['포스트설정']['api_key'] = entry(){
|
4626
|
+
top 15+ aa1
|
4627
|
+
left 1
|
4628
|
+
text 'api key 입력 필수!!'
|
4629
|
+
}
|
4507
4630
|
}
|
4508
4631
|
}
|
4509
4632
|
|
@@ -4694,6 +4817,22 @@ class Wordpress
|
|
4694
4817
|
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4695
4818
|
top 6
|
4696
4819
|
left 0
|
4820
|
+
#enabled false # 기본적으로 비활성화
|
4821
|
+
on_toggled {
|
4822
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4823
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4824
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4825
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4826
|
+
|
4827
|
+
else
|
4828
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4829
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4830
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4831
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4832
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4833
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4834
|
+
end
|
4835
|
+
}
|
4697
4836
|
}
|
4698
4837
|
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4699
4838
|
top 6
|
@@ -4723,10 +4862,12 @@ class Wordpress
|
|
4723
4862
|
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4724
4863
|
top 7
|
4725
4864
|
left 0
|
4865
|
+
enabled false # 기본적으로 비활성화
|
4726
4866
|
}
|
4727
4867
|
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4728
4868
|
top 7
|
4729
4869
|
left 1
|
4870
|
+
enabled false # 기본적으로 비활성화
|
4730
4871
|
}
|
4731
4872
|
|
4732
4873
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
@@ -4751,11 +4892,19 @@ class Wordpress
|
|
4751
4892
|
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4752
4893
|
top 9
|
4753
4894
|
left 0
|
4895
|
+
enabled false # 기본적으로 비활성화
|
4896
|
+
on_toggled {
|
4897
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4898
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4899
|
+
@data['포스트설정']['내용투명'].checked = false
|
4900
|
+
end
|
4901
|
+
}
|
4754
4902
|
}
|
4755
4903
|
|
4756
4904
|
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4757
4905
|
top 9
|
4758
4906
|
left 1
|
4907
|
+
enabled false # 기본적으로 비활성화
|
4759
4908
|
}
|
4760
4909
|
|
4761
4910
|
|
@@ -4838,10 +4987,22 @@ class Wordpress
|
|
4838
4987
|
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4839
4988
|
top 15
|
4840
4989
|
left 0
|
4990
|
+
on_toggled{
|
4991
|
+
if @data['포스트설정']['테더링'].checked?
|
4992
|
+
@data['포스트설정']['프록시'].checked = false
|
4993
|
+
|
4994
|
+
end
|
4995
|
+
}
|
4841
4996
|
}
|
4842
4997
|
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4843
4998
|
top 15
|
4844
4999
|
left 1
|
5000
|
+
on_toggled{
|
5001
|
+
if @data['포스트설정']['프록시'].checked?
|
5002
|
+
@data['포스트설정']['테더링'].checked = false
|
5003
|
+
|
5004
|
+
end
|
5005
|
+
}
|
4845
5006
|
}
|
4846
5007
|
button('프록시 IP 파일 불러오기'){
|
4847
5008
|
top 15
|