cafe_basics_duo 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cafe_basics_duo.rb +528 -375
- metadata +2 -2
data/lib/cafe_basics_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
|
@@ -623,52 +677,10 @@ class Naver
|
|
623
677
|
noko = Nokogiri::HTML(content, nil, Encoding::UTF_8.to_s)
|
624
678
|
toomung = 0
|
625
679
|
h = Hash.new
|
626
|
-
|
627
|
-
# h[:method] = 'POST'
|
628
|
-
# h[:path] = '/RabbitWrite.naver'
|
629
|
-
# h[:scheme] = 'https'
|
630
|
-
# h['accept'] = 'application/json, text/plain, */*'
|
631
|
-
# h['accept-encoding'] = 'gzip, deflate, br'
|
632
|
-
# h['accept-language'] = 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'
|
633
|
-
# h['content-type'] = 'application/x-www-form-urlencoded'
|
634
|
-
# h['cookie'] = @cookie
|
635
|
-
# h['origin'] = 'https://blog.naver.com'
|
636
|
-
# h['referer'] = 'https://blog.naver.com/'+@user_id+'/postwrite?categoryNo=1'
|
637
|
-
# h['sec-ch-ua'] = '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"'
|
638
|
-
# h['sec-ch-ua-mobile'] = '?0'
|
639
|
-
# h['sec-ch-ua-platform'] = '"Windows"'
|
640
|
-
# h['sec-fetch-dest'] = 'empty'
|
641
|
-
# h['sec-fetch-mode'] = 'cors'
|
642
|
-
# h['sec-fetch-site'] = 'same-origin'
|
643
|
-
# 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'
|
680
|
+
|
644
681
|
|
645
682
|
data = Hash.new
|
646
|
-
|
647
|
-
# data['documentModel'] = Hash.new
|
648
|
-
# data['documentModel']['documentId'] = ''
|
649
|
-
# data['documentModel']['document'] = Hash.new
|
650
|
-
# data['documentModel']['document']['version'] = '2.6.0'
|
651
|
-
# data['documentModel']['document']['theme'] = 'default'
|
652
|
-
# data['documentModel']['document']['language'] = 'ko-KR'
|
653
|
-
# data['documentModel']['document']['components'] = Array.new
|
654
|
-
# data['documentModel']['document']['components'][0] = {
|
655
|
-
# 'id' => create_id(),
|
656
|
-
# 'layout' => 'default',
|
657
|
-
# 'title' => [
|
658
|
-
# {
|
659
|
-
# 'id' => create_id(),
|
660
|
-
# 'nodes' => [{
|
661
|
-
# 'id' => create_id(),
|
662
|
-
# 'value' => title,
|
663
|
-
# '@ctype' => 'textNode'
|
664
|
-
# }],
|
665
|
-
# '@ctype' => 'paragraph'
|
666
|
-
# }
|
667
|
-
# ],
|
668
|
-
# 'subTitle' => nil,
|
669
|
-
# 'align' => 'left',
|
670
|
-
# '@ctype' => 'documentTitle'
|
671
|
-
# }
|
683
|
+
|
672
684
|
|
673
685
|
check_position = 1
|
674
686
|
noko.css('p').each do |i|
|
@@ -718,21 +730,7 @@ class Naver
|
|
718
730
|
sleep(3)
|
719
731
|
key_stroke('enter')
|
720
732
|
sleep(3)
|
721
|
-
|
722
|
-
# puts path = CGI.unescape(path)
|
723
|
-
# image_data = image_update(path)
|
724
|
-
# components_value = Hash.new
|
725
|
-
# components_value['id'] = create_id()
|
726
|
-
# components_value['layout'] = 'default'
|
727
|
-
# begin
|
728
|
-
# if i.to_s.split('text-align: ')[1].split(';')[0] == 'center'
|
729
|
-
# components_value['align'] = 'center'
|
730
|
-
# elsif i.to_s.split('text-align: ')[1].split(';')[0] == 'right'
|
731
|
-
# components_value['align'] = 'right'
|
732
|
-
# else
|
733
|
-
|
734
|
-
# end
|
735
|
-
# rescue
|
733
|
+
|
736
734
|
|
737
735
|
if i2.to_s.split('href="')[1] != nil
|
738
736
|
href2 = i2.to_s.split('href="')[1].split('"')[0]
|
@@ -748,30 +746,7 @@ class Naver
|
|
748
746
|
#key_stroke('enter')
|
749
747
|
sleep(1)
|
750
748
|
end
|
751
|
-
|
752
|
-
# components_value['src'] = 'https://blogfiles.pstatic.net'+image_data['item']['url']+'?type=w1'
|
753
|
-
# components_value['internalResource'] = true
|
754
|
-
# components_value['represent'] = true
|
755
|
-
# components_value['path'] = image_data['item']['url']
|
756
|
-
# components_value['domain'] = "https://blogfiles.pstatic.net"
|
757
|
-
# components_value['fileSize'] = image_data['item']['fileSize'].to_i
|
758
|
-
# components_value['width'] = image_data['item']['width'].to_i
|
759
|
-
# components_value['widthPercentage'] = 0
|
760
|
-
# components_value['height'] = image_data['item']['height'].to_i
|
761
|
-
# components_value['fileName'] = image_data['item']['fileName'].to_i
|
762
|
-
# components_value['caption'] = nil
|
763
|
-
# if i2.to_s.split('href="')[1] != nil
|
764
|
-
# components_value['link'] = CGI.unescape(i2.to_s.split('href="')[1].split('"')[0])
|
765
|
-
# end
|
766
|
-
# components_value['format'] = 'normal'
|
767
|
-
# components_value['displayFormat'] = 'normal'
|
768
|
-
# components_value['imageLoaded'] = true
|
769
|
-
# components_value['contentMode'] = 'fit'
|
770
|
-
# components_value['origin'] = {
|
771
|
-
# 'srcFrom' => 'local',
|
772
|
-
# '@ctype' => 'imageOrigin'
|
773
|
-
# }
|
774
|
-
# components_value['@ctype'] = 'image'
|
749
|
+
|
775
750
|
elsif i2.to_s.include?('<video')
|
776
751
|
path = i2.to_s.split('src="')[1].split('"')[0]
|
777
752
|
path = URI.decode_www_form(path)[0][0]
|
@@ -1706,107 +1681,19 @@ class Wordpress
|
|
1706
1681
|
|
1707
1682
|
|
1708
1683
|
|
1709
|
-
def chrome_start(url, user_id, user_pw)
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
end
|
1720
|
-
|
1721
|
-
def login
|
1722
|
-
@driver.get(@url+'/wp-admin')
|
1723
|
-
@driver.find_element(:xpath , '//*[@id="user_login"]').send_keys(@user_id)
|
1724
|
-
@driver.find_element(:xpath , '//*[@id="user_pass"]').send_keys(@user_pw)
|
1725
|
-
@driver.find_element(:xpath , '//*[@id="wp-submit"]').click
|
1726
|
-
@cookie = Hash.new
|
1727
|
-
@driver.manage.all_cookies.each do |i|
|
1728
|
-
@cookie[i[:name]] = i[:value]
|
1729
|
-
end
|
1730
|
-
sleep(2)
|
1731
|
-
begin
|
1732
|
-
puts @driver.find_element(:xpath , '/html/body/div/div/div[1]/div[1]/div/div[1]/a[1]/span').text
|
1733
|
-
@driver.close
|
1734
|
-
return 1
|
1735
|
-
rescue => e
|
1736
|
-
puts e
|
1737
|
-
@driver.close
|
1738
|
-
return 0
|
1739
|
-
end
|
1740
|
-
end
|
1684
|
+
#def chrome_start(url, user_id, user_pw)
|
1685
|
+
# @url = url
|
1686
|
+
# @user_id = user_id
|
1687
|
+
# @user_pw = user_pw
|
1688
|
+
# begin
|
1689
|
+
# Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1690
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1691
|
+
# rescue
|
1692
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1693
|
+
# end
|
1694
|
+
#end
|
1741
1695
|
|
1742
|
-
|
1743
|
-
http = HTTP.cookies(@cookie).get(@url+'/wp-admin/post-new.php')
|
1744
|
-
noko = Nokogiri::HTML(http.to_s)
|
1745
|
-
@wpnonce = http.to_s.split('_wpnonce":"')[1].split('"')[0]
|
1746
|
-
@data2 = Hash.new
|
1747
|
-
@data2['_wpnonce'] = noko.xpath('//*[@id="_wpnonce"]')[0]['value']
|
1748
|
-
@data2['_wp_http_referer'] = '/wp-admin/post-new.php'
|
1749
|
-
@data2['user_ID'] = '1'
|
1750
|
-
@data2['action'] = 'editpost'
|
1751
|
-
@data2['originalaction'] = 'editpost'
|
1752
|
-
@data2['post_author'] = '1'
|
1753
|
-
@data2['post_type'] = 'post'
|
1754
|
-
@data2['original_post_status'] = 'auto-draft'
|
1755
|
-
@data2['referredby'] = @url+'/wp-admin/update-core.php'
|
1756
|
-
@data2['_wp_original_http_referer'] = @url+'/wp-admin/update-core.php'
|
1757
|
-
@data2['auto_draft'] = nil
|
1758
|
-
@data2['post_ID'] = noko.xpath('//*[@id="post_ID"]')[0]['value']
|
1759
|
-
@data2['meta-box-order-nonce'] = noko.xpath('//*[@id="meta-box-order-nonce"]')[0]['value']
|
1760
|
-
@data2['closedpostboxesnonce'] = noko.xpath('//*[@id="closedpostboxesnonce"]')[0]['value']
|
1761
|
-
@data2['post_title'] = 'title3'
|
1762
|
-
@data2['samplepermalinknonce'] = noko.xpath('//*[@id="samplepermalinknonce"]')[0]['value']
|
1763
|
-
@data2['content'] = 'content3'
|
1764
|
-
@data2['wp-preview'] = nil
|
1765
|
-
@data2['hidden_post_status'] = 'draft'
|
1766
|
-
@data2['post_status'] = 'draft'
|
1767
|
-
@data2['hidden_post_password'] = nil
|
1768
|
-
@data2['hidden_post_visibility'] = 'public'
|
1769
|
-
@data2['visibility'] = 'post'
|
1770
|
-
@data2['post_password'] = nil
|
1771
|
-
@data2['mm'] = '10'
|
1772
|
-
@data2['jj'] = '24'
|
1773
|
-
@data2['aa'] = '2022'
|
1774
|
-
@data2['hh'] = '02'
|
1775
|
-
@data2['mn'] = '41'
|
1776
|
-
@data2['ss'] = '32'
|
1777
|
-
@data2['hidden_mm'] = '10'
|
1778
|
-
@data2['cur_mm'] = '10'
|
1779
|
-
@data2['hidden_jj'] = '24'
|
1780
|
-
@data2['cur_jj'] = '24'
|
1781
|
-
@data2['hidden_aa'] = '2022'
|
1782
|
-
@data2['cur_aa'] = '2022'
|
1783
|
-
@data2['hidden_hh'] = '02'
|
1784
|
-
@data2['cur_hh'] = '02'
|
1785
|
-
@data2['hidden_mn'] = '41'
|
1786
|
-
@data2['cur_mn'] = '41'
|
1787
|
-
@data2['original_publish'] = '공개'
|
1788
|
-
@data2['publish'] = '공개'
|
1789
|
-
@data2['post_format'] = '0'
|
1790
|
-
@data2['post_category[]'] = '0'
|
1791
|
-
@data2['newcategory'] = '새 카테고리 이름'
|
1792
|
-
@data2['newcategory_parent'] = -1
|
1793
|
-
@data2['_ajax_nonce-add-category'] = noko.xpath('//*[@id="_ajax_nonce-add-category"]')[0]['value']
|
1794
|
-
@data2['tax_input[post_tag]'] = nil
|
1795
|
-
@data2['newtag[post_tag]'] = nil
|
1796
|
-
@data2['_thumbnail_id'] = -1
|
1797
|
-
@data2['excerpt'] = nil
|
1798
|
-
@data2['trackback_url'] = nil
|
1799
|
-
@data2['metakeyinput'] = nil
|
1800
|
-
@data2['metavalue'] = nil
|
1801
|
-
@data2['_ajax_nonce-add-meta'] = noko.xpath('//*[@id="_ajax_nonce-add-meta"]')[0]['value']
|
1802
|
-
@data2['advanced_view'] = '1'
|
1803
|
-
@data2['comment_status'] = 'open'
|
1804
|
-
@data2['ping_status'] = 'open'
|
1805
|
-
@data2['post_name'] = nil
|
1806
|
-
@data2['post_author_override'] = '1'
|
1807
|
-
#result_http = HTTP.cookies(@cookie).post(@url+'/wp-admin/post.php', :form => @data)
|
1808
|
-
return @data2
|
1809
|
-
end
|
1696
|
+
|
1810
1697
|
|
1811
1698
|
def auto_image
|
1812
1699
|
begin
|
@@ -2035,8 +1922,7 @@ class Wordpress
|
|
2035
1922
|
@inumber2 = 0
|
2036
1923
|
@video = Array.new
|
2037
1924
|
|
2038
|
-
|
2039
|
-
|
1925
|
+
|
2040
1926
|
while true
|
2041
1927
|
for n in 0..@data['table'].length-1
|
2042
1928
|
@data['table'][n][10] = 0
|
@@ -2129,6 +2015,13 @@ class Wordpress
|
|
2129
2015
|
end
|
2130
2016
|
end
|
2131
2017
|
end
|
2018
|
+
|
2019
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2020
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2021
|
+
gpt_text1 = chat.message(title)
|
2022
|
+
title = gpt_text1.to_s
|
2023
|
+
end
|
2024
|
+
|
2132
2025
|
@data['table'][index][-1] = 5
|
2133
2026
|
@data['table'] << []
|
2134
2027
|
@data['table'].pop
|
@@ -2166,6 +2059,25 @@ class Wordpress
|
|
2166
2059
|
end
|
2167
2060
|
end
|
2168
2061
|
end
|
2062
|
+
|
2063
|
+
|
2064
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2065
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2066
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2067
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2068
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2069
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2070
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2071
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2072
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2073
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2074
|
+
|
2075
|
+
|
2076
|
+
chat = Chat_content.new(api_key)
|
2077
|
+
gpt_text3 = chat.message(content)
|
2078
|
+
content = gpt_text3.to_s
|
2079
|
+
end
|
2080
|
+
|
2169
2081
|
content_tag = content.split('@##@')[1]
|
2170
2082
|
content = content.split('@##@')[0]
|
2171
2083
|
@data['table'][index][-1] = 15
|
@@ -2364,7 +2276,7 @@ class Wordpress
|
|
2364
2276
|
@data['table'][index][-1] = 50
|
2365
2277
|
@data['table'] << []
|
2366
2278
|
@data['table'].pop
|
2367
|
-
if @data['포스트설정']['gpt'].checked?
|
2279
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2368
2280
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2369
2281
|
gpt_text = chat.message(keyword)
|
2370
2282
|
content = content + "\n(자동생성글)\n" + gpt_text
|
@@ -2385,7 +2297,7 @@ class Wordpress
|
|
2385
2297
|
joongbok_check = 0
|
2386
2298
|
counter10 = 0
|
2387
2299
|
while joongbok_check == 0
|
2388
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2300
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2389
2301
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2390
2302
|
else
|
2391
2303
|
content22 = content.split("\n")
|
@@ -2409,12 +2321,12 @@ class Wordpress
|
|
2409
2321
|
content2 = content.split("\n")
|
2410
2322
|
end
|
2411
2323
|
|
2412
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2324
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2413
2325
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2414
2326
|
position.pop
|
2415
2327
|
end
|
2416
2328
|
|
2417
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2329
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2418
2330
|
content2 = content.split("\n")
|
2419
2331
|
end
|
2420
2332
|
|
@@ -2460,7 +2372,7 @@ class Wordpress
|
|
2460
2372
|
content = content3.join("\n")
|
2461
2373
|
end
|
2462
2374
|
|
2463
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2375
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2464
2376
|
content2.each_with_index do |con, index|
|
2465
2377
|
if position.include?(index)
|
2466
2378
|
insert_keyword_text = keyword.to_s
|
@@ -2490,7 +2402,7 @@ class Wordpress
|
|
2490
2402
|
end
|
2491
2403
|
end
|
2492
2404
|
|
2493
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2405
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2494
2406
|
begin
|
2495
2407
|
content2.each_with_index do |con, index|
|
2496
2408
|
if position.include?(index)
|
@@ -2585,7 +2497,7 @@ class Wordpress
|
|
2585
2497
|
end
|
2586
2498
|
end
|
2587
2499
|
|
2588
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2500
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2589
2501
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2590
2502
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2591
2503
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2617,7 +2529,7 @@ class Wordpress
|
|
2617
2529
|
|
2618
2530
|
position = position.sort
|
2619
2531
|
##여기서부터 이미지 순서대로 안되서 변경####-------------------------------------------------------------------------------
|
2620
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2532
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2621
2533
|
# image_url22 = get_image_file().force_encoding('utf-8')
|
2622
2534
|
# end
|
2623
2535
|
|
@@ -2635,7 +2547,7 @@ class Wordpress
|
|
2635
2547
|
# end
|
2636
2548
|
# end
|
2637
2549
|
|
2638
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2550
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2639
2551
|
# content = content5.join("\n")+'(자동생성글)'+content55
|
2640
2552
|
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2641
2553
|
# content = iconv.iconv(content)
|
@@ -2655,7 +2567,7 @@ class Wordpress
|
|
2655
2567
|
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2656
2568
|
|
2657
2569
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2658
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2570
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2659
2571
|
sleep(2)
|
2660
2572
|
puts '이미지 자동 세탁 중 · · · '
|
2661
2573
|
end
|
@@ -2674,7 +2586,7 @@ class Wordpress
|
|
2674
2586
|
end
|
2675
2587
|
sleep(2)
|
2676
2588
|
puts '이미지 자동 세탁 완료 · · · '
|
2677
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2589
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2678
2590
|
content = content5.join("\n")+'(자동생성글)'+content55
|
2679
2591
|
puts content
|
2680
2592
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -2819,7 +2731,7 @@ class Wordpress
|
|
2819
2731
|
content = content
|
2820
2732
|
soosick_1 = content_end
|
2821
2733
|
else
|
2822
|
-
if @data['포스트설정']['gpt'].checked?
|
2734
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2823
2735
|
if @data['포스트설정']['gpt상단'].checked?
|
2824
2736
|
content = content_end+"\n"+content+"\n"
|
2825
2737
|
else
|
@@ -3489,7 +3401,10 @@ class Wordpress
|
|
3489
3401
|
}
|
3490
3402
|
horizontal_box{
|
3491
3403
|
stretchy false
|
3404
|
+
grid{
|
3492
3405
|
button('전체선택'){
|
3406
|
+
top 1
|
3407
|
+
left 1
|
3493
3408
|
on_clicked{
|
3494
3409
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
3495
3410
|
@data['키워드설정']['키워드'][n][0] = true
|
@@ -3498,7 +3413,20 @@ class Wordpress
|
|
3498
3413
|
end
|
3499
3414
|
}
|
3500
3415
|
}
|
3501
|
-
button('
|
3416
|
+
button('선택해제'){
|
3417
|
+
top 1
|
3418
|
+
left 2
|
3419
|
+
on_clicked{
|
3420
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3421
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3422
|
+
@data['키워드설정']['키워드'] << []
|
3423
|
+
@data['키워드설정']['키워드'].pop
|
3424
|
+
end
|
3425
|
+
}
|
3426
|
+
}
|
3427
|
+
button('삭제하기'){
|
3428
|
+
top 1
|
3429
|
+
left 3
|
3502
3430
|
on_clicked{
|
3503
3431
|
m = Array.new
|
3504
3432
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
@@ -3513,6 +3441,8 @@ class Wordpress
|
|
3513
3441
|
@data['키워드설정']['키워드'].delete(nil)
|
3514
3442
|
}
|
3515
3443
|
}
|
3444
|
+
}
|
3445
|
+
|
3516
3446
|
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3517
3447
|
stretchy false
|
3518
3448
|
on_toggled{ |c|
|
@@ -3530,6 +3460,59 @@ class Wordpress
|
|
3530
3460
|
}
|
3531
3461
|
}
|
3532
3462
|
}
|
3463
|
+
vertical_separator{
|
3464
|
+
stretchy false
|
3465
|
+
}
|
3466
|
+
horizontal_box{
|
3467
|
+
stretchy false
|
3468
|
+
grid{
|
3469
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3470
|
+
top 1
|
3471
|
+
left 0
|
3472
|
+
#enabled false # 기본적으로 비활성화
|
3473
|
+
on_toggled {
|
3474
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3475
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3476
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3477
|
+
else
|
3478
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3479
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3480
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3481
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3482
|
+
end
|
3483
|
+
}
|
3484
|
+
|
3485
|
+
}
|
3486
|
+
|
3487
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3488
|
+
top 1
|
3489
|
+
left 1
|
3490
|
+
enabled false # 기본적으로 비활성화
|
3491
|
+
on_toggled{
|
3492
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3493
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3494
|
+
end
|
3495
|
+
}
|
3496
|
+
}
|
3497
|
+
|
3498
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3499
|
+
top 1
|
3500
|
+
left 2
|
3501
|
+
enabled false # 기본적으로 비활성화
|
3502
|
+
on_toggled{
|
3503
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3504
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3505
|
+
end
|
3506
|
+
}
|
3507
|
+
}
|
3508
|
+
} }
|
3509
|
+
horizontal_box{
|
3510
|
+
stretchy false
|
3511
|
+
grid{
|
3512
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3513
|
+
} } }
|
3514
|
+
|
3515
|
+
|
3533
3516
|
table{
|
3534
3517
|
checkbox_column('선택'){
|
3535
3518
|
editable true
|
@@ -3540,7 +3523,9 @@ class Wordpress
|
|
3540
3523
|
|
3541
3524
|
cell_rows @data['키워드설정']['키워드']
|
3542
3525
|
}
|
3543
|
-
|
3526
|
+
|
3527
|
+
|
3528
|
+
|
3544
3529
|
}
|
3545
3530
|
vertical_separator{
|
3546
3531
|
stretchy false
|
@@ -3569,7 +3554,10 @@ class Wordpress
|
|
3569
3554
|
}
|
3570
3555
|
horizontal_box{
|
3571
3556
|
stretchy false
|
3557
|
+
grid{
|
3572
3558
|
button('전체선택'){
|
3559
|
+
top 1
|
3560
|
+
left 1
|
3573
3561
|
on_clicked{
|
3574
3562
|
for n in 0..@data['제목설정']['제목'].length-1
|
3575
3563
|
@data['제목설정']['제목'][n][0] = true
|
@@ -3578,7 +3566,20 @@ class Wordpress
|
|
3578
3566
|
end
|
3579
3567
|
}
|
3580
3568
|
}
|
3581
|
-
button('
|
3569
|
+
button('선택해제'){
|
3570
|
+
top 1
|
3571
|
+
left 2
|
3572
|
+
on_clicked{
|
3573
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3574
|
+
@data['제목설정']['제목'][n][0] = false
|
3575
|
+
@data['제목설정']['제목'] << []
|
3576
|
+
@data['제목설정']['제목'].pop
|
3577
|
+
end
|
3578
|
+
}
|
3579
|
+
}
|
3580
|
+
button('삭제하기'){
|
3581
|
+
top 1
|
3582
|
+
left 3
|
3582
3583
|
on_clicked{
|
3583
3584
|
m = Array.new
|
3584
3585
|
for n in 0..@data['제목설정']['제목'].length-1
|
@@ -3593,6 +3594,7 @@ class Wordpress
|
|
3593
3594
|
@data['제목설정']['제목'].delete(nil)
|
3594
3595
|
}
|
3595
3596
|
}
|
3597
|
+
}
|
3596
3598
|
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3597
3599
|
stretchy false
|
3598
3600
|
on_toggled{ |c|
|
@@ -3610,6 +3612,23 @@ class Wordpress
|
|
3610
3612
|
}
|
3611
3613
|
}
|
3612
3614
|
}
|
3615
|
+
vertical_separator{
|
3616
|
+
stretchy false
|
3617
|
+
}
|
3618
|
+
horizontal_box{
|
3619
|
+
stretchy false
|
3620
|
+
grid{
|
3621
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3622
|
+
|
3623
|
+
|
3624
|
+
}}}
|
3625
|
+
horizontal_box{
|
3626
|
+
stretchy false
|
3627
|
+
grid{
|
3628
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3629
|
+
} } }
|
3630
|
+
|
3631
|
+
|
3613
3632
|
table{
|
3614
3633
|
checkbox_column('선택'){
|
3615
3634
|
editable true
|
@@ -3620,6 +3639,7 @@ class Wordpress
|
|
3620
3639
|
|
3621
3640
|
cell_rows @data['제목설정']['제목']
|
3622
3641
|
}
|
3642
|
+
|
3623
3643
|
|
3624
3644
|
}
|
3625
3645
|
vertical_separator{
|
@@ -3647,7 +3667,10 @@ class Wordpress
|
|
3647
3667
|
}
|
3648
3668
|
horizontal_box{
|
3649
3669
|
stretchy false
|
3670
|
+
grid{
|
3650
3671
|
button('전체선택'){
|
3672
|
+
top 1
|
3673
|
+
left 1
|
3651
3674
|
on_clicked{
|
3652
3675
|
for n in 0..@data['내용설정']['내용'].length-1
|
3653
3676
|
@data['내용설정']['내용'][n][0] = true
|
@@ -3656,7 +3679,20 @@ class Wordpress
|
|
3656
3679
|
end
|
3657
3680
|
}
|
3658
3681
|
}
|
3659
|
-
button('
|
3682
|
+
button('선택해제'){
|
3683
|
+
top 1
|
3684
|
+
left 2
|
3685
|
+
on_clicked{
|
3686
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3687
|
+
@data['내용설정']['내용'][n][0] = false
|
3688
|
+
@data['내용설정']['내용'] << []
|
3689
|
+
@data['내용설정']['내용'].pop
|
3690
|
+
end
|
3691
|
+
}
|
3692
|
+
}
|
3693
|
+
button('삭제하기'){
|
3694
|
+
top 1
|
3695
|
+
left 3
|
3660
3696
|
on_clicked{
|
3661
3697
|
m = Array.new
|
3662
3698
|
for n in 0..@data['내용설정']['내용'].length-1
|
@@ -3671,6 +3707,7 @@ class Wordpress
|
|
3671
3707
|
@data['내용설정']['내용'].delete(nil)
|
3672
3708
|
}
|
3673
3709
|
}
|
3710
|
+
}
|
3674
3711
|
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
3675
3712
|
stretchy false
|
3676
3713
|
on_toggled{ |c|
|
@@ -3688,6 +3725,22 @@ class Wordpress
|
|
3688
3725
|
}
|
3689
3726
|
}
|
3690
3727
|
}
|
3728
|
+
vertical_separator{
|
3729
|
+
stretchy false
|
3730
|
+
}
|
3731
|
+
horizontal_box{
|
3732
|
+
stretchy false
|
3733
|
+
grid{
|
3734
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
3735
|
+
|
3736
|
+
|
3737
|
+
}}}
|
3738
|
+
horizontal_box{
|
3739
|
+
stretchy false
|
3740
|
+
grid{
|
3741
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3742
|
+
} } }
|
3743
|
+
|
3691
3744
|
table{
|
3692
3745
|
checkbox_column('선택'){
|
3693
3746
|
editable true
|
@@ -3705,8 +3758,8 @@ class Wordpress
|
|
3705
3758
|
stretchy false
|
3706
3759
|
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3707
3760
|
}
|
3708
|
-
button('
|
3709
|
-
|
3761
|
+
button('폴더째로 불러오기'){
|
3762
|
+
|
3710
3763
|
on_clicked{
|
3711
3764
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3712
3765
|
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -3804,7 +3857,7 @@ class Wordpress
|
|
3804
3857
|
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
3805
3858
|
}
|
3806
3859
|
button('폴더째로불러오기'){
|
3807
|
-
|
3860
|
+
|
3808
3861
|
on_clicked{
|
3809
3862
|
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3810
3863
|
Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4057,6 +4110,18 @@ class Wordpress
|
|
4057
4110
|
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4058
4111
|
top 2
|
4059
4112
|
left 0
|
4113
|
+
#enabled false # 기본적으로 비활성화
|
4114
|
+
on_toggled {
|
4115
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4116
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4117
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4118
|
+
else
|
4119
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4120
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4121
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4122
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4123
|
+
end
|
4124
|
+
}
|
4060
4125
|
}
|
4061
4126
|
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4062
4127
|
top 2
|
@@ -4079,6 +4144,7 @@ class Wordpress
|
|
4079
4144
|
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4080
4145
|
top 3
|
4081
4146
|
left 3
|
4147
|
+
enabled false # 기본적으로 비활성화
|
4082
4148
|
on_toggled{
|
4083
4149
|
if @data['포스트설정']['제목앞'].checked? == true
|
4084
4150
|
if @data['포스트설정']['제목뒤'].checked?
|
@@ -4094,6 +4160,7 @@ class Wordpress
|
|
4094
4160
|
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4095
4161
|
top 4
|
4096
4162
|
left 3
|
4163
|
+
enabled false # 기본적으로 비활성화
|
4097
4164
|
on_toggled{
|
4098
4165
|
if @data['포스트설정']['제목뒤'].checked? == true
|
4099
4166
|
if @data['포스트설정']['제목앞'].checked?
|
@@ -4102,26 +4169,51 @@ class Wordpress
|
|
4102
4169
|
end
|
4103
4170
|
}
|
4104
4171
|
}
|
4105
|
-
@data['포스트설정']['
|
4172
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4106
4173
|
top 4
|
4107
4174
|
left 0
|
4108
4175
|
}
|
4109
|
-
|
4110
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4176
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4111
4177
|
top 5
|
4112
4178
|
left 0
|
4179
|
+
on_toggled{
|
4180
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4181
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4182
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4183
|
+
end
|
4184
|
+
end
|
4185
|
+
}
|
4113
4186
|
}
|
4114
|
-
@data['포스트설정']['
|
4187
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4115
4188
|
top 6
|
4116
4189
|
left 0
|
4190
|
+
on_toggled{
|
4191
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4192
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4193
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4194
|
+
end
|
4195
|
+
end
|
4196
|
+
}
|
4117
4197
|
}
|
4118
4198
|
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4119
4199
|
top 7
|
4120
4200
|
left 0
|
4201
|
+
on_toggled {
|
4202
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4203
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4204
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4205
|
+
else
|
4206
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4207
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4208
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4209
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4210
|
+
end
|
4211
|
+
}
|
4121
4212
|
}
|
4122
4213
|
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4123
4214
|
top 7
|
4124
4215
|
left 1
|
4216
|
+
|
4125
4217
|
text '최소수량'
|
4126
4218
|
}
|
4127
4219
|
label('~'){
|
@@ -4134,63 +4226,61 @@ class Wordpress
|
|
4134
4226
|
text '최대수량'
|
4135
4227
|
}
|
4136
4228
|
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4229
|
+
enabled false # 기본적으로 비활성화
|
4137
4230
|
top 8
|
4138
4231
|
left 0
|
4139
4232
|
}
|
4140
4233
|
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4234
|
+
enabled false # 기본적으로 비활성화
|
4141
4235
|
top 8
|
4142
4236
|
left 1
|
4143
4237
|
text 'URL'
|
4144
4238
|
}
|
4145
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('
|
4239
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4146
4240
|
top 9
|
4147
4241
|
left 0
|
4148
4242
|
on_toggled{
|
4149
4243
|
if @data['포스트설정']['내용을자동생성'].checked?
|
4150
|
-
|
4151
|
-
|
4152
|
-
|
4244
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4245
|
+
@data['포스트설정']['내용투명'].checked = false
|
4246
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4247
|
+
|
4153
4248
|
end
|
4154
4249
|
}
|
4155
4250
|
}
|
4156
4251
|
|
4157
|
-
@data['포스트설정']['gpt'] = checkbox('내용을 키워드 기반의 GPT로 생성해서 포스팅'){
|
4158
|
-
top 10
|
4159
|
-
left 0
|
4160
|
-
}
|
4161
4252
|
|
4162
|
-
|
4163
|
-
top 10
|
4164
|
-
left 1
|
4165
|
-
text 'api key'
|
4166
|
-
}
|
4167
|
-
|
4168
|
-
@data['포스트설정']['gpt상단'] = checkbox('원고내용 위에 넣기'){
|
4169
|
-
top 10
|
4170
|
-
left 3
|
4171
|
-
}
|
4172
|
-
|
4173
|
-
@data['포스트설정']['gpt하단'] = checkbox('원고내용 아래에 넣기'){
|
4174
|
-
top 11
|
4175
|
-
left 3
|
4176
|
-
}
|
4253
|
+
|
4177
4254
|
|
4178
4255
|
aa1 = 2
|
4179
|
-
@data['포스트설정']['내용과자동생성'] = checkbox('
|
4256
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4180
4257
|
top 10 + aa1
|
4181
4258
|
left 0
|
4182
|
-
on_toggled{
|
4183
|
-
|
4184
|
-
|
4185
|
-
|
4186
|
-
|
4187
|
-
|
4259
|
+
on_toggled {
|
4260
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4261
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4262
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4263
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4264
|
+
else
|
4265
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4266
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4267
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4268
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4269
|
+
end
|
4188
4270
|
}
|
4189
|
-
|
4190
|
-
|
4191
|
-
|
4271
|
+
}
|
4272
|
+
|
4273
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4274
|
+
top 11 + aa1
|
4192
4275
|
left 0
|
4193
|
-
|
4276
|
+
enabled false # 기본적으로 비활성화
|
4277
|
+
on_toggled {
|
4278
|
+
if @data['포스트설정']['내용투명'].checked?
|
4279
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4280
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4281
|
+
end
|
4282
|
+
}
|
4283
|
+
}
|
4194
4284
|
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4195
4285
|
top 12+ aa1
|
4196
4286
|
left 0
|
@@ -4218,6 +4308,18 @@ class Wordpress
|
|
4218
4308
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4219
4309
|
top 13+ aa1
|
4220
4310
|
left 0
|
4311
|
+
#enabled false # 기본적으로 비활성화
|
4312
|
+
on_toggled {
|
4313
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4314
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4315
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4316
|
+
else
|
4317
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4318
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4319
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4320
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4321
|
+
end
|
4322
|
+
}
|
4221
4323
|
}
|
4222
4324
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4223
4325
|
top 13+ aa1
|
@@ -4235,15 +4337,28 @@ class Wordpress
|
|
4235
4337
|
}
|
4236
4338
|
|
4237
4339
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4340
|
+
enabled false # 기본적으로 비활성화
|
4238
4341
|
top 14+ aa1
|
4239
4342
|
left 0
|
4240
4343
|
}
|
4241
4344
|
|
4242
4345
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
4346
|
+
enabled false # 기본적으로 비활성화
|
4243
4347
|
top 14+ aa1
|
4244
4348
|
left 1
|
4245
4349
|
text 'URL'
|
4246
4350
|
}
|
4351
|
+
|
4352
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4353
|
+
top 15+ aa1
|
4354
|
+
left 0
|
4355
|
+
}
|
4356
|
+
|
4357
|
+
@data['포스트설정']['api_key'] = entry(){
|
4358
|
+
top 15+ aa1
|
4359
|
+
left 1
|
4360
|
+
text 'api key 입력 필수!!'
|
4361
|
+
}
|
4247
4362
|
}
|
4248
4363
|
}
|
4249
4364
|
|
@@ -4434,6 +4549,22 @@ class Wordpress
|
|
4434
4549
|
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4435
4550
|
top 6
|
4436
4551
|
left 0
|
4552
|
+
#enabled false # 기본적으로 비활성화
|
4553
|
+
on_toggled {
|
4554
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4555
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4556
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4557
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4558
|
+
|
4559
|
+
else
|
4560
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4561
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4562
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4563
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4564
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4565
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4566
|
+
end
|
4567
|
+
}
|
4437
4568
|
}
|
4438
4569
|
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4439
4570
|
top 6
|
@@ -4463,10 +4594,12 @@ class Wordpress
|
|
4463
4594
|
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4464
4595
|
top 7
|
4465
4596
|
left 0
|
4597
|
+
enabled false # 기본적으로 비활성화
|
4466
4598
|
}
|
4467
4599
|
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4468
4600
|
top 7
|
4469
4601
|
left 1
|
4602
|
+
enabled false # 기본적으로 비활성화
|
4470
4603
|
}
|
4471
4604
|
|
4472
4605
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
@@ -4491,11 +4624,19 @@ class Wordpress
|
|
4491
4624
|
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4492
4625
|
top 9
|
4493
4626
|
left 0
|
4627
|
+
enabled false # 기본적으로 비활성화
|
4628
|
+
on_toggled {
|
4629
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4630
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4631
|
+
@data['포스트설정']['내용투명'].checked = false
|
4632
|
+
end
|
4633
|
+
}
|
4494
4634
|
}
|
4495
4635
|
|
4496
4636
|
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4497
4637
|
top 9
|
4498
4638
|
left 1
|
4639
|
+
enabled false # 기본적으로 비활성화
|
4499
4640
|
}
|
4500
4641
|
|
4501
4642
|
|
@@ -4578,10 +4719,22 @@ class Wordpress
|
|
4578
4719
|
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4579
4720
|
top 15
|
4580
4721
|
left 0
|
4722
|
+
on_toggled{
|
4723
|
+
if @data['포스트설정']['테더링'].checked?
|
4724
|
+
@data['포스트설정']['프록시'].checked = false
|
4725
|
+
|
4726
|
+
end
|
4727
|
+
}
|
4581
4728
|
}
|
4582
4729
|
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4583
4730
|
top 15
|
4584
4731
|
left 1
|
4732
|
+
on_toggled{
|
4733
|
+
if @data['포스트설정']['프록시'].checked?
|
4734
|
+
@data['포스트설정']['테더링'].checked = false
|
4735
|
+
|
4736
|
+
end
|
4737
|
+
}
|
4585
4738
|
}
|
4586
4739
|
button('프록시 IP 파일 불러오기'){
|
4587
4740
|
top 15
|