cafe_buy_duo 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_duo.rb +533 -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]
|
@@ -1126,11 +1101,20 @@ 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)
|
1115
|
+
rescue
|
1116
|
+
@driver.action.key_down(:down).key_up(:down).perform
|
1117
|
+
end
|
1134
1118
|
|
1135
1119
|
elsif i2.to_s.include?('<inyonggoo')
|
1136
1120
|
if i2.text == ''
|
@@ -2020,108 +2004,19 @@ class Wordpress
|
|
2020
2004
|
|
2021
2005
|
|
2022
2006
|
|
2007
|
+
#def chrome_start(url, user_id, user_pw)
|
2008
|
+
# @url = url
|
2009
|
+
# @user_id = user_id
|
2010
|
+
# @user_pw = user_pw
|
2011
|
+
# begin
|
2012
|
+
# Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
2013
|
+
# @driver = Selenium::WebDriver.for :chrome
|
2014
|
+
# rescue
|
2015
|
+
# @driver = Selenium::WebDriver.for :chrome
|
2016
|
+
# end
|
2017
|
+
#end
|
2023
2018
|
|
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
2019
|
|
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
2020
|
|
2126
2021
|
def auto_image
|
2127
2022
|
begin
|
@@ -2464,6 +2359,13 @@ class Wordpress
|
|
2464
2359
|
end
|
2465
2360
|
end
|
2466
2361
|
end
|
2362
|
+
|
2363
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2364
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2365
|
+
gpt_text1 = chat.message(title)
|
2366
|
+
title = gpt_text1.to_s
|
2367
|
+
end
|
2368
|
+
|
2467
2369
|
@data['table'][index][-1] = 5
|
2468
2370
|
@data['table'] << []
|
2469
2371
|
@data['table'].pop
|
@@ -2501,6 +2403,25 @@ class Wordpress
|
|
2501
2403
|
end
|
2502
2404
|
end
|
2503
2405
|
end
|
2406
|
+
|
2407
|
+
|
2408
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2409
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2410
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2411
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2412
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2413
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2414
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2415
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2416
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2417
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2418
|
+
|
2419
|
+
|
2420
|
+
chat = Chat_content.new(api_key)
|
2421
|
+
gpt_text3 = chat.message(content)
|
2422
|
+
content = gpt_text3.to_s
|
2423
|
+
end
|
2424
|
+
|
2504
2425
|
content_tag = content.split('@##@')[1]
|
2505
2426
|
content = content.split('@##@')[0]
|
2506
2427
|
@data['table'][index][-1] = 15
|
@@ -2699,7 +2620,7 @@ class Wordpress
|
|
2699
2620
|
@data['table'][index][-1] = 50
|
2700
2621
|
@data['table'] << []
|
2701
2622
|
@data['table'].pop
|
2702
|
-
if @data['포스트설정']['gpt'].checked?
|
2623
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2703
2624
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2704
2625
|
gpt_text = chat.message(keyword)
|
2705
2626
|
content = content + "\n(자동생성글)\n" + gpt_text
|
@@ -2720,7 +2641,7 @@ class Wordpress
|
|
2720
2641
|
joongbok_check = 0
|
2721
2642
|
counter10 = 0
|
2722
2643
|
while joongbok_check == 0
|
2723
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2644
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2724
2645
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2725
2646
|
else
|
2726
2647
|
content22 = content.split("\n")
|
@@ -2744,12 +2665,12 @@ class Wordpress
|
|
2744
2665
|
content2 = content.split("\n")
|
2745
2666
|
end
|
2746
2667
|
|
2747
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2668
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2748
2669
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2749
2670
|
position.pop
|
2750
2671
|
end
|
2751
2672
|
|
2752
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2673
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2753
2674
|
content2 = content.split("\n")
|
2754
2675
|
end
|
2755
2676
|
|
@@ -2795,7 +2716,7 @@ class Wordpress
|
|
2795
2716
|
content = content3.join("\n")
|
2796
2717
|
end
|
2797
2718
|
|
2798
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2719
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2799
2720
|
content2.each_with_index do |con, index|
|
2800
2721
|
if position.include?(index)
|
2801
2722
|
insert_keyword_text = keyword.to_s
|
@@ -2825,7 +2746,7 @@ class Wordpress
|
|
2825
2746
|
end
|
2826
2747
|
end
|
2827
2748
|
|
2828
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2749
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2829
2750
|
begin
|
2830
2751
|
content2.each_with_index do |con, index|
|
2831
2752
|
if position.include?(index)
|
@@ -2920,7 +2841,7 @@ class Wordpress
|
|
2920
2841
|
end
|
2921
2842
|
end
|
2922
2843
|
|
2923
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2844
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2924
2845
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2925
2846
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2926
2847
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2952,7 +2873,7 @@ class Wordpress
|
|
2952
2873
|
|
2953
2874
|
position = position.sort
|
2954
2875
|
##여기서부터 이미지 순서대로 안되서 변경####-------------------------------------------------------------------------------
|
2955
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2876
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2956
2877
|
# image_url22 = get_image_file().force_encoding('utf-8')
|
2957
2878
|
# end
|
2958
2879
|
|
@@ -2970,7 +2891,7 @@ class Wordpress
|
|
2970
2891
|
# end
|
2971
2892
|
# end
|
2972
2893
|
|
2973
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2894
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2974
2895
|
# content = content5.join("\n")+'(자동생성글)'+content55
|
2975
2896
|
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2976
2897
|
# content = iconv.iconv(content)
|
@@ -2990,7 +2911,7 @@ class Wordpress
|
|
2990
2911
|
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2991
2912
|
|
2992
2913
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2993
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2914
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2994
2915
|
sleep(2)
|
2995
2916
|
puts '이미지 자동 세탁 중 · · · '
|
2996
2917
|
end
|
@@ -3009,7 +2930,7 @@ class Wordpress
|
|
3009
2930
|
end
|
3010
2931
|
sleep(2)
|
3011
2932
|
puts '이미지 자동 세탁 완료 · · · '
|
3012
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2933
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
3013
2934
|
content = content5.join("\n")+'(자동생성글)'+content55
|
3014
2935
|
puts content
|
3015
2936
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -3149,7 +3070,7 @@ class Wordpress
|
|
3149
3070
|
content = content
|
3150
3071
|
soosick_1 = content_end
|
3151
3072
|
else
|
3152
|
-
if @data['포스트설정']['gpt'].checked?
|
3073
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3153
3074
|
if @data['포스트설정']['gpt상단'].checked?
|
3154
3075
|
content = content_end+"\n"+content+"\n"
|
3155
3076
|
else
|
@@ -3824,7 +3745,10 @@ class Wordpress
|
|
3824
3745
|
}
|
3825
3746
|
horizontal_box{
|
3826
3747
|
stretchy false
|
3748
|
+
grid{
|
3827
3749
|
button('전체선택'){
|
3750
|
+
top 1
|
3751
|
+
left 1
|
3828
3752
|
on_clicked{
|
3829
3753
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
3830
3754
|
@data['키워드설정']['키워드'][n][0] = true
|
@@ -3833,7 +3757,20 @@ class Wordpress
|
|
3833
3757
|
end
|
3834
3758
|
}
|
3835
3759
|
}
|
3836
|
-
button('
|
3760
|
+
button('선택해제'){
|
3761
|
+
top 1
|
3762
|
+
left 2
|
3763
|
+
on_clicked{
|
3764
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3765
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3766
|
+
@data['키워드설정']['키워드'] << []
|
3767
|
+
@data['키워드설정']['키워드'].pop
|
3768
|
+
end
|
3769
|
+
}
|
3770
|
+
}
|
3771
|
+
button('삭제하기'){
|
3772
|
+
top 1
|
3773
|
+
left 3
|
3837
3774
|
on_clicked{
|
3838
3775
|
m = Array.new
|
3839
3776
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
@@ -3848,6 +3785,8 @@ class Wordpress
|
|
3848
3785
|
@data['키워드설정']['키워드'].delete(nil)
|
3849
3786
|
}
|
3850
3787
|
}
|
3788
|
+
}
|
3789
|
+
|
3851
3790
|
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3852
3791
|
stretchy false
|
3853
3792
|
on_toggled{ |c|
|
@@ -3865,6 +3804,59 @@ class Wordpress
|
|
3865
3804
|
}
|
3866
3805
|
}
|
3867
3806
|
}
|
3807
|
+
vertical_separator{
|
3808
|
+
stretchy false
|
3809
|
+
}
|
3810
|
+
horizontal_box{
|
3811
|
+
stretchy false
|
3812
|
+
grid{
|
3813
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3814
|
+
top 1
|
3815
|
+
left 0
|
3816
|
+
#enabled false # 기본적으로 비활성화
|
3817
|
+
on_toggled {
|
3818
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3819
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3820
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3821
|
+
else
|
3822
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3823
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3824
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3825
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3826
|
+
end
|
3827
|
+
}
|
3828
|
+
|
3829
|
+
}
|
3830
|
+
|
3831
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3832
|
+
top 1
|
3833
|
+
left 1
|
3834
|
+
enabled false # 기본적으로 비활성화
|
3835
|
+
on_toggled{
|
3836
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3837
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3838
|
+
end
|
3839
|
+
}
|
3840
|
+
}
|
3841
|
+
|
3842
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3843
|
+
top 1
|
3844
|
+
left 2
|
3845
|
+
enabled false # 기본적으로 비활성화
|
3846
|
+
on_toggled{
|
3847
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3848
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3849
|
+
end
|
3850
|
+
}
|
3851
|
+
}
|
3852
|
+
} }
|
3853
|
+
horizontal_box{
|
3854
|
+
stretchy false
|
3855
|
+
grid{
|
3856
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3857
|
+
} } }
|
3858
|
+
|
3859
|
+
|
3868
3860
|
table{
|
3869
3861
|
checkbox_column('선택'){
|
3870
3862
|
editable true
|
@@ -3875,7 +3867,9 @@ class Wordpress
|
|
3875
3867
|
|
3876
3868
|
cell_rows @data['키워드설정']['키워드']
|
3877
3869
|
}
|
3878
|
-
|
3870
|
+
|
3871
|
+
|
3872
|
+
|
3879
3873
|
}
|
3880
3874
|
vertical_separator{
|
3881
3875
|
stretchy false
|
@@ -3904,7 +3898,10 @@ class Wordpress
|
|
3904
3898
|
}
|
3905
3899
|
horizontal_box{
|
3906
3900
|
stretchy false
|
3901
|
+
grid{
|
3907
3902
|
button('전체선택'){
|
3903
|
+
top 1
|
3904
|
+
left 1
|
3908
3905
|
on_clicked{
|
3909
3906
|
for n in 0..@data['제목설정']['제목'].length-1
|
3910
3907
|
@data['제목설정']['제목'][n][0] = true
|
@@ -3913,7 +3910,20 @@ class Wordpress
|
|
3913
3910
|
end
|
3914
3911
|
}
|
3915
3912
|
}
|
3916
|
-
button('
|
3913
|
+
button('선택해제'){
|
3914
|
+
top 1
|
3915
|
+
left 2
|
3916
|
+
on_clicked{
|
3917
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3918
|
+
@data['제목설정']['제목'][n][0] = false
|
3919
|
+
@data['제목설정']['제목'] << []
|
3920
|
+
@data['제목설정']['제목'].pop
|
3921
|
+
end
|
3922
|
+
}
|
3923
|
+
}
|
3924
|
+
button('삭제하기'){
|
3925
|
+
top 1
|
3926
|
+
left 3
|
3917
3927
|
on_clicked{
|
3918
3928
|
m = Array.new
|
3919
3929
|
for n in 0..@data['제목설정']['제목'].length-1
|
@@ -3928,6 +3938,7 @@ class Wordpress
|
|
3928
3938
|
@data['제목설정']['제목'].delete(nil)
|
3929
3939
|
}
|
3930
3940
|
}
|
3941
|
+
}
|
3931
3942
|
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3932
3943
|
stretchy false
|
3933
3944
|
on_toggled{ |c|
|
@@ -3945,6 +3956,23 @@ class Wordpress
|
|
3945
3956
|
}
|
3946
3957
|
}
|
3947
3958
|
}
|
3959
|
+
vertical_separator{
|
3960
|
+
stretchy false
|
3961
|
+
}
|
3962
|
+
horizontal_box{
|
3963
|
+
stretchy false
|
3964
|
+
grid{
|
3965
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3966
|
+
|
3967
|
+
|
3968
|
+
}}}
|
3969
|
+
horizontal_box{
|
3970
|
+
stretchy false
|
3971
|
+
grid{
|
3972
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3973
|
+
} } }
|
3974
|
+
|
3975
|
+
|
3948
3976
|
table{
|
3949
3977
|
checkbox_column('선택'){
|
3950
3978
|
editable true
|
@@ -3955,6 +3983,7 @@ class Wordpress
|
|
3955
3983
|
|
3956
3984
|
cell_rows @data['제목설정']['제목']
|
3957
3985
|
}
|
3986
|
+
|
3958
3987
|
|
3959
3988
|
}
|
3960
3989
|
vertical_separator{
|
@@ -3982,7 +4011,10 @@ class Wordpress
|
|
3982
4011
|
}
|
3983
4012
|
horizontal_box{
|
3984
4013
|
stretchy false
|
4014
|
+
grid{
|
3985
4015
|
button('전체선택'){
|
4016
|
+
top 1
|
4017
|
+
left 1
|
3986
4018
|
on_clicked{
|
3987
4019
|
for n in 0..@data['내용설정']['내용'].length-1
|
3988
4020
|
@data['내용설정']['내용'][n][0] = true
|
@@ -3991,7 +4023,20 @@ class Wordpress
|
|
3991
4023
|
end
|
3992
4024
|
}
|
3993
4025
|
}
|
3994
|
-
button('
|
4026
|
+
button('선택해제'){
|
4027
|
+
top 1
|
4028
|
+
left 2
|
4029
|
+
on_clicked{
|
4030
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
4031
|
+
@data['내용설정']['내용'][n][0] = false
|
4032
|
+
@data['내용설정']['내용'] << []
|
4033
|
+
@data['내용설정']['내용'].pop
|
4034
|
+
end
|
4035
|
+
}
|
4036
|
+
}
|
4037
|
+
button('삭제하기'){
|
4038
|
+
top 1
|
4039
|
+
left 3
|
3995
4040
|
on_clicked{
|
3996
4041
|
m = Array.new
|
3997
4042
|
for n in 0..@data['내용설정']['내용'].length-1
|
@@ -4006,6 +4051,7 @@ class Wordpress
|
|
4006
4051
|
@data['내용설정']['내용'].delete(nil)
|
4007
4052
|
}
|
4008
4053
|
}
|
4054
|
+
}
|
4009
4055
|
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
4010
4056
|
stretchy false
|
4011
4057
|
on_toggled{ |c|
|
@@ -4023,6 +4069,22 @@ class Wordpress
|
|
4023
4069
|
}
|
4024
4070
|
}
|
4025
4071
|
}
|
4072
|
+
vertical_separator{
|
4073
|
+
stretchy false
|
4074
|
+
}
|
4075
|
+
horizontal_box{
|
4076
|
+
stretchy false
|
4077
|
+
grid{
|
4078
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
4079
|
+
|
4080
|
+
|
4081
|
+
}}}
|
4082
|
+
horizontal_box{
|
4083
|
+
stretchy false
|
4084
|
+
grid{
|
4085
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
4086
|
+
} } }
|
4087
|
+
|
4026
4088
|
table{
|
4027
4089
|
checkbox_column('선택'){
|
4028
4090
|
editable true
|
@@ -4040,8 +4102,8 @@ class Wordpress
|
|
4040
4102
|
stretchy false
|
4041
4103
|
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
4042
4104
|
}
|
4043
|
-
button('
|
4044
|
-
|
4105
|
+
button('폴더째로 불러오기'){
|
4106
|
+
|
4045
4107
|
on_clicked{
|
4046
4108
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
4047
4109
|
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4139,7 +4201,7 @@ class Wordpress
|
|
4139
4201
|
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
4140
4202
|
}
|
4141
4203
|
button('폴더째로불러오기'){
|
4142
|
-
|
4204
|
+
|
4143
4205
|
on_clicked{
|
4144
4206
|
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
4145
4207
|
Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4392,6 +4454,18 @@ class Wordpress
|
|
4392
4454
|
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4393
4455
|
top 2
|
4394
4456
|
left 0
|
4457
|
+
#enabled false # 기본적으로 비활성화
|
4458
|
+
on_toggled {
|
4459
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4460
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4461
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4462
|
+
else
|
4463
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4464
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4465
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4466
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4467
|
+
end
|
4468
|
+
}
|
4395
4469
|
}
|
4396
4470
|
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4397
4471
|
top 2
|
@@ -4414,6 +4488,7 @@ class Wordpress
|
|
4414
4488
|
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4415
4489
|
top 3
|
4416
4490
|
left 3
|
4491
|
+
enabled false # 기본적으로 비활성화
|
4417
4492
|
on_toggled{
|
4418
4493
|
if @data['포스트설정']['제목앞'].checked? == true
|
4419
4494
|
if @data['포스트설정']['제목뒤'].checked?
|
@@ -4429,6 +4504,7 @@ class Wordpress
|
|
4429
4504
|
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4430
4505
|
top 4
|
4431
4506
|
left 3
|
4507
|
+
enabled false # 기본적으로 비활성화
|
4432
4508
|
on_toggled{
|
4433
4509
|
if @data['포스트설정']['제목뒤'].checked? == true
|
4434
4510
|
if @data['포스트설정']['제목앞'].checked?
|
@@ -4437,26 +4513,51 @@ class Wordpress
|
|
4437
4513
|
end
|
4438
4514
|
}
|
4439
4515
|
}
|
4440
|
-
@data['포스트설정']['
|
4516
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4441
4517
|
top 4
|
4442
4518
|
left 0
|
4443
4519
|
}
|
4444
|
-
|
4445
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4520
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4446
4521
|
top 5
|
4447
4522
|
left 0
|
4523
|
+
on_toggled{
|
4524
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4525
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4526
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4527
|
+
end
|
4528
|
+
end
|
4529
|
+
}
|
4448
4530
|
}
|
4449
|
-
@data['포스트설정']['
|
4531
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4450
4532
|
top 6
|
4451
4533
|
left 0
|
4534
|
+
on_toggled{
|
4535
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4536
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4537
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4538
|
+
end
|
4539
|
+
end
|
4540
|
+
}
|
4452
4541
|
}
|
4453
4542
|
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4454
4543
|
top 7
|
4455
4544
|
left 0
|
4545
|
+
on_toggled {
|
4546
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4547
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4548
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4549
|
+
else
|
4550
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4551
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4552
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4553
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4554
|
+
end
|
4555
|
+
}
|
4456
4556
|
}
|
4457
4557
|
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4458
4558
|
top 7
|
4459
4559
|
left 1
|
4560
|
+
|
4460
4561
|
text '최소수량'
|
4461
4562
|
}
|
4462
4563
|
label('~'){
|
@@ -4477,55 +4578,51 @@ class Wordpress
|
|
4477
4578
|
left 1
|
4478
4579
|
text 'URL'
|
4479
4580
|
}
|
4480
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('
|
4581
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4481
4582
|
top 9
|
4482
4583
|
left 0
|
4483
4584
|
on_toggled{
|
4484
4585
|
if @data['포스트설정']['내용을자동생성'].checked?
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4586
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4587
|
+
@data['포스트설정']['내용투명'].checked = false
|
4588
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4589
|
+
|
4488
4590
|
end
|
4489
4591
|
}
|
4490
4592
|
}
|
4491
4593
|
|
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
|
-
}
|
4594
|
+
|
4502
4595
|
|
4503
|
-
@data['포스트설정']['gpt상단'] = checkbox('원고내용 위에 넣기'){
|
4504
|
-
top 10
|
4505
|
-
left 3
|
4506
|
-
}
|
4507
|
-
|
4508
|
-
@data['포스트설정']['gpt하단'] = checkbox('원고내용 아래에 넣기'){
|
4509
|
-
top 11
|
4510
|
-
left 3
|
4511
|
-
}
|
4512
4596
|
|
4513
4597
|
aa1 = 2
|
4514
|
-
|
4598
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4515
4599
|
top 10 + aa1
|
4516
4600
|
left 0
|
4517
|
-
on_toggled{
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4522
|
-
|
4601
|
+
on_toggled {
|
4602
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4603
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4604
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4605
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4606
|
+
else
|
4607
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4608
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4609
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4610
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4611
|
+
end
|
4523
4612
|
}
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4613
|
+
}
|
4614
|
+
|
4615
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4616
|
+
top 11 + aa1
|
4527
4617
|
left 0
|
4528
|
-
|
4618
|
+
enabled false # 기본적으로 비활성화
|
4619
|
+
on_toggled {
|
4620
|
+
if @data['포스트설정']['내용투명'].checked?
|
4621
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4622
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4623
|
+
end
|
4624
|
+
}
|
4625
|
+
}
|
4529
4626
|
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4530
4627
|
top 12+ aa1
|
4531
4628
|
left 0
|
@@ -4553,6 +4650,18 @@ class Wordpress
|
|
4553
4650
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4554
4651
|
top 13+ aa1
|
4555
4652
|
left 0
|
4653
|
+
#enabled false # 기본적으로 비활성화
|
4654
|
+
on_toggled {
|
4655
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4656
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4657
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4658
|
+
else
|
4659
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4660
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4661
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4662
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4663
|
+
end
|
4664
|
+
}
|
4556
4665
|
}
|
4557
4666
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4558
4667
|
top 13+ aa1
|
@@ -4570,15 +4679,28 @@ class Wordpress
|
|
4570
4679
|
}
|
4571
4680
|
|
4572
4681
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4682
|
+
enabled false # 기본적으로 비활성화
|
4573
4683
|
top 14+ aa1
|
4574
4684
|
left 0
|
4575
4685
|
}
|
4576
4686
|
|
4577
4687
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
4688
|
+
enabled false # 기본적으로 비활성화
|
4578
4689
|
top 14+ aa1
|
4579
4690
|
left 1
|
4580
4691
|
text 'URL'
|
4581
4692
|
}
|
4693
|
+
|
4694
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4695
|
+
top 15+ aa1
|
4696
|
+
left 0
|
4697
|
+
}
|
4698
|
+
|
4699
|
+
@data['포스트설정']['api_key'] = entry(){
|
4700
|
+
top 15+ aa1
|
4701
|
+
left 1
|
4702
|
+
text 'api key 입력 필수!!'
|
4703
|
+
}
|
4582
4704
|
}
|
4583
4705
|
}
|
4584
4706
|
|
@@ -4769,6 +4891,22 @@ class Wordpress
|
|
4769
4891
|
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4770
4892
|
top 6
|
4771
4893
|
left 0
|
4894
|
+
#enabled false # 기본적으로 비활성화
|
4895
|
+
on_toggled {
|
4896
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4897
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4898
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4899
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4900
|
+
|
4901
|
+
else
|
4902
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4903
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4904
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4905
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4906
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4907
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4908
|
+
end
|
4909
|
+
}
|
4772
4910
|
}
|
4773
4911
|
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4774
4912
|
top 6
|
@@ -4798,10 +4936,12 @@ class Wordpress
|
|
4798
4936
|
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4799
4937
|
top 7
|
4800
4938
|
left 0
|
4939
|
+
enabled false # 기본적으로 비활성화
|
4801
4940
|
}
|
4802
4941
|
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4803
4942
|
top 7
|
4804
4943
|
left 1
|
4944
|
+
enabled false # 기본적으로 비활성화
|
4805
4945
|
}
|
4806
4946
|
|
4807
4947
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
@@ -4826,11 +4966,19 @@ class Wordpress
|
|
4826
4966
|
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4827
4967
|
top 9
|
4828
4968
|
left 0
|
4969
|
+
enabled false # 기본적으로 비활성화
|
4970
|
+
on_toggled {
|
4971
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4972
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4973
|
+
@data['포스트설정']['내용투명'].checked = false
|
4974
|
+
end
|
4975
|
+
}
|
4829
4976
|
}
|
4830
4977
|
|
4831
4978
|
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4832
4979
|
top 9
|
4833
4980
|
left 1
|
4981
|
+
enabled false # 기본적으로 비활성화
|
4834
4982
|
}
|
4835
4983
|
|
4836
4984
|
|
@@ -4913,10 +5061,22 @@ class Wordpress
|
|
4913
5061
|
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4914
5062
|
top 15
|
4915
5063
|
left 0
|
5064
|
+
on_toggled{
|
5065
|
+
if @data['포스트설정']['테더링'].checked?
|
5066
|
+
@data['포스트설정']['프록시'].checked = false
|
5067
|
+
|
5068
|
+
end
|
5069
|
+
}
|
4916
5070
|
}
|
4917
5071
|
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4918
5072
|
top 15
|
4919
5073
|
left 1
|
5074
|
+
on_toggled{
|
5075
|
+
if @data['포스트설정']['프록시'].checked?
|
5076
|
+
@data['포스트설정']['테더링'].checked = false
|
5077
|
+
|
5078
|
+
end
|
5079
|
+
}
|
4920
5080
|
}
|
4921
5081
|
button('프록시 IP 파일 불러오기'){
|
4922
5082
|
top 15
|