cafe_basics_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_basics_duo.rb +537 -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]
|
@@ -807,11 +782,20 @@ class Naver
|
|
807
782
|
sleep(3)
|
808
783
|
@driver.action.key_down(:up).key_up(:up).perform #x탭
|
809
784
|
sleep(1)
|
785
|
+
begin
|
786
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
787
|
+
#요소가 나타날 때까지 60초 동안 기다립니다.
|
788
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]') }
|
789
|
+
sleep(1)
|
810
790
|
@driver.find_element(:xpath, '//*[@class="se-placeholder __se_placeholder se-ff-system se-fs13"]').click
|
791
|
+
sleep(1)
|
811
792
|
@driver.action.send_keys(title).perform
|
812
793
|
sleep(1)
|
813
794
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
814
795
|
sleep(1)
|
796
|
+
rescue
|
797
|
+
@driver.action.key_down(:down).key_up(:down).perform
|
798
|
+
end
|
815
799
|
|
816
800
|
elsif i2.to_s.include?('<inyonggoo')
|
817
801
|
if i2.text == ''
|
@@ -1706,107 +1690,19 @@ class Wordpress
|
|
1706
1690
|
|
1707
1691
|
|
1708
1692
|
|
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
|
1693
|
+
#def chrome_start(url, user_id, user_pw)
|
1694
|
+
# @url = url
|
1695
|
+
# @user_id = user_id
|
1696
|
+
# @user_pw = user_pw
|
1697
|
+
# begin
|
1698
|
+
# Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
1699
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1700
|
+
# rescue
|
1701
|
+
# @driver = Selenium::WebDriver.for :chrome
|
1702
|
+
# end
|
1703
|
+
#end
|
1741
1704
|
|
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
|
1705
|
+
|
1810
1706
|
|
1811
1707
|
def auto_image
|
1812
1708
|
begin
|
@@ -2035,8 +1931,7 @@ class Wordpress
|
|
2035
1931
|
@inumber2 = 0
|
2036
1932
|
@video = Array.new
|
2037
1933
|
|
2038
|
-
|
2039
|
-
|
1934
|
+
|
2040
1935
|
while true
|
2041
1936
|
for n in 0..@data['table'].length-1
|
2042
1937
|
@data['table'][n][10] = 0
|
@@ -2129,6 +2024,13 @@ class Wordpress
|
|
2129
2024
|
end
|
2130
2025
|
end
|
2131
2026
|
end
|
2027
|
+
|
2028
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2029
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2030
|
+
gpt_text1 = chat.message(title)
|
2031
|
+
title = gpt_text1.to_s
|
2032
|
+
end
|
2033
|
+
|
2132
2034
|
@data['table'][index][-1] = 5
|
2133
2035
|
@data['table'] << []
|
2134
2036
|
@data['table'].pop
|
@@ -2166,6 +2068,25 @@ class Wordpress
|
|
2166
2068
|
end
|
2167
2069
|
end
|
2168
2070
|
end
|
2071
|
+
|
2072
|
+
|
2073
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2074
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2075
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2076
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2077
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2078
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2079
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2080
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2081
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2082
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2083
|
+
|
2084
|
+
|
2085
|
+
chat = Chat_content.new(api_key)
|
2086
|
+
gpt_text3 = chat.message(content)
|
2087
|
+
content = gpt_text3.to_s
|
2088
|
+
end
|
2089
|
+
|
2169
2090
|
content_tag = content.split('@##@')[1]
|
2170
2091
|
content = content.split('@##@')[0]
|
2171
2092
|
@data['table'][index][-1] = 15
|
@@ -2364,7 +2285,7 @@ class Wordpress
|
|
2364
2285
|
@data['table'][index][-1] = 50
|
2365
2286
|
@data['table'] << []
|
2366
2287
|
@data['table'].pop
|
2367
|
-
if @data['포스트설정']['gpt'].checked?
|
2288
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2368
2289
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2369
2290
|
gpt_text = chat.message(keyword)
|
2370
2291
|
content = content + "\n(자동생성글)\n" + gpt_text
|
@@ -2385,7 +2306,7 @@ class Wordpress
|
|
2385
2306
|
joongbok_check = 0
|
2386
2307
|
counter10 = 0
|
2387
2308
|
while joongbok_check == 0
|
2388
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2309
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2389
2310
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2390
2311
|
else
|
2391
2312
|
content22 = content.split("\n")
|
@@ -2409,12 +2330,12 @@ class Wordpress
|
|
2409
2330
|
content2 = content.split("\n")
|
2410
2331
|
end
|
2411
2332
|
|
2412
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2333
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2413
2334
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2414
2335
|
position.pop
|
2415
2336
|
end
|
2416
2337
|
|
2417
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2338
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2418
2339
|
content2 = content.split("\n")
|
2419
2340
|
end
|
2420
2341
|
|
@@ -2460,7 +2381,7 @@ class Wordpress
|
|
2460
2381
|
content = content3.join("\n")
|
2461
2382
|
end
|
2462
2383
|
|
2463
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2384
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2464
2385
|
content2.each_with_index do |con, index|
|
2465
2386
|
if position.include?(index)
|
2466
2387
|
insert_keyword_text = keyword.to_s
|
@@ -2490,7 +2411,7 @@ class Wordpress
|
|
2490
2411
|
end
|
2491
2412
|
end
|
2492
2413
|
|
2493
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2414
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2494
2415
|
begin
|
2495
2416
|
content2.each_with_index do |con, index|
|
2496
2417
|
if position.include?(index)
|
@@ -2585,7 +2506,7 @@ class Wordpress
|
|
2585
2506
|
end
|
2586
2507
|
end
|
2587
2508
|
|
2588
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2509
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2589
2510
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2590
2511
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2591
2512
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2617,7 +2538,7 @@ class Wordpress
|
|
2617
2538
|
|
2618
2539
|
position = position.sort
|
2619
2540
|
##여기서부터 이미지 순서대로 안되서 변경####-------------------------------------------------------------------------------
|
2620
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2541
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2621
2542
|
# image_url22 = get_image_file().force_encoding('utf-8')
|
2622
2543
|
# end
|
2623
2544
|
|
@@ -2635,7 +2556,7 @@ class Wordpress
|
|
2635
2556
|
# end
|
2636
2557
|
# end
|
2637
2558
|
|
2638
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2559
|
+
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2639
2560
|
# content = content5.join("\n")+'(자동생성글)'+content55
|
2640
2561
|
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2641
2562
|
# content = iconv.iconv(content)
|
@@ -2655,7 +2576,7 @@ class Wordpress
|
|
2655
2576
|
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2656
2577
|
|
2657
2578
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2658
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2579
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2659
2580
|
sleep(2)
|
2660
2581
|
puts '이미지 자동 세탁 중 · · · '
|
2661
2582
|
end
|
@@ -2674,7 +2595,7 @@ class Wordpress
|
|
2674
2595
|
end
|
2675
2596
|
sleep(2)
|
2676
2597
|
puts '이미지 자동 세탁 완료 · · · '
|
2677
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2598
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2678
2599
|
content = content5.join("\n")+'(자동생성글)'+content55
|
2679
2600
|
puts content
|
2680
2601
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -2819,7 +2740,7 @@ class Wordpress
|
|
2819
2740
|
content = content
|
2820
2741
|
soosick_1 = content_end
|
2821
2742
|
else
|
2822
|
-
if @data['포스트설정']['gpt'].checked?
|
2743
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2823
2744
|
if @data['포스트설정']['gpt상단'].checked?
|
2824
2745
|
content = content_end+"\n"+content+"\n"
|
2825
2746
|
else
|
@@ -3489,7 +3410,10 @@ class Wordpress
|
|
3489
3410
|
}
|
3490
3411
|
horizontal_box{
|
3491
3412
|
stretchy false
|
3413
|
+
grid{
|
3492
3414
|
button('전체선택'){
|
3415
|
+
top 1
|
3416
|
+
left 1
|
3493
3417
|
on_clicked{
|
3494
3418
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
3495
3419
|
@data['키워드설정']['키워드'][n][0] = true
|
@@ -3498,7 +3422,20 @@ class Wordpress
|
|
3498
3422
|
end
|
3499
3423
|
}
|
3500
3424
|
}
|
3501
|
-
button('
|
3425
|
+
button('선택해제'){
|
3426
|
+
top 1
|
3427
|
+
left 2
|
3428
|
+
on_clicked{
|
3429
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3430
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3431
|
+
@data['키워드설정']['키워드'] << []
|
3432
|
+
@data['키워드설정']['키워드'].pop
|
3433
|
+
end
|
3434
|
+
}
|
3435
|
+
}
|
3436
|
+
button('삭제하기'){
|
3437
|
+
top 1
|
3438
|
+
left 3
|
3502
3439
|
on_clicked{
|
3503
3440
|
m = Array.new
|
3504
3441
|
for n in 0..@data['키워드설정']['키워드'].length-1
|
@@ -3513,6 +3450,8 @@ class Wordpress
|
|
3513
3450
|
@data['키워드설정']['키워드'].delete(nil)
|
3514
3451
|
}
|
3515
3452
|
}
|
3453
|
+
}
|
3454
|
+
|
3516
3455
|
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3517
3456
|
stretchy false
|
3518
3457
|
on_toggled{ |c|
|
@@ -3530,6 +3469,59 @@ class Wordpress
|
|
3530
3469
|
}
|
3531
3470
|
}
|
3532
3471
|
}
|
3472
|
+
vertical_separator{
|
3473
|
+
stretchy false
|
3474
|
+
}
|
3475
|
+
horizontal_box{
|
3476
|
+
stretchy false
|
3477
|
+
grid{
|
3478
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3479
|
+
top 1
|
3480
|
+
left 0
|
3481
|
+
#enabled false # 기본적으로 비활성화
|
3482
|
+
on_toggled {
|
3483
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3484
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3485
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3486
|
+
else
|
3487
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3488
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3489
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3490
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3491
|
+
end
|
3492
|
+
}
|
3493
|
+
|
3494
|
+
}
|
3495
|
+
|
3496
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3497
|
+
top 1
|
3498
|
+
left 1
|
3499
|
+
enabled false # 기본적으로 비활성화
|
3500
|
+
on_toggled{
|
3501
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3502
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3503
|
+
end
|
3504
|
+
}
|
3505
|
+
}
|
3506
|
+
|
3507
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3508
|
+
top 1
|
3509
|
+
left 2
|
3510
|
+
enabled false # 기본적으로 비활성화
|
3511
|
+
on_toggled{
|
3512
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3513
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3514
|
+
end
|
3515
|
+
}
|
3516
|
+
}
|
3517
|
+
} }
|
3518
|
+
horizontal_box{
|
3519
|
+
stretchy false
|
3520
|
+
grid{
|
3521
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3522
|
+
} } }
|
3523
|
+
|
3524
|
+
|
3533
3525
|
table{
|
3534
3526
|
checkbox_column('선택'){
|
3535
3527
|
editable true
|
@@ -3540,7 +3532,9 @@ class Wordpress
|
|
3540
3532
|
|
3541
3533
|
cell_rows @data['키워드설정']['키워드']
|
3542
3534
|
}
|
3543
|
-
|
3535
|
+
|
3536
|
+
|
3537
|
+
|
3544
3538
|
}
|
3545
3539
|
vertical_separator{
|
3546
3540
|
stretchy false
|
@@ -3569,7 +3563,10 @@ class Wordpress
|
|
3569
3563
|
}
|
3570
3564
|
horizontal_box{
|
3571
3565
|
stretchy false
|
3566
|
+
grid{
|
3572
3567
|
button('전체선택'){
|
3568
|
+
top 1
|
3569
|
+
left 1
|
3573
3570
|
on_clicked{
|
3574
3571
|
for n in 0..@data['제목설정']['제목'].length-1
|
3575
3572
|
@data['제목설정']['제목'][n][0] = true
|
@@ -3578,7 +3575,20 @@ class Wordpress
|
|
3578
3575
|
end
|
3579
3576
|
}
|
3580
3577
|
}
|
3581
|
-
button('
|
3578
|
+
button('선택해제'){
|
3579
|
+
top 1
|
3580
|
+
left 2
|
3581
|
+
on_clicked{
|
3582
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3583
|
+
@data['제목설정']['제목'][n][0] = false
|
3584
|
+
@data['제목설정']['제목'] << []
|
3585
|
+
@data['제목설정']['제목'].pop
|
3586
|
+
end
|
3587
|
+
}
|
3588
|
+
}
|
3589
|
+
button('삭제하기'){
|
3590
|
+
top 1
|
3591
|
+
left 3
|
3582
3592
|
on_clicked{
|
3583
3593
|
m = Array.new
|
3584
3594
|
for n in 0..@data['제목설정']['제목'].length-1
|
@@ -3593,6 +3603,7 @@ class Wordpress
|
|
3593
3603
|
@data['제목설정']['제목'].delete(nil)
|
3594
3604
|
}
|
3595
3605
|
}
|
3606
|
+
}
|
3596
3607
|
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3597
3608
|
stretchy false
|
3598
3609
|
on_toggled{ |c|
|
@@ -3610,6 +3621,23 @@ class Wordpress
|
|
3610
3621
|
}
|
3611
3622
|
}
|
3612
3623
|
}
|
3624
|
+
vertical_separator{
|
3625
|
+
stretchy false
|
3626
|
+
}
|
3627
|
+
horizontal_box{
|
3628
|
+
stretchy false
|
3629
|
+
grid{
|
3630
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3631
|
+
|
3632
|
+
|
3633
|
+
}}}
|
3634
|
+
horizontal_box{
|
3635
|
+
stretchy false
|
3636
|
+
grid{
|
3637
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3638
|
+
} } }
|
3639
|
+
|
3640
|
+
|
3613
3641
|
table{
|
3614
3642
|
checkbox_column('선택'){
|
3615
3643
|
editable true
|
@@ -3620,6 +3648,7 @@ class Wordpress
|
|
3620
3648
|
|
3621
3649
|
cell_rows @data['제목설정']['제목']
|
3622
3650
|
}
|
3651
|
+
|
3623
3652
|
|
3624
3653
|
}
|
3625
3654
|
vertical_separator{
|
@@ -3647,7 +3676,10 @@ class Wordpress
|
|
3647
3676
|
}
|
3648
3677
|
horizontal_box{
|
3649
3678
|
stretchy false
|
3679
|
+
grid{
|
3650
3680
|
button('전체선택'){
|
3681
|
+
top 1
|
3682
|
+
left 1
|
3651
3683
|
on_clicked{
|
3652
3684
|
for n in 0..@data['내용설정']['내용'].length-1
|
3653
3685
|
@data['내용설정']['내용'][n][0] = true
|
@@ -3656,7 +3688,20 @@ class Wordpress
|
|
3656
3688
|
end
|
3657
3689
|
}
|
3658
3690
|
}
|
3659
|
-
button('
|
3691
|
+
button('선택해제'){
|
3692
|
+
top 1
|
3693
|
+
left 2
|
3694
|
+
on_clicked{
|
3695
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3696
|
+
@data['내용설정']['내용'][n][0] = false
|
3697
|
+
@data['내용설정']['내용'] << []
|
3698
|
+
@data['내용설정']['내용'].pop
|
3699
|
+
end
|
3700
|
+
}
|
3701
|
+
}
|
3702
|
+
button('삭제하기'){
|
3703
|
+
top 1
|
3704
|
+
left 3
|
3660
3705
|
on_clicked{
|
3661
3706
|
m = Array.new
|
3662
3707
|
for n in 0..@data['내용설정']['내용'].length-1
|
@@ -3671,6 +3716,7 @@ class Wordpress
|
|
3671
3716
|
@data['내용설정']['내용'].delete(nil)
|
3672
3717
|
}
|
3673
3718
|
}
|
3719
|
+
}
|
3674
3720
|
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
3675
3721
|
stretchy false
|
3676
3722
|
on_toggled{ |c|
|
@@ -3688,6 +3734,22 @@ class Wordpress
|
|
3688
3734
|
}
|
3689
3735
|
}
|
3690
3736
|
}
|
3737
|
+
vertical_separator{
|
3738
|
+
stretchy false
|
3739
|
+
}
|
3740
|
+
horizontal_box{
|
3741
|
+
stretchy false
|
3742
|
+
grid{
|
3743
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
3744
|
+
|
3745
|
+
|
3746
|
+
}}}
|
3747
|
+
horizontal_box{
|
3748
|
+
stretchy false
|
3749
|
+
grid{
|
3750
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3751
|
+
} } }
|
3752
|
+
|
3691
3753
|
table{
|
3692
3754
|
checkbox_column('선택'){
|
3693
3755
|
editable true
|
@@ -3705,8 +3767,8 @@ class Wordpress
|
|
3705
3767
|
stretchy false
|
3706
3768
|
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3707
3769
|
}
|
3708
|
-
button('
|
3709
|
-
|
3770
|
+
button('폴더째로 불러오기'){
|
3771
|
+
|
3710
3772
|
on_clicked{
|
3711
3773
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3712
3774
|
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -3804,7 +3866,7 @@ class Wordpress
|
|
3804
3866
|
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
3805
3867
|
}
|
3806
3868
|
button('폴더째로불러오기'){
|
3807
|
-
|
3869
|
+
|
3808
3870
|
on_clicked{
|
3809
3871
|
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3810
3872
|
Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
|
@@ -4057,6 +4119,18 @@ class Wordpress
|
|
4057
4119
|
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4058
4120
|
top 2
|
4059
4121
|
left 0
|
4122
|
+
#enabled false # 기본적으로 비활성화
|
4123
|
+
on_toggled {
|
4124
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4125
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4126
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4127
|
+
else
|
4128
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4129
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4130
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4131
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4132
|
+
end
|
4133
|
+
}
|
4060
4134
|
}
|
4061
4135
|
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4062
4136
|
top 2
|
@@ -4079,6 +4153,7 @@ class Wordpress
|
|
4079
4153
|
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4080
4154
|
top 3
|
4081
4155
|
left 3
|
4156
|
+
enabled false # 기본적으로 비활성화
|
4082
4157
|
on_toggled{
|
4083
4158
|
if @data['포스트설정']['제목앞'].checked? == true
|
4084
4159
|
if @data['포스트설정']['제목뒤'].checked?
|
@@ -4094,6 +4169,7 @@ class Wordpress
|
|
4094
4169
|
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4095
4170
|
top 4
|
4096
4171
|
left 3
|
4172
|
+
enabled false # 기본적으로 비활성화
|
4097
4173
|
on_toggled{
|
4098
4174
|
if @data['포스트설정']['제목뒤'].checked? == true
|
4099
4175
|
if @data['포스트설정']['제목앞'].checked?
|
@@ -4102,26 +4178,51 @@ class Wordpress
|
|
4102
4178
|
end
|
4103
4179
|
}
|
4104
4180
|
}
|
4105
|
-
@data['포스트설정']['
|
4181
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4106
4182
|
top 4
|
4107
4183
|
left 0
|
4108
4184
|
}
|
4109
|
-
|
4110
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4185
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4111
4186
|
top 5
|
4112
4187
|
left 0
|
4188
|
+
on_toggled{
|
4189
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4190
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4191
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4192
|
+
end
|
4193
|
+
end
|
4194
|
+
}
|
4113
4195
|
}
|
4114
|
-
@data['포스트설정']['
|
4196
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4115
4197
|
top 6
|
4116
4198
|
left 0
|
4199
|
+
on_toggled{
|
4200
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4201
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4202
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4203
|
+
end
|
4204
|
+
end
|
4205
|
+
}
|
4117
4206
|
}
|
4118
4207
|
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4119
4208
|
top 7
|
4120
4209
|
left 0
|
4210
|
+
on_toggled {
|
4211
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4212
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4213
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4214
|
+
else
|
4215
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4216
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4217
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4218
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4219
|
+
end
|
4220
|
+
}
|
4121
4221
|
}
|
4122
4222
|
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4123
4223
|
top 7
|
4124
4224
|
left 1
|
4225
|
+
|
4125
4226
|
text '최소수량'
|
4126
4227
|
}
|
4127
4228
|
label('~'){
|
@@ -4134,63 +4235,61 @@ class Wordpress
|
|
4134
4235
|
text '최대수량'
|
4135
4236
|
}
|
4136
4237
|
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4238
|
+
enabled false # 기본적으로 비활성화
|
4137
4239
|
top 8
|
4138
4240
|
left 0
|
4139
4241
|
}
|
4140
4242
|
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4243
|
+
enabled false # 기본적으로 비활성화
|
4141
4244
|
top 8
|
4142
4245
|
left 1
|
4143
4246
|
text 'URL'
|
4144
4247
|
}
|
4145
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('
|
4248
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4146
4249
|
top 9
|
4147
4250
|
left 0
|
4148
4251
|
on_toggled{
|
4149
4252
|
if @data['포스트설정']['내용을자동생성'].checked?
|
4150
|
-
|
4151
|
-
|
4152
|
-
|
4253
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4254
|
+
@data['포스트설정']['내용투명'].checked = false
|
4255
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4256
|
+
|
4153
4257
|
end
|
4154
4258
|
}
|
4155
4259
|
}
|
4156
4260
|
|
4157
|
-
@data['포스트설정']['gpt'] = checkbox('내용을 키워드 기반의 GPT로 생성해서 포스팅'){
|
4158
|
-
top 10
|
4159
|
-
left 0
|
4160
|
-
}
|
4161
4261
|
|
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
|
-
}
|
4262
|
+
|
4177
4263
|
|
4178
4264
|
aa1 = 2
|
4179
|
-
@data['포스트설정']['내용과자동생성'] = checkbox('
|
4265
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4180
4266
|
top 10 + aa1
|
4181
4267
|
left 0
|
4182
|
-
on_toggled{
|
4183
|
-
|
4184
|
-
|
4185
|
-
|
4186
|
-
|
4187
|
-
|
4268
|
+
on_toggled {
|
4269
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4270
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4271
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4272
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4273
|
+
else
|
4274
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4275
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4276
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4277
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4278
|
+
end
|
4188
4279
|
}
|
4189
|
-
|
4190
|
-
|
4191
|
-
|
4280
|
+
}
|
4281
|
+
|
4282
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4283
|
+
top 11 + aa1
|
4192
4284
|
left 0
|
4193
|
-
|
4285
|
+
enabled false # 기본적으로 비활성화
|
4286
|
+
on_toggled {
|
4287
|
+
if @data['포스트설정']['내용투명'].checked?
|
4288
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4289
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4290
|
+
end
|
4291
|
+
}
|
4292
|
+
}
|
4194
4293
|
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4195
4294
|
top 12+ aa1
|
4196
4295
|
left 0
|
@@ -4218,6 +4317,18 @@ class Wordpress
|
|
4218
4317
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4219
4318
|
top 13+ aa1
|
4220
4319
|
left 0
|
4320
|
+
#enabled false # 기본적으로 비활성화
|
4321
|
+
on_toggled {
|
4322
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4323
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4324
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4325
|
+
else
|
4326
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4327
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4328
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4329
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4330
|
+
end
|
4331
|
+
}
|
4221
4332
|
}
|
4222
4333
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4223
4334
|
top 13+ aa1
|
@@ -4235,15 +4346,28 @@ class Wordpress
|
|
4235
4346
|
}
|
4236
4347
|
|
4237
4348
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4349
|
+
enabled false # 기본적으로 비활성화
|
4238
4350
|
top 14+ aa1
|
4239
4351
|
left 0
|
4240
4352
|
}
|
4241
4353
|
|
4242
4354
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
4355
|
+
enabled false # 기본적으로 비활성화
|
4243
4356
|
top 14+ aa1
|
4244
4357
|
left 1
|
4245
4358
|
text 'URL'
|
4246
4359
|
}
|
4360
|
+
|
4361
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4362
|
+
top 15+ aa1
|
4363
|
+
left 0
|
4364
|
+
}
|
4365
|
+
|
4366
|
+
@data['포스트설정']['api_key'] = entry(){
|
4367
|
+
top 15+ aa1
|
4368
|
+
left 1
|
4369
|
+
text 'api key 입력 필수!!'
|
4370
|
+
}
|
4247
4371
|
}
|
4248
4372
|
}
|
4249
4373
|
|
@@ -4434,6 +4558,22 @@ class Wordpress
|
|
4434
4558
|
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4435
4559
|
top 6
|
4436
4560
|
left 0
|
4561
|
+
#enabled false # 기본적으로 비활성화
|
4562
|
+
on_toggled {
|
4563
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4564
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4565
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4566
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4567
|
+
|
4568
|
+
else
|
4569
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4570
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4571
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4572
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4573
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4574
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4575
|
+
end
|
4576
|
+
}
|
4437
4577
|
}
|
4438
4578
|
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4439
4579
|
top 6
|
@@ -4463,10 +4603,12 @@ class Wordpress
|
|
4463
4603
|
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4464
4604
|
top 7
|
4465
4605
|
left 0
|
4606
|
+
enabled false # 기본적으로 비활성화
|
4466
4607
|
}
|
4467
4608
|
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4468
4609
|
top 7
|
4469
4610
|
left 1
|
4611
|
+
enabled false # 기본적으로 비활성화
|
4470
4612
|
}
|
4471
4613
|
|
4472
4614
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
@@ -4491,11 +4633,19 @@ class Wordpress
|
|
4491
4633
|
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4492
4634
|
top 9
|
4493
4635
|
left 0
|
4636
|
+
enabled false # 기본적으로 비활성화
|
4637
|
+
on_toggled {
|
4638
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4639
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4640
|
+
@data['포스트설정']['내용투명'].checked = false
|
4641
|
+
end
|
4642
|
+
}
|
4494
4643
|
}
|
4495
4644
|
|
4496
4645
|
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4497
4646
|
top 9
|
4498
4647
|
left 1
|
4648
|
+
enabled false # 기본적으로 비활성화
|
4499
4649
|
}
|
4500
4650
|
|
4501
4651
|
|
@@ -4578,10 +4728,22 @@ class Wordpress
|
|
4578
4728
|
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4579
4729
|
top 15
|
4580
4730
|
left 0
|
4731
|
+
on_toggled{
|
4732
|
+
if @data['포스트설정']['테더링'].checked?
|
4733
|
+
@data['포스트설정']['프록시'].checked = false
|
4734
|
+
|
4735
|
+
end
|
4736
|
+
}
|
4581
4737
|
}
|
4582
4738
|
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4583
4739
|
top 15
|
4584
4740
|
left 1
|
4741
|
+
on_toggled{
|
4742
|
+
if @data['포스트설정']['프록시'].checked?
|
4743
|
+
@data['포스트설정']['테더링'].checked = false
|
4744
|
+
|
4745
|
+
end
|
4746
|
+
}
|
4585
4747
|
}
|
4586
4748
|
button('프록시 IP 파일 불러오기'){
|
4587
4749
|
top 15
|