nblog_duo 0.0.6 → 0.0.10
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/nblog_duo.rb +1757 -1569
- metadata +2 -2
data/lib/nblog_duo.rb
CHANGED
@@ -16,7 +16,10 @@ require 'uri'
|
|
16
16
|
require 'cgi'
|
17
17
|
require 'digest'
|
18
18
|
require 'auto_click'
|
19
|
+
require 'rainbow/refinement'
|
19
20
|
include AutoClickMethods
|
21
|
+
using Rainbow
|
22
|
+
include Glimmer
|
20
23
|
|
21
24
|
class Chat
|
22
25
|
def initialize(api_key)
|
@@ -30,10 +33,11 @@ class Chat
|
|
30
33
|
'Authorization' => 'Bearer ' + @api_key
|
31
34
|
}
|
32
35
|
d = {
|
33
|
-
'model' => 'gpt-3.5-turbo',
|
36
|
+
#'model' => 'gpt-3.5-turbo',
|
37
|
+
'model' => 'gpt-4',
|
34
38
|
'messages' => [{
|
35
39
|
"role" => "assistant",
|
36
|
-
"content" => keyword.to_s+" 소개하는 글을
|
40
|
+
"content" => keyword.to_s+" 소개하는 글을 1500자에서 2500자 사이로 만들어줘"
|
37
41
|
}]
|
38
42
|
}
|
39
43
|
answer = ''
|
@@ -64,10 +68,11 @@ class Chat
|
|
64
68
|
'Authorization' => 'Bearer ' + @api_key
|
65
69
|
}
|
66
70
|
d = {
|
67
|
-
'model' => 'gpt-3.5-turbo',
|
71
|
+
#'model' => 'gpt-3.5-turbo',
|
72
|
+
'model' => 'gpt-4',
|
68
73
|
'messages' => [{
|
69
74
|
"role" => "assistant",
|
70
|
-
"content" => keyword.to_s+" 관련된 글을
|
75
|
+
"content" => keyword.to_s+" 관련된 글을 1500자에서 2500자 사이로 만들어줘"
|
71
76
|
}]
|
72
77
|
}
|
73
78
|
answer = ''
|
@@ -98,26 +103,134 @@ class Chat
|
|
98
103
|
end
|
99
104
|
end
|
100
105
|
|
106
|
+
class Chat_title
|
107
|
+
def initialize(api_key)
|
108
|
+
@api_key = api_key
|
109
|
+
end
|
110
|
+
|
111
|
+
def message(title)
|
112
|
+
url = 'https://api.openai.com/v1/chat/completions'
|
113
|
+
headers = {
|
114
|
+
'Content-Type' => 'application/json',
|
115
|
+
'Authorization' => 'Bearer ' + @api_key
|
116
|
+
}
|
117
|
+
data = {
|
118
|
+
'model' => 'gpt-4',
|
119
|
+
'messages' => [{
|
120
|
+
"role" => "system",
|
121
|
+
"content" => "너는 매우 친절하고 성의 있게 답변하는 AI 어시스턴트야."
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"role" => "user",
|
125
|
+
"content" => "#{title}\n위 문장을 비슷한 길이로 ChatGPT의 멘트는 빼고 표현을 더 추가해서 하나만 만들어줘."
|
126
|
+
}]
|
127
|
+
}
|
128
|
+
|
129
|
+
begin
|
130
|
+
req = HTTP.headers(headers).post(url, json: data)
|
131
|
+
puts "HTTP Status: #{req.status}" # 상태 코드 확인
|
132
|
+
response = JSON.parse(req.body.to_s)
|
133
|
+
puts "API Response: #{response}" # 전체 응답 출력
|
134
|
+
|
135
|
+
if req.status == 429
|
136
|
+
return "API 요청 제한을 초과했습니다. 플랜 및 할당량을 확인하세요."
|
137
|
+
end
|
138
|
+
|
139
|
+
# 응답 데이터에서 안전하게 값 추출
|
140
|
+
answer = response.dig('choices', 0, 'message', 'content')
|
141
|
+
answer ||= (title) # 응답이 없을 경우 기본 메시지 설정
|
142
|
+
rescue => e
|
143
|
+
puts "Error: #{e.message}"
|
144
|
+
answer = "오류가 발생했습니다."
|
145
|
+
end
|
146
|
+
|
147
|
+
puts 'API return ==> '
|
148
|
+
puts answer
|
149
|
+
answer
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
class Chat_content
|
154
|
+
def initialize(api_key)
|
155
|
+
@api_key = api_key
|
156
|
+
end
|
157
|
+
|
158
|
+
def message(content)
|
159
|
+
|
160
|
+
url = 'https://api.openai.com/v1/chat/completions'
|
161
|
+
headers = {
|
162
|
+
'Content-Type' => 'application/json',
|
163
|
+
'Authorization' => 'Bearer ' + @api_key
|
164
|
+
}
|
165
|
+
data = {
|
166
|
+
'model' => 'gpt-4',
|
167
|
+
'messages' => [{
|
168
|
+
"role" => "system",
|
169
|
+
"content" => "너는 매우 친절하고 성의 있게 답변하는 AI 어시스턴트야."
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"role" => "user",
|
173
|
+
"content" => "#{content}\nChatGPT의 멘트는 빼고 위 전체적인 내용의 형식을 똑같이 표현을 더 추가하고 유사어로 변경하여 하나 만들어줘! 전화번호,연락처,가격,홈페이지안내 ,상담안내 관련 문구는 유지해야해"
|
174
|
+
}]
|
175
|
+
}
|
176
|
+
|
177
|
+
begin
|
178
|
+
req = HTTP.headers(headers).post(url, json: data)
|
179
|
+
puts "HTTP Status: #{req.status}" # 상태 코드 확인
|
180
|
+
response = JSON.parse(req.body.to_s)
|
181
|
+
puts "API Response: #{response}" # 전체 응답 출력
|
182
|
+
|
183
|
+
if req.status == 429
|
184
|
+
return "API 요청 제한을 초과했습니다. 플랜 및 할당량을 확인하세요."
|
185
|
+
end
|
186
|
+
|
187
|
+
# 응답 데이터에서 안전하게 값 추출
|
188
|
+
answer = response.dig('choices', 0, 'message', 'content')
|
189
|
+
answer ||= (content) # 응답이 없을 경우 기본 메시지 설정
|
190
|
+
rescue => e
|
191
|
+
puts "Error: #{e.message}"
|
192
|
+
answer = "오류가 발생했습니다."
|
193
|
+
end
|
194
|
+
|
195
|
+
puts 'API return ==> '
|
196
|
+
puts answer
|
197
|
+
answer
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
#############################################gpt############################################
|
203
|
+
|
101
204
|
class Naver
|
102
205
|
def initialize
|
103
206
|
@seed = 1
|
104
|
-
@cookie = ''
|
105
207
|
end
|
208
|
+
def chrome_setup(user_id)
|
209
|
+
naver_cookie_dir = "C:/naver_cookie"
|
210
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
211
|
+
system(%{"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" https://naver.com/ --remote-debugging-port=9222 --user-data-dir=C:/naver_cookie/#{user_id}})
|
106
212
|
|
107
|
-
|
213
|
+
end
|
214
|
+
def chrome_start(proxy, user_id)
|
215
|
+
naver_cookie_dir = "C:/naver_cookie"
|
216
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
108
217
|
if proxy == ''
|
109
218
|
begin
|
110
219
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
111
220
|
options = Selenium::WebDriver::Chrome::Options.new
|
112
|
-
options.
|
113
|
-
|
114
|
-
|
221
|
+
options.page_load_strategy = :normal
|
222
|
+
options.timeouts = {page_load: 20_000}
|
223
|
+
options.page_load_strategy = 'none'
|
224
|
+
options.add_argument('--remote-debugging-port=9222')
|
225
|
+
options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
|
226
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
115
227
|
rescue
|
116
|
-
@driver = Selenium::WebDriver.for :
|
228
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
117
229
|
end
|
118
230
|
else
|
119
231
|
begin
|
120
232
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
233
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
121
234
|
# profile = Selenium::WebDriver::Chrome::Profile.new
|
122
235
|
# profile['network.proxy.type'] = 1
|
123
236
|
# profile['network.proxy.http'] = proxy.split(':')[0]
|
@@ -125,213 +238,113 @@ class Naver
|
|
125
238
|
# options = Selenium::WebDriver::Chrome::Options.new
|
126
239
|
# options.profile = profile
|
127
240
|
options = Selenium::WebDriver::Chrome::Options.new
|
128
|
-
options.add_argument('--start-maximized')
|
129
241
|
options.add_argument '--proxy-server='+proxy.to_s.force_encoding('utf-8').to_s
|
130
|
-
|
242
|
+
options.page_load_strategy = :normal
|
243
|
+
options.timeouts = {page_load: 20_000}
|
244
|
+
options.page_load_strategy = 'none'
|
245
|
+
options.add_argument('--remote-debugging-port=9222')
|
246
|
+
options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
|
247
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
131
248
|
rescue => e
|
132
249
|
puts e
|
133
250
|
puts 'proxy error...'
|
134
251
|
begin
|
135
252
|
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
136
253
|
options = Selenium::WebDriver::Chrome::Options.new
|
137
|
-
options.
|
138
|
-
|
254
|
+
options.page_load_strategy = :normal
|
255
|
+
options.timeouts = {page_load: 20_000}
|
256
|
+
options.page_load_strategy = 'none'
|
257
|
+
options.add_argument('--remote-debugging-port=9222')
|
258
|
+
options.add_argument('user-data-dir=C:/naver_cookie/' + user_id)
|
259
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
139
260
|
rescue
|
140
|
-
@driver = Selenium::WebDriver.for :
|
261
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: options)
|
141
262
|
end
|
142
263
|
end
|
143
264
|
end
|
144
265
|
end
|
145
266
|
|
267
|
+
|
268
|
+
|
146
269
|
def login(user_id, user_pw, proxy)
|
147
270
|
@user_id = user_id
|
148
271
|
@user_id11 = user_id
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
user_cookie_file = Array.new
|
153
|
-
begin
|
154
|
-
Dir.entries('./cookie').each do |i|
|
155
|
-
if i == '.' or i == '..'
|
272
|
+
current_dir = File.dirname(__FILE__)
|
273
|
+
naver_cookie_dir = "C:/naver_cookie"
|
274
|
+
FileUtils.mkdir_p(naver_cookie_dir) unless File.exist?(naver_cookie_dir)
|
156
275
|
|
157
|
-
|
158
|
-
|
159
|
-
|
276
|
+
|
277
|
+
|
278
|
+
unless File.exist?("C:/naver_cookie/" + user_id)
|
279
|
+
driverfile_src = File.join(current_dir, 'driverfile')
|
280
|
+
if Dir.exist?(driverfile_src)
|
281
|
+
FileUtils.cp_r(driverfile_src, "C:/naver_cookie/" + user_id)
|
282
|
+
|
160
283
|
end
|
161
|
-
|
284
|
+
end
|
162
285
|
|
163
|
-
|
286
|
+
# 새로운 스레드 생성 및 실행
|
287
|
+
Thread.new { chrome_setup(user_id) }
|
288
|
+
sleep(3)
|
164
289
|
|
165
|
-
@cookie4 = Hash.new
|
166
|
-
if user_cookie_file.include?(user_id+'.txt')
|
167
|
-
f = File.open('./cookie/'+user_id+'.txt', 'r')
|
168
|
-
@cookie4 = JSON.parse(f.read())
|
169
|
-
f.close
|
170
|
-
end
|
171
290
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
end
|
177
|
-
rescue
|
291
|
+
chrome_start(proxy, user_id)
|
292
|
+
@driver.get('https://www.naver.com')
|
293
|
+
puts'[Step.01] 계정 로그인 및 세션 확인.......'.yellow
|
294
|
+
|
178
295
|
|
179
|
-
end
|
180
296
|
sleep(1)
|
181
|
-
|
297
|
+
|
182
298
|
begin
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
@driver.find_element(:xpath, '//*[@id="account"]/div/a').click
|
299
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
300
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
301
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]') }
|
302
|
+
sleep(1.5)
|
303
|
+
@driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]').click
|
189
304
|
check_cookie_login = 0
|
305
|
+
sleep(1)
|
190
306
|
rescue
|
191
307
|
check_cookie_login = 1
|
308
|
+
puts'[Step.02] 계정 세션 확인!! 로그인 skip.......'.yellow
|
309
|
+
sleep(2.5)
|
192
310
|
end
|
193
311
|
|
194
312
|
if check_cookie_login == 0
|
313
|
+
puts'[Step.02] 계정 세션이 없거나 기간 만료로 인해 로그인 시도.......'.yellow
|
195
314
|
# @driver.find_element(:xpath, '//*[@id="right-content-area"]/div[1]/div[1]/div/a').click
|
196
|
-
|
197
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
198
|
-
#요소가 나타날 때까지
|
199
|
-
wait.until { @driver.find_element(:xpath, '//*[@
|
200
|
-
|
201
|
-
|
315
|
+
sleep(3)
|
316
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
317
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
318
|
+
wait.until { @driver.find_element(:xpath, '//*[@for="switch"]') }
|
319
|
+
sleep(1.5)
|
320
|
+
@driver.find_element(:xpath, '//*[@id="login_keep_wrap"]/div[1]/label').click
|
321
|
+
sleep(1.5)
|
202
322
|
@driver.find_element(:xpath, '//*[@id="id"]').click
|
203
323
|
Clipboard.copy(user_id)
|
204
324
|
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
205
|
-
sleep(
|
325
|
+
sleep(1.5)
|
206
326
|
@driver.find_element(:xpath, '//*[@id="pw"]').click
|
207
327
|
Clipboard.copy(user_pw)
|
208
328
|
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
209
|
-
sleep(
|
210
|
-
@driver.find_element(:xpath, '//*[@class="switch_btn"]').click
|
211
|
-
sleep(3)
|
329
|
+
sleep(1.5)
|
212
330
|
@driver.find_element(:xpath, '//*[@id="log.login"]').click
|
213
|
-
sleep(
|
331
|
+
sleep(2.5)
|
214
332
|
|
215
|
-
|
216
333
|
else
|
217
334
|
# @driver.switch_to.default_content
|
218
335
|
end
|
219
336
|
|
220
|
-
@cookie = ''
|
221
|
-
cookie2 = Array.new
|
222
|
-
@driver.manage.all_cookies.each do |i|
|
223
|
-
puts i
|
224
|
-
@cookie += i[:name]+'='+i[:value]+'; '
|
225
|
-
cookie2 << i
|
226
|
-
end
|
227
|
-
|
228
|
-
File.open('./cookie/'+user_id+'.txt', 'w') do |ff|
|
229
|
-
ff.write(cookie2.to_json)
|
230
|
-
end
|
231
|
-
|
232
|
-
sleep(2)
|
233
337
|
begin
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
@driver.find_element(:xpath, '//*[@role="region"]')
|
239
|
-
sleep(2)
|
338
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
339
|
+
#요소가 나타날 때까지 3초 동안 기다립니다.
|
340
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__btn_logout___bsTOJ"]') }
|
341
|
+
|
240
342
|
rescue => e
|
241
|
-
puts '로그인
|
242
|
-
puts '로그인 실패 이유로 다음 계정을 사용합니다.'
|
343
|
+
puts '-[√] 로그인 실패!!.......'.red
|
243
344
|
puts e
|
244
345
|
@driver.close
|
245
|
-
return 0
|
246
|
-
end
|
247
|
-
=begin
|
248
|
-
|
249
|
-
sleep(2)
|
250
|
-
if @driver.current_url.include?('viewPhoneInfo')
|
251
|
-
#@driver.get('https://blog.naver.com/'+user_id)
|
252
|
-
sleep(2)
|
253
|
-
@driver.get('https://blog.naver.com/')
|
254
|
-
|
255
|
-
sleep(1)
|
256
|
-
# 타임아웃을 10초로 설정
|
257
|
-
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
258
|
-
#요소가 나타날 때까지 10초 동안 기다립니다.
|
259
|
-
wait.until { @driver.find_element(:xpath, '//*[@alt="로그아웃"]') }
|
260
|
-
@driver.find_element(:xpath, '//*[@alt="로그아웃"]')
|
261
|
-
sleep(2)
|
262
|
-
|
263
|
-
@driver.find_element(:xpath, '//*[@alt="내 블로그"]').click
|
264
|
-
sleep(1)
|
265
|
-
#@driver.find_element(:xpath, '//*[@id="account"]/div[3]/div[2]/div[1]/a[2]').click
|
266
|
-
sleep(1)
|
267
|
-
@driver.switch_to.window(@driver.window_handles[1])
|
268
|
-
@user_id = @driver.current_url.split('/')[-1]
|
269
|
-
@url = 'https://blog.naver.com/'+@user_id
|
270
|
-
@driver.close
|
271
|
-
@driver.switch_to.window(@driver.window_handles[0])
|
272
|
-
return 1
|
273
|
-
else
|
274
|
-
begin
|
275
|
-
sleep(2)
|
276
|
-
# @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="my-iframe"]'))
|
277
|
-
# puts @driver.find_element(:xpath, '/html/body/div/div/div[1]/div[1]/a[1]').text
|
278
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a/span').click
|
279
|
-
# sleep(1)
|
280
|
-
# @driver.find_element(:xpath, '//*[@id="account"]/div[2]/div/div/ul/li[3]/a/span')
|
281
|
-
#@driver.get('https://blog.naver.com/'+user_id)
|
282
|
-
|
283
|
-
@driver.get('https://blog.naver.com/')
|
284
|
-
|
285
|
-
sleep(1)
|
286
|
-
# 타임아웃을 10초로 설정
|
287
|
-
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
|
288
|
-
#요소가 나타날 때까지 10초 동안 기다립니다.
|
289
|
-
wait.until { @driver.find_element(:xpath, '//*[@alt="로그아웃"]') }
|
290
|
-
@driver.find_element(:xpath, '//*[@alt="로그아웃"]')
|
291
|
-
sleep(2)
|
292
|
-
|
293
|
-
|
294
|
-
sleep(3)
|
295
|
-
@driver.find_element(:xpath, '//*[@alt="내 블로그"]').click
|
296
|
-
sleep(1)
|
297
|
-
#@driver.find_element(:xpath, '//*[@id="account"]/div[3]/div[2]/div[1]/a[2]').click
|
298
|
-
#sleep(1)
|
299
|
-
sleep(1)
|
300
|
-
@driver.switch_to.window(@driver.window_handles[1])
|
301
|
-
@user_id = @driver.current_url.split('/')[-1]
|
302
|
-
@url = 'https://blog.naver.com/'+@user_id
|
303
|
-
@driver.close
|
304
|
-
@driver.switch_to.window(@driver.window_handles[0])
|
305
|
-
return 1
|
306
|
-
rescue => e
|
307
|
-
puts e
|
308
|
-
@driver.close
|
309
|
-
return 0
|
310
|
-
end
|
346
|
+
return 0
|
311
347
|
end
|
312
|
-
=end
|
313
|
-
end
|
314
|
-
|
315
|
-
|
316
|
-
def title_action(text)
|
317
|
-
#제목
|
318
|
-
@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
|
319
|
-
Clipboard.copy(text)
|
320
|
-
@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
321
|
-
end
|
322
|
-
|
323
|
-
def update_test
|
324
|
-
#@driver.get('https://blog.naver.com/'+@user_id+'?Redirect=Write')
|
325
|
-
@driver.get('https://blog.naver.com/GoBlogWrite.naver')
|
326
|
-
sleep(1)
|
327
|
-
wait = Selenium::WebDriver::Wait.new(:timeout => 60)
|
328
|
-
#요소가 나타날 때까지 30초 동안 기다립니다.
|
329
|
-
wait.until { @driver.find_element(:xpath, '//*[@id="mainFrame"]') }
|
330
|
-
sleep(1)
|
331
|
-
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]'))
|
332
|
-
|
333
|
-
title_action('제목 test')
|
334
|
-
|
335
348
|
end
|
336
349
|
|
337
350
|
def create_id
|
@@ -521,6 +534,7 @@ class Naver
|
|
521
534
|
puts myJSON
|
522
535
|
return myJSON
|
523
536
|
end
|
537
|
+
|
524
538
|
|
525
539
|
def update(title, content, option, soosick_1, soosick_2, dd_time)
|
526
540
|
#@driver.get(@url+'?Redirect=Write')
|
@@ -535,7 +549,7 @@ class Naver
|
|
535
549
|
sleep(1)
|
536
550
|
@driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="mainFrame"]'))
|
537
551
|
|
538
|
-
sleep(
|
552
|
+
sleep(1)
|
539
553
|
page_data = @driver.page_source
|
540
554
|
loading_counter = 1
|
541
555
|
begin
|
@@ -554,7 +568,7 @@ class Naver
|
|
554
568
|
begin
|
555
569
|
sleep(1)
|
556
570
|
puts '[작성 중인 글이 있습니다] 팝업 체크 중 (약 10초 소요)...'
|
557
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
571
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 9)
|
558
572
|
#요소가 나타날 때까지 60초 동안 기다립니다.
|
559
573
|
wait.until { @driver.find_element(:xpath, '//*[@class="se-popup-button se-popup-button-cancel"]') }
|
560
574
|
sleep(1)
|
@@ -567,8 +581,8 @@ class Naver
|
|
567
581
|
end
|
568
582
|
|
569
583
|
begin
|
570
|
-
puts '[도움말] 팝업 체크 중 (약
|
571
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
584
|
+
puts '[도움말] 팝업 체크 중 (약 3초 소요)...'
|
585
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
572
586
|
#요소가 나타날 때까지 60초 동안 기다립니다.
|
573
587
|
wait.until { @driver.find_element(:xpath, '//*[@class="se-help-panel-close-button"]') }
|
574
588
|
sleep(1)
|
@@ -580,79 +594,70 @@ class Naver
|
|
580
594
|
puts '[도움말] 팝업 팝업을 발견하지못했습니다! 다음으로 진행합니다...'
|
581
595
|
end
|
582
596
|
|
583
|
-
|
597
|
+
|
598
|
+
template = option['template']
|
599
|
+
begin
|
600
|
+
|
601
|
+
if template.to_s == ''
|
602
|
+
|
603
|
+
else
|
604
|
+
@driver.find_element(:xpath, '//*[@data-name="template"]').click
|
605
|
+
sleep(1.5)
|
606
|
+
|
607
|
+
@driver.find_element(:xpath, '//*[@data-log="ltpl.my"]').click
|
608
|
+
sleep(1)
|
609
|
+
begin
|
610
|
+
@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/div[1]/aside/div/div[3]/div[1]/div[2]/ul/li['+template.to_s+']/a').click
|
611
|
+
puts '탬플릿 ['+template.to_s+'] 번을 사용합니다'
|
612
|
+
rescue
|
613
|
+
@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/div[1]/aside/div/div[3]/div[1]/div[2]/ul/li/a').click
|
614
|
+
puts '탬플릿 ['+template.to_s+'] 번을 찾지못해 첫번째 탬플릿을 사용합니다.'
|
615
|
+
sleep(1)
|
616
|
+
end
|
617
|
+
@driver.switch_to.alert.accept
|
618
|
+
sleep(5)
|
619
|
+
@driver.find_element(:xpath, '//*[@data-name="template"]').click
|
620
|
+
sleep(1)
|
621
|
+
|
622
|
+
|
623
|
+
|
624
|
+
end
|
625
|
+
rescue
|
626
|
+
|
627
|
+
end
|
628
|
+
|
629
|
+
|
630
|
+
#제목 입력
|
631
|
+
ele = @driver.find_element(:xpath, '//*[@draggable="false"]')
|
584
632
|
@driver.action.click(ele).perform
|
585
|
-
sleep(
|
633
|
+
sleep(1)
|
634
|
+
@driver.action.key_down(:control).key_down('a').key_up('a').key_up(:control).perform
|
635
|
+
sleep(1)
|
636
|
+
@driver.action.key_down(:delete).key_up(:delete).perform
|
637
|
+
sleep(1)
|
586
638
|
title = title.strip
|
587
639
|
@driver.action.send_keys(title).perform
|
588
|
-
sleep(
|
640
|
+
sleep(1)
|
589
641
|
@driver.action.key_down(:enter).key_up(:enter).perform
|
590
|
-
sleep(
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
# category_value = category[option['category'].force_encoding('utf-8').to_s].to_s
|
601
|
-
# end
|
602
|
-
# if category_value == ''
|
603
|
-
# category_value = category[category.keys[0]].to_s
|
604
|
-
# end
|
642
|
+
sleep(1)
|
643
|
+
@driver.action.key_down(:control).key_down('a').key_up('a').key_up(:control).perform
|
644
|
+
sleep(1)
|
645
|
+
@driver.action.key_down(:down).key_up(:down).perform
|
646
|
+
@driver.action.key_down(:enter).key_up(:enter).perform
|
647
|
+
|
648
|
+
|
649
|
+
|
650
|
+
|
651
|
+
|
605
652
|
|
606
653
|
puts content
|
607
654
|
noko = Nokogiri::HTML(content, nil, Encoding::UTF_8.to_s)
|
608
655
|
toomung = 0
|
609
656
|
h = Hash.new
|
610
|
-
|
611
|
-
# h[:method] = 'POST'
|
612
|
-
# h[:path] = '/RabbitWrite.naver'
|
613
|
-
# h[:scheme] = 'https'
|
614
|
-
# h['accept'] = 'application/json, text/plain, */*'
|
615
|
-
# h['accept-encoding'] = 'gzip, deflate, br'
|
616
|
-
# h['accept-language'] = 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'
|
617
|
-
# h['content-type'] = 'application/x-www-form-urlencoded'
|
618
|
-
# h['cookie'] = @cookie
|
619
|
-
# h['origin'] = 'https://blog.naver.com'
|
620
|
-
# h['referer'] = 'https://blog.naver.com/'+@user_id+'/postwrite?categoryNo=1'
|
621
|
-
# h['sec-ch-ua'] = '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"'
|
622
|
-
# h['sec-ch-ua-mobile'] = '?0'
|
623
|
-
# h['sec-ch-ua-platform'] = '"Windows"'
|
624
|
-
# h['sec-fetch-dest'] = 'empty'
|
625
|
-
# h['sec-fetch-mode'] = 'cors'
|
626
|
-
# h['sec-fetch-site'] = 'same-origin'
|
627
|
-
# 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'
|
657
|
+
|
628
658
|
|
629
659
|
data = Hash.new
|
630
|
-
|
631
|
-
# data['documentModel'] = Hash.new
|
632
|
-
# data['documentModel']['documentId'] = ''
|
633
|
-
# data['documentModel']['document'] = Hash.new
|
634
|
-
# data['documentModel']['document']['version'] = '2.6.0'
|
635
|
-
# data['documentModel']['document']['theme'] = 'default'
|
636
|
-
# data['documentModel']['document']['language'] = 'ko-KR'
|
637
|
-
# data['documentModel']['document']['components'] = Array.new
|
638
|
-
# data['documentModel']['document']['components'][0] = {
|
639
|
-
# 'id' => create_id(),
|
640
|
-
# 'layout' => 'default',
|
641
|
-
# 'title' => [
|
642
|
-
# {
|
643
|
-
# 'id' => create_id(),
|
644
|
-
# 'nodes' => [{
|
645
|
-
# 'id' => create_id(),
|
646
|
-
# 'value' => title,
|
647
|
-
# '@ctype' => 'textNode'
|
648
|
-
# }],
|
649
|
-
# '@ctype' => 'paragraph'
|
650
|
-
# }
|
651
|
-
# ],
|
652
|
-
# 'subTitle' => nil,
|
653
|
-
# 'align' => 'left',
|
654
|
-
# '@ctype' => 'documentTitle'
|
655
|
-
# }
|
660
|
+
|
656
661
|
|
657
662
|
check_position = 1
|
658
663
|
noko.css('p').each do |i|
|
@@ -693,30 +698,63 @@ class Naver
|
|
693
698
|
if i2.to_s.include?('<img')
|
694
699
|
path = i2.to_s.split('src="')[1].split('"')[0]
|
695
700
|
path = URI.decode_www_form(path)[0][0]
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
701
|
+
if option['라이브러리사용안함'] == 'true'
|
702
|
+
# 현재 탭의 URL을 가져오기
|
703
|
+
|
704
|
+
posting_url = @driver.current_url
|
705
|
+
@driver.execute_script("window.open('#{posting_url}');")
|
706
|
+
sleep(1)
|
707
|
+
@driver.switch_to.window(@driver.window_handles[1])
|
708
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 10)
|
709
|
+
iframe = wait.until { @driver.find_element(id: 'mainFrame') }
|
710
|
+
@driver.switch_to.frame(iframe)
|
711
|
+
begin
|
712
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
713
|
+
wait.until { @driver.find_element(:xpath, '//*[@class="se-popup-button-text"]') }
|
714
|
+
@driver.find_element(:xpath, '//*[@class="se-popup-button-text"]').click
|
715
|
+
sleep(1)
|
716
|
+
rescue
|
717
|
+
end
|
718
|
+
@driver.action.key_down(:control).key_down(:alt).send_keys('i').key_up(:alt).key_up(:control).perform
|
719
|
+
sleep(1)
|
720
|
+
Clipboard.copy(path.split('/').join("\\"))
|
721
|
+
key_down('ctrl')
|
722
|
+
key_stroke('v')
|
723
|
+
key_up('ctrl')
|
724
|
+
sleep(1)
|
725
|
+
key_stroke('enter')
|
726
|
+
sleep(2)
|
727
|
+
@driver.action.send_keys(:up).perform
|
728
|
+
sleep(1)
|
729
|
+
@driver.action.key_down(:control).send_keys('c').key_up(:control).perform
|
730
|
+
sleep(1)
|
731
|
+
@driver.switch_to.default_content()
|
732
|
+
@driver.close
|
733
|
+
sleep(1)
|
734
|
+
@driver.switch_to.window(@driver.window_handles[0])
|
735
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 10)
|
736
|
+
iframe = wait.until { @driver.find_element(id: 'mainFrame') }
|
737
|
+
@driver.switch_to.frame(iframe)
|
738
|
+
#@driver.action.key_down(:control).send_keys('v').key_up(:control).perform
|
739
|
+
key_down('ctrl')
|
740
|
+
key_stroke('v')
|
741
|
+
key_up('ctrl')
|
742
|
+
sleep(1)
|
743
|
+
|
744
|
+
else
|
745
|
+
#@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/header/div[1]/ul/li[1]/button').click
|
746
|
+
@driver.action.key_down(:control).key_down(:alt).send_keys('i').key_up(:alt).key_up(:control).perform
|
747
|
+
sleep(2)
|
748
|
+
Clipboard.copy(path.split('/').join("\\"))
|
749
|
+
key_down('ctrl')
|
750
|
+
key_stroke('v')
|
751
|
+
key_up('ctrl')
|
752
|
+
sleep(1)
|
753
|
+
key_stroke('enter')
|
754
|
+
sleep(2)
|
755
|
+
end
|
756
|
+
|
757
|
+
|
720
758
|
|
721
759
|
if i2.to_s.split('href="')[1] != nil
|
722
760
|
href2 = i2.to_s.split('href="')[1].split('"')[0]
|
@@ -853,75 +891,6 @@ class Naver
|
|
853
891
|
sleep(1)
|
854
892
|
|
855
893
|
|
856
|
-
elsif i2.to_s.include?('<template')
|
857
|
-
@driver.find_element(:xpath, '//*[@data-name="template"]').click
|
858
|
-
sleep(1.5)
|
859
|
-
@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/div[1]/aside/div/div[2]/ul/li[3]/button').click
|
860
|
-
sleep(1.5)
|
861
|
-
@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/div[1]/aside/div/div[3]/div[1]/div[2]/ul/li/a').click
|
862
|
-
sleep(1.5)
|
863
|
-
@driver.switch_to.alert.accept
|
864
|
-
sleep(5)
|
865
|
-
@driver.find_element(:xpath, '//*[@data-name="template"]').click
|
866
|
-
#sleep(1)
|
867
|
-
#@driver.find_element(:xpath, '//*[@class="save_count_btn__ZTLNa"]').click
|
868
|
-
#sleep(1)
|
869
|
-
#@driver.find_element(:xpath, '//*[@id="root"]/div/div[2]/div[2]/div[3]/div/div[2]/div[2]/div/button').click
|
870
|
-
#sleep(1)
|
871
|
-
#@driver.find_element(:xpath, '//*[@class="label__HjFsk"]').click
|
872
|
-
#sleep(1)
|
873
|
-
#@driver.find_element(:xpath, '//*[@id="root"]/div/div[2]/div[2]/div[3]/div/div[2]/div[2]/div/div/button[2]').click
|
874
|
-
#sleep(1.5)
|
875
|
-
#@driver.switch_to.alert.accept
|
876
|
-
#sleep(1.5)
|
877
|
-
#@driver.find_element(:xpath, '//*[@id="root"]/div/div[2]/div[2]/div[3]/div/div[2]/div[2]/div/div/button[3]').click
|
878
|
-
#sleep(1)
|
879
|
-
#@driver.find_element(:xpath, '//*[@class="close_button__YWXJ_"]').click
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
#제목 다시 입력
|
884
|
-
ele = @driver.find_element(:xpath, '//*[@draggable="false"]')
|
885
|
-
@driver.action.click(ele).perform
|
886
|
-
sleep(1)
|
887
|
-
@driver.action.key_down(:control).key_down('a').key_up('a').key_up(:control).perform
|
888
|
-
sleep(1)
|
889
|
-
@driver.action.key_down(:delete).key_up(:delete).perform
|
890
|
-
sleep(2)
|
891
|
-
title = title.strip
|
892
|
-
@driver.action.send_keys(title).perform
|
893
|
-
sleep(2)
|
894
|
-
@driver.action.key_down(:enter).key_up(:enter).perform
|
895
|
-
sleep(2)
|
896
|
-
@driver.action.key_down(:control).key_down('a').key_up('a').key_up(:control).perform
|
897
|
-
sleep(1)
|
898
|
-
@driver.action.key_down(:down).key_up(:down).perform
|
899
|
-
|
900
|
-
# components_value = Hash.new
|
901
|
-
# components_value['id'] = create_id()
|
902
|
-
# components_value['layout'] = 'default'
|
903
|
-
# begin
|
904
|
-
# if i.to_s.split('text-align: ')[1].split(';')[0] == 'center'
|
905
|
-
# components_value['align'] = 'center'
|
906
|
-
# elsif i.to_s.split('text-align: ')[1].split(';')[0] == 'right'
|
907
|
-
# components_value['align'] = 'right'
|
908
|
-
# else
|
909
|
-
|
910
|
-
# end
|
911
|
-
# rescue
|
912
|
-
|
913
|
-
# end
|
914
|
-
# sticker_random = rand(1..9)
|
915
|
-
# components_value['packCode'] = 'linesoft_01'
|
916
|
-
# components_value['seq'] = sticker_random
|
917
|
-
# components_value['thumbnail'] = {
|
918
|
-
# 'src' => "https://storep-phinf.pstatic.net/linesoft_01/original_"+sticker_random.to_s+".gif",
|
919
|
-
# "width" => 185,
|
920
|
-
# 'height' => 160,
|
921
|
-
# '@ctype' => 'thumbnail'
|
922
|
-
# }
|
923
|
-
# components_value['format'] = "animated"
|
924
|
-
# components_value['@ctype'] = "sticker"
|
925
894
|
elsif i2.to_s.include?('<koreamap')
|
926
895
|
where = i2.to_s.split('>')[1].split('<')[0]
|
927
896
|
@driver.find_element(:xpath, '//*[@id="'+page_id+'"]/div[1]/div/header/div[1]/ul/li[7]/button').click
|
@@ -2012,7 +1981,7 @@ class Wordpress
|
|
2012
1981
|
@video = Array.new
|
2013
1982
|
while true
|
2014
1983
|
for n in 0..@data['table'].length-1
|
2015
|
-
@data['table'][n][
|
1984
|
+
@data['table'][n][11] = 0
|
2016
1985
|
end
|
2017
1986
|
|
2018
1987
|
while true
|
@@ -2050,6 +2019,17 @@ class Wordpress
|
|
2050
2019
|
rescue
|
2051
2020
|
option['bun'] = ''
|
2052
2021
|
end
|
2022
|
+
|
2023
|
+
begin
|
2024
|
+
option['template'] = table[7].to_s.force_encoding('utf-8').to_s
|
2025
|
+
if option['template'].to_s == '템플릿 사용시 번호 ex)1' || option['template'].to_s == '0'
|
2026
|
+
option['template'] = ''
|
2027
|
+
|
2028
|
+
end
|
2029
|
+
rescue
|
2030
|
+
option['template'] = ''
|
2031
|
+
end
|
2032
|
+
|
2053
2033
|
|
2054
2034
|
option['proxy'] = ''
|
2055
2035
|
if @data['포스트설정']['프록시'].checked?
|
@@ -2060,7 +2040,7 @@ class Wordpress
|
|
2060
2040
|
end
|
2061
2041
|
end
|
2062
2042
|
|
2063
|
-
if table[
|
2043
|
+
if table[8].to_i > table[11].to_i
|
2064
2044
|
if @data['포스트설정']['테더링'].checked?
|
2065
2045
|
puts 'tedering ip change...'
|
2066
2046
|
stdout, stderr, status = Open3.capture3('./adb devices')
|
@@ -2108,6 +2088,14 @@ class Wordpress
|
|
2108
2088
|
end
|
2109
2089
|
end
|
2110
2090
|
end
|
2091
|
+
|
2092
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2093
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2094
|
+
gpt_text1 = chat.message(title)
|
2095
|
+
title = gpt_text1.to_s
|
2096
|
+
end
|
2097
|
+
|
2098
|
+
|
2111
2099
|
@data['table'][index][-1] = 5
|
2112
2100
|
@data['table'] << []
|
2113
2101
|
@data['table'].pop
|
@@ -2145,10 +2133,29 @@ class Wordpress
|
|
2145
2133
|
end
|
2146
2134
|
end
|
2147
2135
|
end
|
2148
|
-
|
2149
|
-
|
2150
|
-
@data['
|
2151
|
-
|
2136
|
+
|
2137
|
+
|
2138
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2139
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2140
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2141
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2142
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2143
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2144
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2145
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2146
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2147
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2148
|
+
|
2149
|
+
|
2150
|
+
chat = Chat_content.new(api_key)
|
2151
|
+
gpt_text3 = chat.message(content)
|
2152
|
+
content = gpt_text3.to_s
|
2153
|
+
end
|
2154
|
+
|
2155
|
+
content_tag = content.split('@##@')[1]
|
2156
|
+
content = content.split('@##@')[0]
|
2157
|
+
@data['table'][index][-1] = 15
|
2158
|
+
@data['table'] << []
|
2152
2159
|
@data['table'].pop
|
2153
2160
|
#단어 가저오기
|
2154
2161
|
if @data['포스트설정']['제목을랜덤'].checked? or @data['포스트설정']['내용을자동생성'].checked? or @data['포스트설정']['내용과자동생성'].checked?
|
@@ -2343,7 +2350,7 @@ class Wordpress
|
|
2343
2350
|
@data['table'][index][-1] = 50
|
2344
2351
|
@data['table'] << []
|
2345
2352
|
@data['table'].pop
|
2346
|
-
if @data['포스트설정']['gpt'].checked?
|
2353
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2347
2354
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2348
2355
|
gpt_text = chat.message(keyword)
|
2349
2356
|
content = content.to_s + "\n(자동생성글)\n" + gpt_text.to_s
|
@@ -2364,7 +2371,7 @@ class Wordpress
|
|
2364
2371
|
joongbok_check = 0
|
2365
2372
|
counter10 = 0
|
2366
2373
|
while joongbok_check == 0
|
2367
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2374
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2368
2375
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2369
2376
|
else
|
2370
2377
|
content22 = content.split("\n")
|
@@ -2388,12 +2395,12 @@ class Wordpress
|
|
2388
2395
|
content2 = content.split("\n")
|
2389
2396
|
end
|
2390
2397
|
|
2391
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2398
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2392
2399
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2393
2400
|
position.pop
|
2394
2401
|
end
|
2395
2402
|
|
2396
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2403
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2397
2404
|
content2 = content.split("\n")
|
2398
2405
|
end
|
2399
2406
|
|
@@ -2439,7 +2446,7 @@ class Wordpress
|
|
2439
2446
|
content = content3.join("\n")
|
2440
2447
|
end
|
2441
2448
|
|
2442
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2449
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2443
2450
|
content2.each_with_index do |con, index|
|
2444
2451
|
if position.include?(index)
|
2445
2452
|
insert_keyword_text = keyword.to_s
|
@@ -2469,7 +2476,7 @@ class Wordpress
|
|
2469
2476
|
end
|
2470
2477
|
end
|
2471
2478
|
|
2472
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2479
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2473
2480
|
begin
|
2474
2481
|
content2.each_with_index do |con, index|
|
2475
2482
|
if position.include?(index)
|
@@ -2564,7 +2571,7 @@ class Wordpress
|
|
2564
2571
|
end
|
2565
2572
|
end
|
2566
2573
|
|
2567
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2574
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2568
2575
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2569
2576
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2570
2577
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2595,51 +2602,8 @@ class Wordpress
|
|
2595
2602
|
end
|
2596
2603
|
|
2597
2604
|
position = position.sort
|
2598
|
-
|
2599
|
-
|
2600
|
-
# image_url22 = get_image_file().force_encoding('utf-8')
|
2601
|
-
# end
|
2602
|
-
|
2603
|
-
# position.each do |i|
|
2604
|
-
# image_url = get_image_file().force_encoding('utf-8')
|
2605
|
-
# puts image_url
|
2606
|
-
|
2607
|
-
# puts '사진넣는위치 => '+i.to_s
|
2608
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2609
|
-
# image_memory << ""+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')+'"><img src="'+image_url+'" alt="'+keyword.force_encoding('utf-8')+'"></a>'+""
|
2610
|
-
# content5.insert(i, '**image**')
|
2611
|
-
# else
|
2612
|
-
# image_memory << ""+'<img src="'+image_url+'" alt="'+keyword+'" class="aligncenter size-full">'+""
|
2613
|
-
# content5.insert(i, '**image**')
|
2614
|
-
# end
|
2615
|
-
# end
|
2616
|
-
|
2617
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2618
|
-
# content = content5.join("\n")+'(자동생성글)'+content55
|
2619
|
-
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2620
|
-
# content = iconv.iconv(content)
|
2621
|
-
# content = content.encode('UTF-8', 'binary', invalid: :replace, replace: '')
|
2622
|
-
# puts content
|
2623
|
-
# image_url = image_url22
|
2624
|
-
|
2625
|
-
# if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2626
|
-
|
2627
|
-
# else
|
2628
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2629
|
-
# content = content.split('(자동생성글)')[0]+""+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8')+'"><img src="'+image_url+'" alt="'+keyword+'"></a>'+""+'(자동생성글)'+content.split('(자동생성글)')[1]
|
2630
|
-
# else
|
2631
|
-
# content = content.split('(자동생성글)')[0]+""+'<img src="'+image_url+'" alt="'+keyword+'" >'+""+'(자동생성글)'+content.split('(자동생성글)')[1]
|
2632
|
-
# end
|
2633
|
-
# end
|
2634
|
-
# else
|
2635
|
-
# content = content5.join("\n")
|
2636
|
-
# end
|
2637
|
-
# end
|
2638
|
-
# end
|
2639
|
-
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2640
|
-
|
2641
|
-
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2642
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2605
|
+
|
2606
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2643
2607
|
sleep(2)
|
2644
2608
|
puts '이미지 자동 세탁 중 · · · '
|
2645
2609
|
end
|
@@ -2658,7 +2622,7 @@ class Wordpress
|
|
2658
2622
|
end
|
2659
2623
|
sleep(2)
|
2660
2624
|
puts '이미지 자동 세탁 완료 · · · '
|
2661
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2625
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2662
2626
|
content = content5.join("\n")+'(자동생성글)'+content55
|
2663
2627
|
puts content
|
2664
2628
|
else
|
@@ -2666,6 +2630,8 @@ class Wordpress
|
|
2666
2630
|
end
|
2667
2631
|
end
|
2668
2632
|
end
|
2633
|
+
|
2634
|
+
|
2669
2635
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2670
2636
|
@data['table'][index][-1] = 70
|
2671
2637
|
@data['table'] << []
|
@@ -2680,7 +2646,7 @@ class Wordpress
|
|
2680
2646
|
content = content.split(i.force_encoding('utf-8')).join(keyword)
|
2681
2647
|
end
|
2682
2648
|
end
|
2683
|
-
|
2649
|
+
|
2684
2650
|
@data['table'][index][-1] = 75
|
2685
2651
|
@data['table'] << []
|
2686
2652
|
@data['table'].pop
|
@@ -2697,12 +2663,7 @@ class Wordpress
|
|
2697
2663
|
ttr = 0
|
2698
2664
|
@data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
2699
2665
|
ttr = 1
|
2700
|
-
|
2701
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2702
|
-
# content = content.split(i.force_encoding('utf-8')).join('<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8')+'"><img src="'+image_url+'" alt="'+keyword+'"></a>')
|
2703
|
-
# else
|
2704
|
-
# content = content.split(i.force_encoding('utf-8')).join('<img src="'+image_url+'" alt="'+keyword+'">')
|
2705
|
-
# end
|
2666
|
+
|
2706
2667
|
content = content.split(i.force_encoding('utf-8'))
|
2707
2668
|
content.each_with_index do |ccm, index3|
|
2708
2669
|
if index3 == content.length-1
|
@@ -2721,6 +2682,10 @@ class Wordpress
|
|
2721
2682
|
content = content.join('')
|
2722
2683
|
end
|
2723
2684
|
end
|
2685
|
+
|
2686
|
+
|
2687
|
+
|
2688
|
+
|
2724
2689
|
|
2725
2690
|
con_memory = Array.new
|
2726
2691
|
index5 = 0
|
@@ -2758,17 +2723,9 @@ class Wordpress
|
|
2758
2723
|
content = content.split(i.force_encoding('utf-8')).join("<sticker></sticker>")
|
2759
2724
|
end
|
2760
2725
|
end
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
2764
|
-
if @data['포스트설정']['내템플릿사용하기'].checked?
|
2765
|
-
@data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
2766
|
-
content = content.split(i.force_encoding('utf-8')).join("<template></template>")
|
2767
|
-
end
|
2768
|
-
end
|
2769
|
-
|
2770
2726
|
|
2771
2727
|
|
2728
|
+
|
2772
2729
|
if @data['포스트설정']['영상으로변경'].checked?
|
2773
2730
|
if @video.length == 0
|
2774
2731
|
path = @data['포스트설정']['동영상폴더위치'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
@@ -2812,7 +2769,7 @@ class Wordpress
|
|
2812
2769
|
content = content
|
2813
2770
|
soosick_1 = content_end
|
2814
2771
|
else
|
2815
|
-
if @data['포스트설정']['gpt'].checked?
|
2772
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2816
2773
|
if @data['포스트설정']['gpt상단'].checked?
|
2817
2774
|
content = content_end+"\n"+content+"\n"
|
2818
2775
|
else
|
@@ -2906,9 +2863,11 @@ class Wordpress
|
|
2906
2863
|
|
2907
2864
|
end
|
2908
2865
|
|
2909
|
-
|
2910
|
-
|
2911
|
-
|
2866
|
+
if @data['포스트설정']['라이브러리사용안함'].checked?
|
2867
|
+
option['라이브러리사용안함'] = 'true'
|
2868
|
+
else
|
2869
|
+
option['라이브러리사용안함'] = 'false'
|
2870
|
+
end
|
2912
2871
|
|
2913
2872
|
if @data['포스트설정']['외부공유허용'].checked?
|
2914
2873
|
option['외부공유허용'] = 'true'
|
@@ -2960,7 +2919,8 @@ class Wordpress
|
|
2960
2919
|
@data['table'] << []
|
2961
2920
|
@data['table'].pop
|
2962
2921
|
|
2963
|
-
dd_time = @data['table'][index][
|
2922
|
+
dd_time = @data['table'][index][10].to_s.force_encoding('utf-8').to_i
|
2923
|
+
template_no = @data['table'][index][7].to_s.force_encoding('utf-8').to_i
|
2964
2924
|
naver.update(title,content,option,soosick_1,soosick_2, dd_time)
|
2965
2925
|
|
2966
2926
|
|
@@ -2979,11 +2939,11 @@ class Wordpress
|
|
2979
2939
|
# @data2['content'] = content+'</div>'
|
2980
2940
|
|
2981
2941
|
#완료했으니 수량 카운터
|
2982
|
-
@data['table'][index][
|
2942
|
+
@data['table'][index][11] = @data['table'][index][11].to_i + 1
|
2983
2943
|
@data['table'][index][-1] = 100
|
2984
2944
|
@data['table'] << []
|
2985
2945
|
@data['table'].pop
|
2986
|
-
sleep(@data['table'][index][
|
2946
|
+
sleep(@data['table'][index][9].to_i)
|
2987
2947
|
end
|
2988
2948
|
# rescue => exception
|
2989
2949
|
# puts exception
|
@@ -3263,8 +3223,8 @@ class Wordpress
|
|
3263
3223
|
end
|
3264
3224
|
|
3265
3225
|
if i.class == Array
|
3266
|
-
i[7] = i[7].to_i
|
3267
3226
|
i[8] = i[8].to_i
|
3227
|
+
i[9] = i[9].to_i
|
3268
3228
|
@data[key] << i
|
3269
3229
|
@data[key] << i
|
3270
3230
|
@data[key].pop
|
@@ -3334,11 +3294,14 @@ class Wordpress
|
|
3334
3294
|
@data['bun'] = entry{
|
3335
3295
|
text '예약 발행 분 단위 ex)00'
|
3336
3296
|
}
|
3297
|
+
@data['template'] = entry{
|
3298
|
+
text '템플릿 사용시 번호 ex)1'
|
3299
|
+
}
|
3337
3300
|
|
3338
3301
|
button('등록'){
|
3339
3302
|
on_clicked {
|
3340
|
-
@data['table'] << [false, @data['site_id_input'].text, @data['site_pw_input'].text,@data['category'].text , @data['proxy'].text , @data['sigan'].text, @data['bun'].text, 1, 1, 1, 0,0]
|
3341
|
-
@data['table'] << [false, @data['site_id_input'].text, @data['site_pw_input'].text,@data['category'].text , @data['proxy'].text , @data['sigan'].text, @data['bun'].text, 1, 1, 1, 0,0]
|
3303
|
+
@data['table'] << [false, @data['site_id_input'].text, @data['site_pw_input'].text,@data['category'].text , @data['proxy'].text , @data['sigan'].text, @data['bun'].text, @data['template'].text, 1, 1, 1, 0,0]
|
3304
|
+
@data['table'] << [false, @data['site_id_input'].text, @data['site_pw_input'].text,@data['category'].text , @data['proxy'].text , @data['sigan'].text, @data['bun'].text, @data['template'].text,1, 1, 1, 0,0]
|
3342
3305
|
@data['table'].pop
|
3343
3306
|
}
|
3344
3307
|
}
|
@@ -3350,8 +3313,8 @@ class Wordpress
|
|
3350
3313
|
file_data.split("\n").each do |i|
|
3351
3314
|
i3 = i.to_s.force_encoding('utf-8').to_s
|
3352
3315
|
i2 = i3.split(',')
|
3353
|
-
@data['table'] << [false, i2[0].to_s, i2[1].to_s,i2[2].to_s,i2[3].to_s,i2[4].to_s,i2[5].to_s, 1,1,1,0,0]
|
3354
|
-
@data['table'] << [false, i2[0].to_s, i2[1].to_s,i2[2].to_s,i2[3].to_s,i2[4].to_s,i2[5].to_s, 1,1,1,0,0]
|
3316
|
+
@data['table'] << [false, i2[0].to_s, i2[1].to_s,i2[2].to_s,i2[3].to_s,i2[4].to_s,i2[5].to_s,i2[6].to_s, 1,1,1,0,0]
|
3317
|
+
@data['table'] << [false, i2[0].to_s, i2[1].to_s,i2[2].to_s,i2[3].to_s,i2[4].to_s,i2[5].to_s,i2[6].to_s, 1,1,1,0,0]
|
3355
3318
|
@data['table'].pop
|
3356
3319
|
end
|
3357
3320
|
end
|
@@ -3386,6 +3349,9 @@ class Wordpress
|
|
3386
3349
|
text_column('예약 분'){
|
3387
3350
|
editable true
|
3388
3351
|
}
|
3352
|
+
text_column('템플릿 넘버'){
|
3353
|
+
editable true
|
3354
|
+
}
|
3389
3355
|
|
3390
3356
|
|
3391
3357
|
text_column('수량'){
|
@@ -3452,7 +3418,11 @@ class Wordpress
|
|
3452
3418
|
|
3453
3419
|
grid{
|
3454
3420
|
stretchy false
|
3455
|
-
|
3421
|
+
@data['table_template_input'] = entry{
|
3422
|
+
top 1
|
3423
|
+
left 3
|
3424
|
+
text '템플릿 넘버 ex) 3'
|
3425
|
+
}
|
3456
3426
|
@data['table_counter_input'] = entry{
|
3457
3427
|
top 1
|
3458
3428
|
left 4
|
@@ -3466,7 +3436,7 @@ class Wordpress
|
|
3466
3436
|
@data['table_delay_input2'] = entry{
|
3467
3437
|
top 1
|
3468
3438
|
left 6
|
3469
|
-
text '
|
3439
|
+
text '등록 전 딜레이'
|
3470
3440
|
}
|
3471
3441
|
|
3472
3442
|
button('전체설정'){
|
@@ -3474,9 +3444,10 @@ class Wordpress
|
|
3474
3444
|
left 7
|
3475
3445
|
on_clicked{
|
3476
3446
|
for n in 0..@data['table'].length-1
|
3477
|
-
@data['table'][n][7] = @data['
|
3478
|
-
@data['table'][n][8] = @data['
|
3479
|
-
@data['table'][n][9] = @data['
|
3447
|
+
@data['table'][n][7] = @data['table_template_input'].text.to_i
|
3448
|
+
@data['table'][n][8] = @data['table_counter_input'].text.to_i
|
3449
|
+
@data['table'][n][9] = @data['table_delay_input'].text.to_s
|
3450
|
+
@data['table'][n][10] = @data['table_delay_input2'].text.to_s
|
3480
3451
|
@data['table'] << []
|
3481
3452
|
@data['table'].pop
|
3482
3453
|
end
|
@@ -3486,1261 +3457,1478 @@ class Wordpress
|
|
3486
3457
|
}
|
3487
3458
|
}
|
3488
3459
|
}
|
3489
|
-
|
3460
|
+
tab_item('내용설정'){
|
3461
|
+
horizontal_box{
|
3462
|
+
vertical_box{
|
3490
3463
|
horizontal_box{
|
3491
|
-
|
3492
|
-
|
3493
|
-
|
3494
|
-
|
3495
|
-
|
3496
|
-
|
3497
|
-
|
3498
|
-
|
3499
|
-
file_data.split("\n").each do |keyword|
|
3500
|
-
if keyword.split(' ').join('').length < 2
|
3501
|
-
|
3502
|
-
else
|
3503
|
-
@data['키워드설정']['키워드'] << [false, keyword]
|
3504
|
-
@data['키워드설정']['키워드'] << [false, keyword]
|
3505
|
-
@data['키워드설정']['키워드'].pop
|
3506
|
-
end
|
3507
|
-
end
|
3508
|
-
end
|
3509
|
-
|
3510
|
-
}
|
3511
|
-
}
|
3464
|
+
stretchy false
|
3465
|
+
button('키워드불러오기'){
|
3466
|
+
on_clicked{
|
3467
|
+
file = open_file
|
3468
|
+
if file != nil
|
3469
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3470
|
+
file_data.split("\n").each do |keyword|
|
3471
|
+
if keyword.split(' ').join('').length < 2
|
3512
3472
|
|
3513
|
-
|
3514
|
-
|
3515
|
-
|
3516
|
-
grid{
|
3517
|
-
button('전체선택'){
|
3518
|
-
top 1
|
3519
|
-
left 1
|
3520
|
-
on_clicked{
|
3521
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3522
|
-
@data['키워드설정']['키워드'][n][0] = true
|
3523
|
-
@data['키워드설정']['키워드'] << []
|
3524
|
-
@data['키워드설정']['키워드'].pop
|
3525
|
-
end
|
3526
|
-
}
|
3527
|
-
}
|
3528
|
-
button('선택해제'){
|
3529
|
-
top 1
|
3530
|
-
left 2
|
3531
|
-
on_clicked{
|
3532
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3533
|
-
@data['키워드설정']['키워드'][n][0] = false
|
3534
|
-
@data['키워드설정']['키워드'] << []
|
3473
|
+
else
|
3474
|
+
@data['키워드설정']['키워드'] << [false, keyword]
|
3475
|
+
@data['키워드설정']['키워드'] << [false, keyword]
|
3535
3476
|
@data['키워드설정']['키워드'].pop
|
3536
3477
|
end
|
3537
|
-
|
3538
|
-
|
3539
|
-
button('삭제하기'){
|
3540
|
-
top 1
|
3541
|
-
left 3
|
3542
|
-
on_clicked{
|
3543
|
-
m = Array.new
|
3544
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3545
|
-
if @data['키워드설정']['키워드'][n][0] == true
|
3546
|
-
m << n
|
3547
|
-
end
|
3548
|
-
end
|
3478
|
+
end
|
3479
|
+
end
|
3549
3480
|
|
3550
|
-
m.reverse.each do |i|
|
3551
|
-
@data['키워드설정']['키워드'].delete_at(i)
|
3552
|
-
end
|
3553
|
-
@data['키워드설정']['키워드'].delete(nil)
|
3554
|
-
}
|
3555
|
-
}
|
3556
|
-
}
|
3557
|
-
|
3558
|
-
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3559
|
-
stretchy false
|
3560
|
-
on_toggled{ |c|
|
3561
|
-
if c.checked?
|
3562
|
-
@data['키워드설정']['랜덤사용'].checked = false
|
3563
|
-
end
|
3564
|
-
}
|
3565
|
-
}
|
3566
|
-
@data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3567
|
-
stretchy false
|
3568
|
-
on_toggled{ |c|
|
3569
|
-
if c.checked?
|
3570
|
-
@data['키워드설정']['순서사용'].checked = false
|
3571
|
-
end
|
3572
|
-
}
|
3573
|
-
}
|
3574
3481
|
}
|
3575
|
-
|
3576
|
-
checkbox_column('선택'){
|
3577
|
-
editable true
|
3578
|
-
}
|
3579
|
-
text_column('키워드'){
|
3580
|
-
|
3581
|
-
}
|
3482
|
+
}
|
3582
3483
|
|
3583
|
-
|
3484
|
+
}
|
3485
|
+
horizontal_box{
|
3486
|
+
stretchy false
|
3487
|
+
grid{
|
3488
|
+
button('전체선택'){
|
3489
|
+
top 1
|
3490
|
+
left 1
|
3491
|
+
on_clicked{
|
3492
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3493
|
+
@data['키워드설정']['키워드'][n][0] = true
|
3494
|
+
@data['키워드설정']['키워드'] << []
|
3495
|
+
@data['키워드설정']['키워드'].pop
|
3496
|
+
end
|
3584
3497
|
}
|
3585
|
-
|
3586
3498
|
}
|
3587
|
-
|
3588
|
-
|
3499
|
+
button('선택해제'){
|
3500
|
+
top 1
|
3501
|
+
left 2
|
3502
|
+
on_clicked{
|
3503
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3504
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3505
|
+
@data['키워드설정']['키워드'] << []
|
3506
|
+
@data['키워드설정']['키워드'].pop
|
3507
|
+
end
|
3508
|
+
}
|
3589
3509
|
}
|
3590
|
-
|
3591
|
-
|
3592
|
-
|
3593
|
-
|
3594
|
-
|
3595
|
-
|
3596
|
-
|
3597
|
-
|
3598
|
-
|
3599
|
-
|
3600
|
-
|
3601
|
-
else
|
3602
|
-
@data['제목설정']['제목'] << [false, title]
|
3603
|
-
@data['제목설정']['제목'] << [false, title]
|
3604
|
-
@data['제목설정']['제목'].pop
|
3605
|
-
end
|
3606
|
-
end
|
3607
|
-
end
|
3608
|
-
}
|
3609
|
-
}
|
3510
|
+
button('삭제하기'){
|
3511
|
+
top 1
|
3512
|
+
left 3
|
3513
|
+
on_clicked{
|
3514
|
+
m = Array.new
|
3515
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3516
|
+
if @data['키워드설정']['키워드'][n][0] == true
|
3517
|
+
m << n
|
3518
|
+
end
|
3519
|
+
end
|
3610
3520
|
|
3521
|
+
m.reverse.each do |i|
|
3522
|
+
@data['키워드설정']['키워드'].delete_at(i)
|
3523
|
+
end
|
3524
|
+
@data['키워드설정']['키워드'].delete(nil)
|
3611
3525
|
}
|
3612
|
-
|
3613
|
-
|
3614
|
-
|
3615
|
-
|
3616
|
-
|
3617
|
-
|
3618
|
-
|
3619
|
-
|
3620
|
-
|
3621
|
-
@data['제목설정']['제목'] << []
|
3622
|
-
@data['제목설정']['제목'].pop
|
3623
|
-
end
|
3624
|
-
}
|
3625
|
-
}
|
3626
|
-
button('선택해제'){
|
3627
|
-
top 1
|
3628
|
-
left 2
|
3629
|
-
on_clicked{
|
3630
|
-
for n in 0..@data['제목설정']['제목'].length-1
|
3631
|
-
@data['제목설정']['제목'][n][0] = false
|
3632
|
-
@data['제목설정']['제목'] << []
|
3633
|
-
@data['제목설정']['제목'].pop
|
3634
|
-
end
|
3635
|
-
}
|
3636
|
-
}
|
3637
|
-
button('삭제하기'){
|
3638
|
-
top 1
|
3639
|
-
left 3
|
3640
|
-
on_clicked{
|
3641
|
-
m = Array.new
|
3642
|
-
for n in 0..@data['제목설정']['제목'].length-1
|
3643
|
-
if @data['제목설정']['제목'][n][0] == true
|
3644
|
-
m << n
|
3645
|
-
end
|
3646
|
-
end
|
3647
|
-
|
3648
|
-
m.reverse.each do |i|
|
3649
|
-
@data['제목설정']['제목'].delete_at(i)
|
3650
|
-
end
|
3651
|
-
@data['제목설정']['제목'].delete(nil)
|
3652
|
-
}
|
3653
|
-
}
|
3526
|
+
}
|
3527
|
+
}
|
3528
|
+
|
3529
|
+
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3530
|
+
stretchy false
|
3531
|
+
on_toggled{ |c|
|
3532
|
+
if c.checked?
|
3533
|
+
@data['키워드설정']['랜덤사용'].checked = false
|
3534
|
+
end
|
3654
3535
|
}
|
3655
|
-
|
3656
|
-
|
3657
|
-
|
3658
|
-
|
3659
|
-
|
3660
|
-
|
3661
|
-
|
3662
|
-
}
|
3663
|
-
@data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3664
|
-
stretchy false
|
3665
|
-
on_toggled{ |c|
|
3666
|
-
if c.checked?
|
3667
|
-
@data['제목설정']['순서사용'].checked = false
|
3668
|
-
end
|
3669
|
-
}
|
3670
|
-
}
|
3536
|
+
}
|
3537
|
+
@data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3538
|
+
stretchy false
|
3539
|
+
on_toggled{ |c|
|
3540
|
+
if c.checked?
|
3541
|
+
@data['키워드설정']['순서사용'].checked = false
|
3542
|
+
end
|
3671
3543
|
}
|
3672
|
-
|
3673
|
-
|
3674
|
-
|
3675
|
-
|
3676
|
-
|
3677
|
-
|
3678
|
-
|
3544
|
+
}
|
3545
|
+
}
|
3546
|
+
vertical_separator{
|
3547
|
+
stretchy false
|
3548
|
+
}
|
3549
|
+
horizontal_box{
|
3550
|
+
stretchy false
|
3551
|
+
grid{
|
3552
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3553
|
+
top 1
|
3554
|
+
left 0
|
3555
|
+
#enabled false # 기본적으로 비활성화
|
3556
|
+
on_toggled {
|
3557
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3558
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3559
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3560
|
+
else
|
3561
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3562
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3563
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3564
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3565
|
+
end
|
3566
|
+
}
|
3567
|
+
|
3568
|
+
}
|
3569
|
+
|
3570
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3571
|
+
top 1
|
3572
|
+
left 1
|
3573
|
+
enabled false # 기본적으로 비활성화
|
3574
|
+
on_toggled{
|
3575
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3576
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3577
|
+
end
|
3578
|
+
}
|
3579
|
+
}
|
3679
3580
|
|
3680
|
-
|
3581
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3582
|
+
top 1
|
3583
|
+
left 2
|
3584
|
+
enabled false # 기본적으로 비활성화
|
3585
|
+
on_toggled{
|
3586
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3587
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3588
|
+
end
|
3681
3589
|
}
|
3682
|
-
|
3590
|
+
}
|
3591
|
+
} }
|
3592
|
+
horizontal_box{
|
3593
|
+
stretchy false
|
3594
|
+
grid{
|
3595
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3596
|
+
} } }
|
3597
|
+
|
3598
|
+
|
3599
|
+
table{
|
3600
|
+
checkbox_column('선택'){
|
3601
|
+
editable true
|
3683
3602
|
}
|
3684
|
-
|
3685
|
-
|
3603
|
+
text_column('키워드'){
|
3604
|
+
|
3686
3605
|
}
|
3687
|
-
vertical_box{
|
3688
|
-
horizontal_box{
|
3689
|
-
stretchy false
|
3690
|
-
button('내용불러오기'){
|
3691
|
-
on_clicked{
|
3692
|
-
file = open_file
|
3693
|
-
if file != nil
|
3694
|
-
file_name = file.split("\\")[-1]
|
3695
|
-
file_data = File.open(file,'r', :encoding => 'utf-8').read()
|
3696
|
-
if file_data.split("\n").length < 2
|
3697
|
-
file_data = file_data + "\n"
|
3698
|
-
end
|
3699
|
-
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3700
|
-
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3701
|
-
@data['내용설정']['내용'].pop
|
3702
|
-
end
|
3703
|
-
}
|
3704
|
-
}
|
3705
3606
|
|
3706
|
-
|
3707
|
-
|
3708
|
-
|
3709
|
-
|
3710
|
-
|
3711
|
-
|
3712
|
-
|
3713
|
-
|
3714
|
-
|
3715
|
-
|
3716
|
-
|
3717
|
-
|
3718
|
-
|
3719
|
-
|
3720
|
-
|
3721
|
-
|
3722
|
-
|
3723
|
-
|
3724
|
-
|
3725
|
-
for n in 0..@data['내용설정']['내용'].length-1
|
3726
|
-
@data['내용설정']['내용'][n][0] = false
|
3727
|
-
@data['내용설정']['내용'] << []
|
3728
|
-
@data['내용설정']['내용'].pop
|
3729
|
-
end
|
3730
|
-
}
|
3731
|
-
}
|
3732
|
-
button('삭제하기'){
|
3733
|
-
top 1
|
3734
|
-
left 3
|
3735
|
-
on_clicked{
|
3736
|
-
m = Array.new
|
3737
|
-
for n in 0..@data['내용설정']['내용'].length-1
|
3738
|
-
if @data['내용설정']['내용'][n][0] == true
|
3739
|
-
m << n
|
3740
|
-
end
|
3741
|
-
end
|
3607
|
+
cell_rows @data['키워드설정']['키워드']
|
3608
|
+
}
|
3609
|
+
|
3610
|
+
|
3611
|
+
|
3612
|
+
}
|
3613
|
+
vertical_separator{
|
3614
|
+
stretchy false
|
3615
|
+
}
|
3616
|
+
vertical_box{
|
3617
|
+
horizontal_box{
|
3618
|
+
stretchy false
|
3619
|
+
button('제목불러오기'){
|
3620
|
+
on_clicked{
|
3621
|
+
file = open_file
|
3622
|
+
if file != nil
|
3623
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3624
|
+
file_data.split("\n").each do |title|
|
3625
|
+
if title.split(" ").join('').length < 2
|
3742
3626
|
|
3743
|
-
|
3744
|
-
@data['
|
3745
|
-
|
3746
|
-
|
3747
|
-
}
|
3748
|
-
}
|
3749
|
-
}
|
3750
|
-
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
3751
|
-
stretchy false
|
3752
|
-
on_toggled{ |c|
|
3753
|
-
if c.checked?
|
3754
|
-
@data['내용설정']['랜덤사용'].checked = false
|
3755
|
-
end
|
3756
|
-
}
|
3757
|
-
}
|
3758
|
-
@data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3759
|
-
stretchy false
|
3760
|
-
on_toggled{ |c|
|
3761
|
-
if c.checked?
|
3762
|
-
@data['내용설정']['순서사용'].checked = false
|
3627
|
+
else
|
3628
|
+
@data['제목설정']['제목'] << [false, title]
|
3629
|
+
@data['제목설정']['제목'] << [false, title]
|
3630
|
+
@data['제목설정']['제목'].pop
|
3763
3631
|
end
|
3764
|
-
|
3765
|
-
|
3632
|
+
end
|
3633
|
+
end
|
3766
3634
|
}
|
3767
|
-
|
3768
|
-
checkbox_column('선택'){
|
3769
|
-
editable true
|
3770
|
-
}
|
3771
|
-
text_column('내용파일'){
|
3772
|
-
|
3773
|
-
}
|
3635
|
+
}
|
3774
3636
|
|
3775
|
-
|
3637
|
+
}
|
3638
|
+
horizontal_box{
|
3639
|
+
stretchy false
|
3640
|
+
grid{
|
3641
|
+
button('전체선택'){
|
3642
|
+
top 1
|
3643
|
+
left 1
|
3644
|
+
on_clicked{
|
3645
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3646
|
+
@data['제목설정']['제목'][n][0] = true
|
3647
|
+
@data['제목설정']['제목'] << []
|
3648
|
+
@data['제목설정']['제목'].pop
|
3649
|
+
end
|
3650
|
+
}
|
3651
|
+
}
|
3652
|
+
button('선택해제'){
|
3653
|
+
top 1
|
3654
|
+
left 2
|
3655
|
+
on_clicked{
|
3656
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3657
|
+
@data['제목설정']['제목'][n][0] = false
|
3658
|
+
@data['제목설정']['제목'] << []
|
3659
|
+
@data['제목설정']['제목'].pop
|
3660
|
+
end
|
3776
3661
|
}
|
3662
|
+
}
|
3663
|
+
button('삭제하기'){
|
3664
|
+
top 1
|
3665
|
+
left 3
|
3666
|
+
on_clicked{
|
3667
|
+
m = Array.new
|
3668
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3669
|
+
if @data['제목설정']['제목'][n][0] == true
|
3670
|
+
m << n
|
3671
|
+
end
|
3672
|
+
end
|
3777
3673
|
|
3778
|
-
|
3779
|
-
|
3780
|
-
|
3781
|
-
|
3782
|
-
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3783
|
-
}
|
3784
|
-
button('폴더째로불러오기'){
|
3785
|
-
stretchy false
|
3786
|
-
on_clicked{
|
3787
|
-
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3788
|
-
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
3789
|
-
if file == '.' or file == '..'
|
3790
|
-
|
3791
|
-
else
|
3792
|
-
file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
|
3793
|
-
@data['내용설정']['내용'] << [false, file, file_data]
|
3794
|
-
end
|
3795
|
-
end
|
3796
|
-
@data['내용설정']['내용'] << []
|
3797
|
-
@data['내용설정']['내용'].pop
|
3798
|
-
}
|
3799
|
-
}
|
3674
|
+
m.reverse.each do |i|
|
3675
|
+
@data['제목설정']['제목'].delete_at(i)
|
3676
|
+
end
|
3677
|
+
@data['제목설정']['제목'].delete(nil)
|
3800
3678
|
}
|
3801
3679
|
}
|
3802
3680
|
}
|
3803
|
-
|
3804
|
-
tab_item('이미지설정'){
|
3805
|
-
horizontal_box{
|
3806
|
-
vertical_box{
|
3681
|
+
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3807
3682
|
stretchy false
|
3808
|
-
|
3809
|
-
|
3810
|
-
|
3811
|
-
|
3812
|
-
file = open_file
|
3813
|
-
if file != nil
|
3814
|
-
file_name = file.split("\\")[-1]
|
3815
|
-
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3816
|
-
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3817
|
-
@data['이미지설정']['이미지'].pop
|
3818
|
-
end
|
3819
|
-
}
|
3820
|
-
}
|
3683
|
+
on_toggled{ |c|
|
3684
|
+
if c.checked?
|
3685
|
+
@data['제목설정']['랜덤사용'].checked = false
|
3686
|
+
end
|
3821
3687
|
}
|
3822
|
-
|
3823
|
-
|
3824
|
-
|
3825
|
-
|
3826
|
-
|
3827
|
-
|
3828
|
-
|
3829
|
-
|
3830
|
-
|
3831
|
-
|
3832
|
-
|
3833
|
-
|
3834
|
-
|
3835
|
-
|
3836
|
-
|
3837
|
-
|
3838
|
-
|
3839
|
-
|
3840
|
-
|
3841
|
-
|
3842
|
-
|
3843
|
-
|
3844
|
-
|
3845
|
-
|
3846
|
-
|
3847
|
-
|
3848
|
-
top 1
|
3849
|
-
left 3
|
3850
|
-
on_clicked{
|
3851
|
-
m = Array.new
|
3852
|
-
for n in 0..@data['이미지설정']['이미지'].length-1
|
3853
|
-
if @data['이미지설정']['이미지'][n][0] == true
|
3854
|
-
m << n
|
3855
|
-
end
|
3856
|
-
end
|
3688
|
+
}
|
3689
|
+
@data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3690
|
+
stretchy false
|
3691
|
+
on_toggled{ |c|
|
3692
|
+
if c.checked?
|
3693
|
+
@data['제목설정']['순서사용'].checked = false
|
3694
|
+
end
|
3695
|
+
}
|
3696
|
+
}
|
3697
|
+
}
|
3698
|
+
vertical_separator{
|
3699
|
+
stretchy false
|
3700
|
+
}
|
3701
|
+
horizontal_box{
|
3702
|
+
stretchy false
|
3703
|
+
grid{
|
3704
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3705
|
+
|
3706
|
+
|
3707
|
+
}}}
|
3708
|
+
horizontal_box{
|
3709
|
+
stretchy false
|
3710
|
+
grid{
|
3711
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3712
|
+
} } }
|
3713
|
+
|
3857
3714
|
|
3858
|
-
|
3859
|
-
|
3860
|
-
|
3715
|
+
table{
|
3716
|
+
checkbox_column('선택'){
|
3717
|
+
editable true
|
3718
|
+
}
|
3719
|
+
text_column('제목'){
|
3861
3720
|
|
3862
|
-
|
3863
|
-
}
|
3864
|
-
}
|
3865
|
-
}
|
3866
|
-
@data['이미지설정']['순서사용'] = checkbox('순서사용'){
|
3867
|
-
stretchy false
|
3868
|
-
on_toggled{ |c|
|
3869
|
-
if c.checked?
|
3870
|
-
@data['이미지설정']['랜덤사용'].checked = false
|
3871
|
-
end
|
3872
|
-
}
|
3873
|
-
}
|
3874
|
-
@data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3875
|
-
stretchy false
|
3876
|
-
on_toggled{ |c|
|
3877
|
-
if c.checked?
|
3878
|
-
@data['이미지설정']['순서사용'].checked = false
|
3879
|
-
end
|
3880
|
-
}
|
3881
|
-
}
|
3882
|
-
}
|
3883
|
-
table{
|
3884
|
-
checkbox_column('선택'){
|
3885
|
-
editable true
|
3886
|
-
}
|
3887
|
-
text_column('이미지파일'){
|
3721
|
+
}
|
3888
3722
|
|
3889
|
-
|
3723
|
+
cell_rows @data['제목설정']['제목']
|
3724
|
+
}
|
3725
|
+
|
3890
3726
|
|
3891
|
-
|
3892
|
-
|
3893
|
-
|
3894
|
-
|
3895
|
-
|
3896
|
-
|
3897
|
-
|
3898
|
-
|
3899
|
-
|
3900
|
-
|
3901
|
-
|
3902
|
-
|
3903
|
-
|
3904
|
-
|
3905
|
-
|
3906
|
-
|
3907
|
-
|
3908
|
-
|
3909
|
-
|
3910
|
-
|
3911
|
-
@data['이미지설정']['이미지'].pop
|
3912
|
-
}
|
3913
|
-
}
|
3727
|
+
}
|
3728
|
+
vertical_separator{
|
3729
|
+
stretchy false
|
3730
|
+
}
|
3731
|
+
vertical_box{
|
3732
|
+
horizontal_box{
|
3733
|
+
stretchy false
|
3734
|
+
button('내용불러오기'){
|
3735
|
+
on_clicked{
|
3736
|
+
file = open_file
|
3737
|
+
if file != nil
|
3738
|
+
file_name = file.split("\\")[-1]
|
3739
|
+
file_data = File.open(file,'r', :encoding => 'utf-8').read()
|
3740
|
+
if file_data.split("\n").length < 2
|
3741
|
+
file_data = file_data + "\n"
|
3742
|
+
end
|
3743
|
+
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3744
|
+
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3745
|
+
@data['내용설정']['내용'].pop
|
3746
|
+
end
|
3914
3747
|
}
|
3915
|
-
|
3916
|
-
}
|
3917
|
-
vertical_separator{
|
3918
|
-
stretchy false
|
3919
3748
|
}
|
3920
3749
|
|
3921
|
-
|
3922
|
-
|
3923
|
-
|
3924
|
-
|
3925
|
-
|
3926
|
-
|
3927
|
-
|
3928
|
-
|
3929
|
-
|
3930
|
-
|
3931
|
-
|
3932
|
-
|
3933
|
-
|
3934
|
-
if @data['image_type'][1].checked?
|
3935
|
-
@data['image_type'][0].checked = false
|
3936
|
-
@data['image_type'][2].checked = false
|
3937
|
-
end
|
3938
|
-
}
|
3939
|
-
}
|
3940
|
-
@data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
|
3941
|
-
on_toggled{
|
3942
|
-
if @data['image_type'][2].checked?
|
3943
|
-
@data['image_type'][1].checked = false
|
3944
|
-
@data['image_type'][0].checked = false
|
3945
|
-
end
|
3946
|
-
}
|
3947
|
-
}
|
3750
|
+
}
|
3751
|
+
horizontal_box{
|
3752
|
+
stretchy false
|
3753
|
+
grid{
|
3754
|
+
button('전체선택'){
|
3755
|
+
top 1
|
3756
|
+
left 1
|
3757
|
+
on_clicked{
|
3758
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3759
|
+
@data['내용설정']['내용'][n][0] = true
|
3760
|
+
@data['내용설정']['내용'] << []
|
3761
|
+
@data['내용설정']['내용'].pop
|
3762
|
+
end
|
3948
3763
|
}
|
3949
|
-
|
3950
|
-
|
3951
|
-
|
3952
|
-
|
3953
|
-
|
3954
|
-
|
3955
|
-
|
3956
|
-
|
3957
|
-
|
3958
|
-
|
3959
|
-
on_clicked{
|
3960
|
-
file = open_file
|
3961
|
-
if file != nil
|
3962
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3963
|
-
@data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
|
3964
|
-
end
|
3965
|
-
}
|
3966
|
-
}
|
3967
|
-
@data['이미지설정']['이미지글자1크기1'] = entry{
|
3968
|
-
top 0
|
3969
|
-
left 2
|
3970
|
-
text 'ex) 33'
|
3971
|
-
}
|
3972
|
-
label('pt'){
|
3973
|
-
top 0
|
3974
|
-
left 3
|
3975
|
-
}
|
3976
|
-
@data['이미지설정']['이미지글자1크기2'] = entry{
|
3977
|
-
top 0
|
3978
|
-
left 4
|
3979
|
-
text 'ex) 55'
|
3980
|
-
}
|
3981
|
-
label('pt'){
|
3982
|
-
top 0
|
3983
|
-
left 5
|
3984
|
-
}
|
3985
|
-
@data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
|
3986
|
-
top 0
|
3987
|
-
left 6
|
3988
|
-
}
|
3989
|
-
|
3990
|
-
@data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
|
3991
|
-
top 1
|
3992
|
-
left 0
|
3993
|
-
}
|
3994
|
-
button('가져오기'){
|
3995
|
-
top 1
|
3996
|
-
left 1
|
3997
|
-
on_clicked{
|
3998
|
-
file = open_file
|
3999
|
-
if file != nil
|
4000
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4001
|
-
@data['이미지설정']['이미지글자2'] = file_data.split("\n")
|
4002
|
-
end
|
4003
|
-
}
|
4004
|
-
}
|
4005
|
-
@data['이미지설정']['이미지글자2크기1'] = entry{
|
4006
|
-
top 1
|
4007
|
-
left 2
|
4008
|
-
text 'ex) 33'
|
4009
|
-
}
|
4010
|
-
label('pt'){
|
4011
|
-
top 1
|
4012
|
-
left 3
|
4013
|
-
}
|
4014
|
-
@data['이미지설정']['이미지글자2크기2'] = entry{
|
4015
|
-
top 1
|
4016
|
-
left 4
|
4017
|
-
text 'ex) 55'
|
4018
|
-
}
|
4019
|
-
label('pt'){
|
4020
|
-
top 1
|
4021
|
-
left 5
|
4022
|
-
}
|
4023
|
-
@data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
|
4024
|
-
top 1
|
4025
|
-
left 6
|
4026
|
-
}
|
4027
|
-
@data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
|
4028
|
-
top 2
|
4029
|
-
left 0
|
4030
|
-
}
|
4031
|
-
@data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
|
4032
|
-
top 3
|
4033
|
-
left 0
|
4034
|
-
}
|
4035
|
-
@data['이미지설정']['테두리크기1'] = entry{
|
4036
|
-
top 3
|
4037
|
-
left 2
|
4038
|
-
text 'ex) 1'
|
4039
|
-
}
|
4040
|
-
label('pt'){
|
4041
|
-
top 3
|
4042
|
-
left 3
|
4043
|
-
}
|
4044
|
-
@data['이미지설정']['테두리크기2'] = entry{
|
4045
|
-
top 3
|
4046
|
-
left 4
|
4047
|
-
text 'ex) 33'
|
4048
|
-
}
|
4049
|
-
label('pt'){
|
4050
|
-
top 3
|
4051
|
-
left 5
|
4052
|
-
}
|
4053
|
-
|
3764
|
+
}
|
3765
|
+
button('선택해제'){
|
3766
|
+
top 1
|
3767
|
+
left 2
|
3768
|
+
on_clicked{
|
3769
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3770
|
+
@data['내용설정']['내용'][n][0] = false
|
3771
|
+
@data['내용설정']['내용'] << []
|
3772
|
+
@data['내용설정']['내용'].pop
|
3773
|
+
end
|
4054
3774
|
}
|
3775
|
+
}
|
3776
|
+
button('삭제하기'){
|
3777
|
+
top 1
|
3778
|
+
left 3
|
3779
|
+
on_clicked{
|
3780
|
+
m = Array.new
|
3781
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3782
|
+
if @data['내용설정']['내용'][n][0] == true
|
3783
|
+
m << n
|
3784
|
+
end
|
3785
|
+
end
|
4055
3786
|
|
4056
|
-
|
4057
|
-
|
4058
|
-
|
4059
|
-
|
4060
|
-
if @data['image_size'][0].checked?
|
4061
|
-
@data['image_size'][1].checked = false
|
4062
|
-
@data['image_size'][2].checked = false
|
4063
|
-
@data['image_size'][3].checked = false
|
4064
|
-
@data['image_size'][4].checked = false
|
4065
|
-
end
|
4066
|
-
}
|
4067
|
-
}
|
4068
|
-
@data['image_size'][1] = checkbox('740 px'){
|
4069
|
-
on_toggled{
|
4070
|
-
if @data['image_size'][1].checked?
|
4071
|
-
@data['image_size'][0].checked = false
|
4072
|
-
@data['image_size'][2].checked = false
|
4073
|
-
@data['image_size'][3].checked = false
|
4074
|
-
@data['image_size'][4].checked = false
|
4075
|
-
end
|
4076
|
-
}
|
4077
|
-
}
|
4078
|
-
@data['image_size'][2] = checkbox('650 px'){
|
4079
|
-
on_toggled{
|
4080
|
-
if @data['image_size'][2].checked?
|
4081
|
-
@data['image_size'][1].checked = false
|
4082
|
-
@data['image_size'][0].checked = false
|
4083
|
-
@data['image_size'][3].checked = false
|
4084
|
-
@data['image_size'][4].checked = false
|
4085
|
-
end
|
4086
|
-
}
|
4087
|
-
}
|
4088
|
-
@data['image_size'][3] = checkbox('550 px'){
|
4089
|
-
on_toggled{
|
4090
|
-
if @data['image_size'][3].checked?
|
4091
|
-
@data['image_size'][1].checked = false
|
4092
|
-
@data['image_size'][2].checked = false
|
4093
|
-
@data['image_size'][0].checked = false
|
4094
|
-
@data['image_size'][4].checked = false
|
4095
|
-
end
|
4096
|
-
}
|
4097
|
-
}
|
4098
|
-
@data['image_size'][4] = checkbox('480 px'){
|
4099
|
-
on_toggled{
|
4100
|
-
if @data['image_size'][4].checked?
|
4101
|
-
@data['image_size'][1].checked = false
|
4102
|
-
@data['image_size'][2].checked = false
|
4103
|
-
@data['image_size'][3].checked = false
|
4104
|
-
@data['image_size'][0].checked = false
|
4105
|
-
end
|
4106
|
-
}
|
4107
|
-
}
|
3787
|
+
m.reverse.each do |i|
|
3788
|
+
@data['내용설정']['내용'].delete_at(i)
|
3789
|
+
end
|
3790
|
+
@data['내용설정']['내용'].delete(nil)
|
4108
3791
|
}
|
4109
3792
|
}
|
4110
3793
|
}
|
4111
|
-
|
4112
|
-
|
4113
|
-
tab_item('포스트설정1'){
|
4114
|
-
horizontal_box{
|
4115
|
-
vertical_box{
|
3794
|
+
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
4116
3795
|
stretchy false
|
4117
|
-
|
4118
|
-
|
4119
|
-
|
4120
|
-
|
4121
|
-
|
4122
|
-
|
4123
|
-
|
4124
|
-
|
4125
|
-
|
4126
|
-
|
4127
|
-
|
4128
|
-
|
4129
|
-
|
4130
|
-
|
4131
|
-
|
4132
|
-
|
4133
|
-
|
4134
|
-
|
4135
|
-
|
4136
|
-
|
4137
|
-
|
4138
|
-
|
4139
|
-
|
4140
|
-
|
4141
|
-
|
4142
|
-
|
4143
|
-
|
4144
|
-
|
4145
|
-
|
4146
|
-
|
4147
|
-
|
4148
|
-
|
4149
|
-
|
4150
|
-
|
4151
|
-
|
4152
|
-
|
4153
|
-
}
|
4154
|
-
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4155
|
-
top 2
|
4156
|
-
left 1
|
4157
|
-
text '최소수량'
|
4158
|
-
}
|
4159
|
-
label('~'){
|
4160
|
-
top 2
|
4161
|
-
left 2
|
4162
|
-
}
|
4163
|
-
@data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
|
4164
|
-
top 2
|
4165
|
-
left 3
|
4166
|
-
text '최대수량'
|
4167
|
-
}
|
4168
|
-
label('ㄴ'){
|
4169
|
-
top 3
|
4170
|
-
left 2
|
4171
|
-
}
|
4172
|
-
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4173
|
-
top 3
|
4174
|
-
left 3
|
4175
|
-
on_toggled{
|
4176
|
-
if @data['포스트설정']['제목앞'].checked? == true
|
4177
|
-
if @data['포스트설정']['제목뒤'].checked?
|
4178
|
-
@data['포스트설정']['제목뒤'].checked = false
|
4179
|
-
end
|
4180
|
-
end
|
4181
|
-
}
|
4182
|
-
}
|
4183
|
-
label('ㄴ'){
|
4184
|
-
top 4
|
4185
|
-
left 2
|
4186
|
-
}
|
4187
|
-
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4188
|
-
top 4
|
4189
|
-
left 3
|
4190
|
-
on_toggled{
|
4191
|
-
if @data['포스트설정']['제목뒤'].checked? == true
|
4192
|
-
if @data['포스트설정']['제목앞'].checked?
|
4193
|
-
@data['포스트설정']['제목앞'].checked = false
|
4194
|
-
end
|
4195
|
-
end
|
4196
|
-
}
|
4197
|
-
}
|
4198
|
-
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4199
|
-
top 4
|
4200
|
-
left 0
|
4201
|
-
}
|
4202
|
-
|
4203
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4204
|
-
top 5
|
4205
|
-
left 0
|
4206
|
-
}
|
4207
|
-
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4208
|
-
top 6
|
4209
|
-
left 0
|
4210
|
-
}
|
4211
|
-
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4212
|
-
top 7
|
4213
|
-
left 0
|
4214
|
-
}
|
4215
|
-
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4216
|
-
top 7
|
4217
|
-
left 1
|
4218
|
-
text '최소수량'
|
4219
|
-
}
|
4220
|
-
label('~'){
|
4221
|
-
top 7
|
4222
|
-
left 2
|
4223
|
-
}
|
4224
|
-
@data['포스트설정']['키워드삽입끝숫자'] = entry(){
|
4225
|
-
top 7
|
4226
|
-
left 3
|
4227
|
-
text '최대수량'
|
4228
|
-
}
|
4229
|
-
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4230
|
-
top 8
|
4231
|
-
left 0
|
4232
|
-
}
|
4233
|
-
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4234
|
-
top 8
|
4235
|
-
left 1
|
4236
|
-
text 'URL'
|
4237
|
-
}
|
4238
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('내용을 키워드 기반으로 자동 생성해서 포스팅'){
|
4239
|
-
top 9
|
4240
|
-
left 0
|
4241
|
-
on_toggled{
|
4242
|
-
if @data['포스트설정']['내용을자동생성'].checked?
|
4243
|
-
if @data['포스트설정']['내용과자동생성'].checked?
|
4244
|
-
@data['포스트설정']['내용과자동생성'].checked = false
|
4245
|
-
end
|
4246
|
-
end
|
4247
|
-
}
|
4248
|
-
}
|
3796
|
+
on_toggled{ |c|
|
3797
|
+
if c.checked?
|
3798
|
+
@data['내용설정']['랜덤사용'].checked = false
|
3799
|
+
end
|
3800
|
+
}
|
3801
|
+
}
|
3802
|
+
@data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3803
|
+
stretchy false
|
3804
|
+
on_toggled{ |c|
|
3805
|
+
if c.checked?
|
3806
|
+
@data['내용설정']['순서사용'].checked = false
|
3807
|
+
end
|
3808
|
+
}
|
3809
|
+
}
|
3810
|
+
}
|
3811
|
+
vertical_separator{
|
3812
|
+
stretchy false
|
3813
|
+
}
|
3814
|
+
horizontal_box{
|
3815
|
+
stretchy false
|
3816
|
+
grid{
|
3817
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
3818
|
+
|
3819
|
+
|
3820
|
+
}}}
|
3821
|
+
horizontal_box{
|
3822
|
+
stretchy false
|
3823
|
+
grid{
|
3824
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3825
|
+
} } }
|
3826
|
+
|
3827
|
+
table{
|
3828
|
+
checkbox_column('선택'){
|
3829
|
+
editable true
|
3830
|
+
}
|
3831
|
+
text_column('내용파일'){
|
4249
3832
|
|
4250
|
-
|
4251
|
-
top 10
|
4252
|
-
left 0
|
4253
|
-
}
|
3833
|
+
}
|
4254
3834
|
|
4255
|
-
|
4256
|
-
|
4257
|
-
left 1
|
4258
|
-
text 'api key'
|
4259
|
-
}
|
3835
|
+
cell_rows @data['내용설정']['내용']
|
3836
|
+
}
|
4260
3837
|
|
4261
|
-
|
4262
|
-
|
4263
|
-
|
4264
|
-
|
3838
|
+
horizontal_box{
|
3839
|
+
stretchy false
|
3840
|
+
@data['이미지설정']['폴더경로2'] = entry{
|
3841
|
+
stretchy false
|
3842
|
+
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3843
|
+
}
|
4265
3844
|
|
4266
|
-
|
4267
|
-
|
4268
|
-
|
4269
|
-
}
|
3845
|
+
button('폴더째로 불러오기') {
|
3846
|
+
on_clicked {
|
3847
|
+
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')
|
4270
3848
|
|
4271
|
-
|
4272
|
-
|
4273
|
-
|
4274
|
-
|
4275
|
-
|
4276
|
-
|
4277
|
-
|
4278
|
-
|
4279
|
-
|
4280
|
-
|
4281
|
-
|
4282
|
-
|
4283
|
-
|
4284
|
-
top 11+ aa1
|
4285
|
-
left 0
|
4286
|
-
}
|
4287
|
-
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4288
|
-
top 12+ aa1
|
4289
|
-
left 0
|
4290
|
-
}
|
4291
|
-
button('설정 파일 불러오기'){
|
4292
|
-
top 12+ aa1
|
4293
|
-
left 1
|
4294
|
-
on_clicked{
|
4295
|
-
file = open_file
|
4296
|
-
if file != nil
|
4297
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4298
|
-
file_data.split("\n").each do |i|
|
4299
|
-
key = i.split('>')[0]
|
4300
|
-
v = i.split('>')[1].to_s.split(',')
|
4301
|
-
@data['포스트설정']['내용자동변경값'][key] = v
|
3849
|
+
# 경로가 유효한지 확인
|
3850
|
+
if Dir.exist?(path)
|
3851
|
+
Dir.entries(path).each do |file|
|
3852
|
+
if file == '.' or file == '..'
|
3853
|
+
next
|
3854
|
+
else
|
3855
|
+
begin
|
3856
|
+
# 파일을 열고 내용을 읽어서 추가
|
3857
|
+
file_data = File.open(path + '/' + file, 'r', encoding: 'utf-8').read
|
3858
|
+
@data['내용설정']['내용'] << [false, file, file_data]
|
3859
|
+
rescue => e
|
3860
|
+
# 파일을 열 수 없는 경우, 오류 메시지 출력
|
3861
|
+
puts "파일을 열 수 없습니다: #{file}, 오류: #{e.message}"
|
4302
3862
|
end
|
4303
3863
|
end
|
4304
|
-
|
4305
|
-
}
|
4306
|
-
@data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
|
4307
|
-
top 12+ aa1
|
4308
|
-
left 3
|
4309
|
-
}
|
4310
|
-
|
4311
|
-
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4312
|
-
top 13+ aa1
|
4313
|
-
left 0
|
4314
|
-
}
|
4315
|
-
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4316
|
-
top 13+ aa1
|
4317
|
-
left 1
|
4318
|
-
text '최소수량'
|
4319
|
-
}
|
4320
|
-
label('~'){
|
4321
|
-
top 13+ aa1
|
4322
|
-
left 2
|
4323
|
-
}
|
4324
|
-
@data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
|
4325
|
-
top 13+ aa1
|
4326
|
-
left 3
|
4327
|
-
text '최대수량'
|
4328
|
-
}
|
4329
|
-
|
4330
|
-
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4331
|
-
top 14+ aa1
|
4332
|
-
left 0
|
4333
|
-
}
|
3864
|
+
end
|
4334
3865
|
|
4335
|
-
|
4336
|
-
|
4337
|
-
|
4338
|
-
|
4339
|
-
|
3866
|
+
# 내용 배열에서 마지막 빈 항목 제거
|
3867
|
+
@data['내용설정']['내용'] << []
|
3868
|
+
@data['내용설정']['내용'].pop
|
3869
|
+
else
|
3870
|
+
# 경로가 유효하지 않을 경우, 오류 메시지 출력
|
3871
|
+
puts "경로가 존재하지 않습니다: #{path}"
|
3872
|
+
end
|
4340
3873
|
}
|
4341
3874
|
}
|
4342
|
-
|
4343
|
-
|
4344
|
-
|
3875
|
+
}
|
3876
|
+
}
|
3877
|
+
}
|
3878
|
+
}
|
3879
|
+
tab_item('이미지설정'){
|
3880
|
+
horizontal_box{
|
3881
|
+
vertical_box{
|
3882
|
+
stretchy false
|
3883
|
+
horizontal_box{
|
3884
|
+
stretchy false
|
3885
|
+
button('이미지불러오기'){
|
3886
|
+
on_clicked{
|
3887
|
+
file = open_file
|
3888
|
+
if file != nil
|
3889
|
+
file_name = file.split("\\")[-1]
|
3890
|
+
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3891
|
+
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3892
|
+
@data['이미지설정']['이미지'].pop
|
3893
|
+
end
|
3894
|
+
}
|
4345
3895
|
}
|
4346
|
-
|
4347
|
-
|
3896
|
+
}
|
3897
|
+
horizontal_box{
|
3898
|
+
stretchy false
|
4348
3899
|
grid{
|
4349
|
-
|
4350
|
-
|
4351
|
-
|
3900
|
+
button('전체선택'){
|
3901
|
+
top 1
|
3902
|
+
left 1
|
3903
|
+
on_clicked{
|
3904
|
+
for n in 0..@data['이미지설정']['이미지'].length-1
|
3905
|
+
@data['이미지설정']['이미지'][n][0] = true
|
3906
|
+
@data['이미지설정']['이미지'] << []
|
3907
|
+
@data['이미지설정']['이미지'].pop
|
3908
|
+
end
|
4352
3909
|
}
|
4353
|
-
|
4354
|
-
|
4355
|
-
|
4356
|
-
|
3910
|
+
}
|
3911
|
+
button('선택해제'){
|
3912
|
+
top 1
|
3913
|
+
left 2
|
3914
|
+
on_clicked{
|
3915
|
+
for n in 0..@data['이미지설정']['이미지'].length-1
|
3916
|
+
@data['이미지설정']['이미지'][n][0] = false
|
3917
|
+
@data['이미지설정']['이미지'] << []
|
3918
|
+
@data['이미지설정']['이미지'].pop
|
3919
|
+
end
|
4357
3920
|
}
|
3921
|
+
}
|
3922
|
+
button('삭제하기'){
|
3923
|
+
top 1
|
3924
|
+
left 3
|
3925
|
+
on_clicked{
|
3926
|
+
m = Array.new
|
3927
|
+
for n in 0..@data['이미지설정']['이미지'].length-1
|
3928
|
+
if @data['이미지설정']['이미지'][n][0] == true
|
3929
|
+
m << n
|
3930
|
+
end
|
3931
|
+
end
|
4358
3932
|
|
4359
|
-
|
4360
|
-
|
4361
|
-
|
4362
|
-
}
|
4363
|
-
@data['포스트설정']['제외하고등록값'] = entry{
|
4364
|
-
top 1
|
4365
|
-
left 1
|
4366
|
-
text '특정단어'
|
4367
|
-
}
|
3933
|
+
m.reverse.each do |i|
|
3934
|
+
@data['이미지설정']['이미지'].delete_at(i)
|
3935
|
+
end
|
4368
3936
|
|
4369
|
-
|
4370
|
-
top 2
|
4371
|
-
left 0
|
4372
|
-
}
|
4373
|
-
@data['포스트설정']['단어링크적용단어'] = entry{
|
4374
|
-
top 2
|
4375
|
-
left 1
|
4376
|
-
text '특정단어'
|
3937
|
+
@data['이미지설정']['이미지'].delete(nil)
|
4377
3938
|
}
|
4378
|
-
|
4379
|
-
|
4380
|
-
|
4381
|
-
|
3939
|
+
}
|
3940
|
+
}
|
3941
|
+
@data['이미지설정']['순서사용'] = checkbox('순서사용'){
|
3942
|
+
stretchy false
|
3943
|
+
on_toggled{ |c|
|
3944
|
+
if c.checked?
|
3945
|
+
@data['이미지설정']['랜덤사용'].checked = false
|
3946
|
+
end
|
4382
3947
|
}
|
4383
|
-
|
4384
|
-
|
4385
|
-
|
4386
|
-
|
3948
|
+
}
|
3949
|
+
@data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3950
|
+
stretchy false
|
3951
|
+
on_toggled{ |c|
|
3952
|
+
if c.checked?
|
3953
|
+
@data['이미지설정']['순서사용'].checked = false
|
3954
|
+
end
|
4387
3955
|
}
|
3956
|
+
}
|
3957
|
+
}
|
3958
|
+
table{
|
3959
|
+
checkbox_column('선택'){
|
3960
|
+
editable true
|
3961
|
+
}
|
3962
|
+
text_column('이미지파일'){
|
4388
3963
|
|
4389
|
-
|
4390
|
-
top 4
|
4391
|
-
left 0
|
4392
|
-
}
|
4393
|
-
@data['포스트설정']['단어사진으로변경단어'] = entry{
|
4394
|
-
top 4
|
4395
|
-
left 1
|
4396
|
-
text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
|
4397
|
-
}
|
4398
|
-
label('ㄴ적용하려는 링크 URL 입력'){
|
4399
|
-
top 5
|
4400
|
-
left 0
|
4401
|
-
}
|
3964
|
+
}
|
4402
3965
|
|
4403
|
-
|
4404
|
-
|
4405
|
-
|
4406
|
-
|
4407
|
-
|
3966
|
+
cell_rows @data['이미지설정']['이미지']
|
3967
|
+
}
|
3968
|
+
horizontal_box{
|
3969
|
+
stretchy false
|
3970
|
+
@data['이미지설정']['폴더경로'] = entry{
|
3971
|
+
stretchy false
|
3972
|
+
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
3973
|
+
}
|
4408
3974
|
|
4409
|
-
|
4410
|
-
|
4411
|
-
|
4412
|
-
|
4413
|
-
|
4414
|
-
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
|
4421
|
-
}
|
4422
|
-
@data['포스트설정']['영상으로변경단어'] = entry{
|
4423
|
-
top 7
|
4424
|
-
left 1
|
4425
|
-
text '특정단어'
|
4426
|
-
}
|
4427
|
-
label('ㄴ동영상만 있는 폴더 지정하기'){
|
4428
|
-
top 8
|
4429
|
-
left 0
|
4430
|
-
}
|
4431
|
-
@data['포스트설정']['동영상폴더위치'] = entry{
|
4432
|
-
top 8
|
4433
|
-
left 1
|
4434
|
-
text "영상폴더위치 ex) C:\\영상\\폴더3"
|
4435
|
-
}
|
4436
|
-
@data['포스트설정']['지도로변경'] = checkbox('내용 특정단어를 지도로 변경'){
|
4437
|
-
top 9
|
4438
|
-
left 0
|
4439
|
-
}
|
4440
|
-
@data['포스트설정']['지도로변경단어'] = entry{
|
4441
|
-
top 9
|
4442
|
-
left 1
|
4443
|
-
text '특정단어'
|
4444
|
-
}
|
4445
|
-
label('ㄴ지도 삽입경우 적용 주소 입력'){
|
4446
|
-
top 10
|
4447
|
-
left 0
|
4448
|
-
}
|
4449
|
-
@data['포스트설정']['지도주소'] = entry{
|
4450
|
-
top 10
|
4451
|
-
left 1
|
4452
|
-
text 'ex) OO시 OO구 OO동 270-68'
|
4453
|
-
}
|
4454
|
-
@data['포스트설정']['인용구변경'] = checkbox('내용 특정단어를 인용구로 적용'){
|
4455
|
-
top 11
|
4456
|
-
left 0
|
4457
|
-
}
|
4458
|
-
@data['포스트설정']['인용구변경단어'] = entry{
|
4459
|
-
top 11
|
4460
|
-
left 1
|
4461
|
-
text '특정단어'
|
4462
|
-
}
|
4463
|
-
label('ㄴ인용구 사용시 들어갈 문구'){
|
4464
|
-
top 12
|
4465
|
-
left 0
|
4466
|
-
}
|
4467
|
-
button('설정 파일 불러오기'){
|
4468
|
-
top 12
|
4469
|
-
left 1
|
4470
|
-
on_clicked{
|
4471
|
-
file = open_file
|
4472
|
-
if file != nil
|
4473
|
-
file_data = File.open(file, 'r').read
|
4474
|
-
@data['포스트설정']['인용구'] = file_data.split(',')
|
3975
|
+
button('폴더째로 불러오기') {
|
3976
|
+
on_clicked {
|
3977
|
+
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')
|
3978
|
+
|
3979
|
+
# 경로가 유효한지 확인
|
3980
|
+
if Dir.exist?(path)
|
3981
|
+
Dir.entries(path).each do |file|
|
3982
|
+
if file == '.' or file == '..'
|
3983
|
+
next
|
3984
|
+
else
|
3985
|
+
# 폴더 내의 파일을 이미지 리스트에 추가
|
3986
|
+
@data['이미지설정']['이미지'] << [false, file, path + "\\" + file.force_encoding('utf-8')]
|
4475
3987
|
end
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
text '탬플릿으로 전활시킬 특정단어'
|
4486
|
-
}
|
3988
|
+
end
|
3989
|
+
|
3990
|
+
# 마지막 빈 항목 추가 후 제거 (원래 로직에 맞춰)
|
3991
|
+
@data['이미지설정']['이미지'] << []
|
3992
|
+
@data['이미지설정']['이미지'].pop
|
3993
|
+
else
|
3994
|
+
# 경로가 존재하지 않으면 경고 메시지 출력
|
3995
|
+
puts "경로가 존재하지 않습니다: #{path}"
|
3996
|
+
end
|
4487
3997
|
}
|
4488
3998
|
}
|
3999
|
+
}
|
4000
|
+
|
4489
4001
|
}
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4494
|
-
|
4495
|
-
|
4496
|
-
|
4497
|
-
|
4498
|
-
|
4499
|
-
|
4500
|
-
|
4501
|
-
|
4502
|
-
|
4503
|
-
@data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
|
4504
|
-
top 2
|
4505
|
-
left 0
|
4506
|
-
}
|
4507
|
-
@data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
|
4508
|
-
top 3
|
4509
|
-
left 0
|
4510
|
-
on_toggled{
|
4511
|
-
if @data['포스트설정']['중앙정렬'].checked?
|
4512
|
-
@data['포스트설정']['좌측정렬'].checked = false
|
4513
|
-
@data['포스트설정']['우측정렬'].checked = false
|
4514
|
-
end
|
4515
|
-
}
|
4002
|
+
vertical_separator{
|
4003
|
+
stretchy false
|
4004
|
+
}
|
4005
|
+
|
4006
|
+
vertical_box{
|
4007
|
+
horizontal_box{
|
4008
|
+
stretchy false
|
4009
|
+
@data['image_type'][0] = checkbox('저장 사진 사용'){
|
4010
|
+
on_toggled{
|
4011
|
+
if @data['image_type'][0].checked?
|
4012
|
+
@data['image_type'][1].checked = false
|
4013
|
+
@data['image_type'][2].checked = false
|
4014
|
+
end
|
4516
4015
|
}
|
4517
|
-
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4522
|
-
|
4523
|
-
|
4524
|
-
end
|
4525
|
-
}
|
4016
|
+
}
|
4017
|
+
@data['image_type'][1] = checkbox('색상 사진 사용'){
|
4018
|
+
on_toggled{
|
4019
|
+
if @data['image_type'][1].checked?
|
4020
|
+
@data['image_type'][0].checked = false
|
4021
|
+
@data['image_type'][2].checked = false
|
4022
|
+
end
|
4526
4023
|
}
|
4527
|
-
|
4528
|
-
|
4529
|
-
|
4530
|
-
|
4531
|
-
|
4532
|
-
|
4533
|
-
|
4534
|
-
end
|
4535
|
-
}
|
4024
|
+
}
|
4025
|
+
@data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
|
4026
|
+
on_toggled{
|
4027
|
+
if @data['image_type'][2].checked?
|
4028
|
+
@data['image_type'][1].checked = false
|
4029
|
+
@data['image_type'][0].checked = false
|
4030
|
+
end
|
4536
4031
|
}
|
4537
|
-
|
4538
|
-
|
4539
|
-
|
4032
|
+
}
|
4033
|
+
}
|
4034
|
+
|
4035
|
+
grid{
|
4036
|
+
stretchy false
|
4037
|
+
@data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
|
4038
|
+
top 0
|
4039
|
+
left 0
|
4040
|
+
}
|
4041
|
+
button('가져오기'){
|
4042
|
+
top 0
|
4043
|
+
left 1
|
4044
|
+
on_clicked{
|
4045
|
+
file = open_file
|
4046
|
+
if file != nil
|
4047
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4048
|
+
@data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
|
4049
|
+
end
|
4540
4050
|
}
|
4541
|
-
|
4542
|
-
|
4543
|
-
|
4544
|
-
|
4545
|
-
|
4546
|
-
|
4547
|
-
|
4548
|
-
|
4549
|
-
|
4550
|
-
|
4551
|
-
|
4552
|
-
|
4553
|
-
|
4554
|
-
|
4555
|
-
|
4556
|
-
|
4557
|
-
|
4558
|
-
|
4559
|
-
|
4560
|
-
|
4561
|
-
|
4562
|
-
|
4563
|
-
|
4564
|
-
|
4565
|
-
|
4566
|
-
|
4567
|
-
|
4568
|
-
|
4569
|
-
|
4570
|
-
|
4571
|
-
|
4572
|
-
|
4051
|
+
}
|
4052
|
+
@data['이미지설정']['이미지글자1크기1'] = entry{
|
4053
|
+
top 0
|
4054
|
+
left 2
|
4055
|
+
text 'ex) 33'
|
4056
|
+
}
|
4057
|
+
label('pt'){
|
4058
|
+
top 0
|
4059
|
+
left 3
|
4060
|
+
}
|
4061
|
+
@data['이미지설정']['이미지글자1크기2'] = entry{
|
4062
|
+
top 0
|
4063
|
+
left 4
|
4064
|
+
text 'ex) 55'
|
4065
|
+
}
|
4066
|
+
label('pt'){
|
4067
|
+
top 0
|
4068
|
+
left 5
|
4069
|
+
}
|
4070
|
+
@data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
|
4071
|
+
top 0
|
4072
|
+
left 6
|
4073
|
+
}
|
4074
|
+
|
4075
|
+
@data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
|
4076
|
+
top 1
|
4077
|
+
left 0
|
4078
|
+
}
|
4079
|
+
button('가져오기'){
|
4080
|
+
top 1
|
4081
|
+
left 1
|
4082
|
+
on_clicked{
|
4083
|
+
file = open_file
|
4084
|
+
if file != nil
|
4085
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4086
|
+
@data['이미지설정']['이미지글자2'] = file_data.split("\n")
|
4087
|
+
end
|
4573
4088
|
}
|
4089
|
+
}
|
4090
|
+
@data['이미지설정']['이미지글자2크기1'] = entry{
|
4091
|
+
top 1
|
4092
|
+
left 2
|
4093
|
+
text 'ex) 33'
|
4094
|
+
}
|
4095
|
+
label('pt'){
|
4096
|
+
top 1
|
4097
|
+
left 3
|
4098
|
+
}
|
4099
|
+
@data['이미지설정']['이미지글자2크기2'] = entry{
|
4100
|
+
top 1
|
4101
|
+
left 4
|
4102
|
+
text 'ex) 55'
|
4103
|
+
}
|
4104
|
+
label('pt'){
|
4105
|
+
top 1
|
4106
|
+
left 5
|
4107
|
+
}
|
4108
|
+
@data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
|
4109
|
+
top 1
|
4110
|
+
left 6
|
4111
|
+
}
|
4112
|
+
@data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
|
4113
|
+
top 2
|
4114
|
+
left 0
|
4115
|
+
}
|
4116
|
+
@data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
|
4117
|
+
top 3
|
4118
|
+
left 0
|
4119
|
+
}
|
4120
|
+
@data['이미지설정']['테두리크기1'] = entry{
|
4121
|
+
top 3
|
4122
|
+
left 2
|
4123
|
+
text 'ex) 1'
|
4124
|
+
}
|
4125
|
+
label('pt'){
|
4126
|
+
top 3
|
4127
|
+
left 3
|
4128
|
+
}
|
4129
|
+
@data['이미지설정']['테두리크기2'] = entry{
|
4130
|
+
top 3
|
4131
|
+
left 4
|
4132
|
+
text 'ex) 33'
|
4133
|
+
}
|
4134
|
+
label('pt'){
|
4135
|
+
top 3
|
4136
|
+
left 5
|
4137
|
+
}
|
4574
4138
|
|
4575
|
-
|
4576
|
-
|
4577
|
-
|
4139
|
+
}
|
4140
|
+
|
4141
|
+
horizontal_box{
|
4142
|
+
stretchy false
|
4143
|
+
@data['image_size'][0] = checkbox('랜덤 px'){
|
4144
|
+
on_toggled{
|
4145
|
+
if @data['image_size'][0].checked?
|
4146
|
+
@data['image_size'][1].checked = false
|
4147
|
+
@data['image_size'][2].checked = false
|
4148
|
+
@data['image_size'][3].checked = false
|
4149
|
+
@data['image_size'][4].checked = false
|
4150
|
+
end
|
4578
4151
|
}
|
4579
|
-
|
4580
|
-
|
4581
|
-
|
4582
|
-
|
4152
|
+
}
|
4153
|
+
@data['image_size'][1] = checkbox('740 px'){
|
4154
|
+
on_toggled{
|
4155
|
+
if @data['image_size'][1].checked?
|
4156
|
+
@data['image_size'][0].checked = false
|
4157
|
+
@data['image_size'][2].checked = false
|
4158
|
+
@data['image_size'][3].checked = false
|
4159
|
+
@data['image_size'][4].checked = false
|
4160
|
+
end
|
4583
4161
|
}
|
4584
|
-
|
4585
|
-
|
4586
|
-
|
4162
|
+
}
|
4163
|
+
@data['image_size'][2] = checkbox('650 px'){
|
4164
|
+
on_toggled{
|
4165
|
+
if @data['image_size'][2].checked?
|
4166
|
+
@data['image_size'][1].checked = false
|
4167
|
+
@data['image_size'][0].checked = false
|
4168
|
+
@data['image_size'][3].checked = false
|
4169
|
+
@data['image_size'][4].checked = false
|
4170
|
+
end
|
4587
4171
|
}
|
4588
|
-
|
4589
|
-
|
4590
|
-
|
4591
|
-
|
4172
|
+
}
|
4173
|
+
@data['image_size'][3] = checkbox('550 px'){
|
4174
|
+
on_toggled{
|
4175
|
+
if @data['image_size'][3].checked?
|
4176
|
+
@data['image_size'][1].checked = false
|
4177
|
+
@data['image_size'][2].checked = false
|
4178
|
+
@data['image_size'][0].checked = false
|
4179
|
+
@data['image_size'][4].checked = false
|
4180
|
+
end
|
4592
4181
|
}
|
4593
|
-
|
4594
|
-
|
4595
|
-
|
4596
|
-
|
4182
|
+
}
|
4183
|
+
@data['image_size'][4] = checkbox('480 px'){
|
4184
|
+
on_toggled{
|
4185
|
+
if @data['image_size'][4].checked?
|
4186
|
+
@data['image_size'][1].checked = false
|
4187
|
+
@data['image_size'][2].checked = false
|
4188
|
+
@data['image_size'][3].checked = false
|
4189
|
+
@data['image_size'][0].checked = false
|
4190
|
+
end
|
4597
4191
|
}
|
4192
|
+
}
|
4193
|
+
}
|
4194
|
+
vertical_separator{
|
4195
|
+
stretchy false
|
4196
|
+
}
|
4197
|
+
horizontal_box{
|
4198
|
+
stretchy false
|
4199
|
+
@data['포스트설정']['라이브러리사용안함'] = checkbox('사진 라이브러리에서 제외시키기 적용'){
|
4200
|
+
|
4201
|
+
}
|
4202
|
+
}
|
4203
|
+
}
|
4204
|
+
}
|
4205
|
+
}
|
4598
4206
|
|
4599
|
-
|
4600
|
-
|
4601
|
-
|
4602
|
-
|
4207
|
+
tab_item('포스트설정1'){
|
4208
|
+
horizontal_box{
|
4209
|
+
vertical_box{
|
4210
|
+
stretchy false
|
4211
|
+
grid{
|
4212
|
+
stretchy false
|
4213
|
+
@data['포스트설정']['제목키워드변경'] = checkbox('제목에 특정 단어를 내용에 사용할 키워드로 변경'){
|
4214
|
+
top 0
|
4215
|
+
left 0
|
4603
4216
|
|
4604
|
-
|
4217
|
+
}
|
4218
|
+
@data['포스트설정']['제목키워드변경단어'] = entry{
|
4219
|
+
top 0
|
4220
|
+
left 1
|
4221
|
+
text '특정단어'
|
4222
|
+
}
|
4605
4223
|
|
4606
|
-
|
4607
|
-
|
4608
|
-
|
4609
|
-
|
4610
|
-
|
4611
|
-
|
4612
|
-
|
4613
|
-
|
4614
|
-
|
4615
|
-
|
4616
|
-
|
4617
|
-
|
4224
|
+
# @data['포스트설정']['제목단어변경'] = checkbox('제목에 특정 단어를 변경'){
|
4225
|
+
# top 1
|
4226
|
+
# left 0
|
4227
|
+
# }
|
4228
|
+
# @data['포스트설정']['제목단어변경파일불러오기'] = button('설정 파일 불러오기'){
|
4229
|
+
# top 1
|
4230
|
+
# left 1
|
4231
|
+
# on_clicked{
|
4232
|
+
# file = open_file
|
4233
|
+
# if file != nil
|
4234
|
+
# file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4235
|
+
# file_data.split("\n").each do |i|
|
4236
|
+
# i2 = i.split('>')
|
4237
|
+
# text_key = i2[0].to_s
|
4238
|
+
# text_val = i2[1].to_s.split(',')
|
4239
|
+
# @data['포스트설정']['제목특정단어변경데이터'][text_key] = text_val
|
4240
|
+
# end
|
4241
|
+
# end
|
4242
|
+
# }
|
4243
|
+
# }
|
4244
|
+
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4245
|
+
top 2
|
4246
|
+
left 0
|
4247
|
+
#enabled false # 기본적으로 비활성화
|
4248
|
+
on_toggled {
|
4249
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4250
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4251
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4252
|
+
else
|
4253
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4254
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4255
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4256
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4257
|
+
end
|
4618
4258
|
}
|
4619
|
-
|
4620
|
-
|
4621
|
-
|
4622
|
-
|
4623
|
-
|
4624
|
-
|
4625
|
-
|
4626
|
-
|
4627
|
-
|
4628
|
-
|
4259
|
+
|
4260
|
+
}
|
4261
|
+
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4262
|
+
top 2
|
4263
|
+
left 1
|
4264
|
+
text '최소수량'
|
4265
|
+
}
|
4266
|
+
label('~'){
|
4267
|
+
top 2
|
4268
|
+
left 2
|
4269
|
+
}
|
4270
|
+
@data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
|
4271
|
+
top 2
|
4272
|
+
left 3
|
4273
|
+
text '최대수량'
|
4274
|
+
}
|
4275
|
+
label('ㄴ'){
|
4276
|
+
top 3
|
4277
|
+
left 2
|
4278
|
+
}
|
4279
|
+
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4280
|
+
top 3
|
4281
|
+
left 3
|
4282
|
+
enabled false # 기본적으로 비활성화
|
4283
|
+
on_toggled{
|
4284
|
+
if @data['포스트설정']['제목앞'].checked? == true
|
4285
|
+
if @data['포스트설정']['제목뒤'].checked?
|
4286
|
+
@data['포스트설정']['제목뒤'].checked = false
|
4629
4287
|
end
|
4630
|
-
|
4288
|
+
end
|
4631
4289
|
}
|
4632
|
-
|
4633
|
-
|
4634
|
-
|
4635
|
-
|
4636
|
-
|
4637
|
-
|
4638
|
-
|
4639
|
-
|
4640
|
-
|
4641
|
-
|
4290
|
+
}
|
4291
|
+
label('ㄴ'){
|
4292
|
+
top 4
|
4293
|
+
left 2
|
4294
|
+
}
|
4295
|
+
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4296
|
+
top 4
|
4297
|
+
left 3
|
4298
|
+
enabled false # 기본적으로 비활성화
|
4299
|
+
on_toggled{
|
4300
|
+
if @data['포스트설정']['제목뒤'].checked? == true
|
4301
|
+
if @data['포스트설정']['제목앞'].checked?
|
4302
|
+
@data['포스트설정']['제목앞'].checked = false
|
4642
4303
|
end
|
4643
|
-
|
4304
|
+
end
|
4644
4305
|
}
|
4645
|
-
|
4646
|
-
|
4647
|
-
|
4648
|
-
|
4649
|
-
|
4650
|
-
|
4651
|
-
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4655
|
-
|
4306
|
+
}
|
4307
|
+
|
4308
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4309
|
+
top 4
|
4310
|
+
left 0
|
4311
|
+
}
|
4312
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4313
|
+
top 5
|
4314
|
+
left 0
|
4315
|
+
on_toggled{
|
4316
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4317
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4318
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4656
4319
|
end
|
4657
|
-
|
4658
|
-
}
|
4659
|
-
|
4660
|
-
|
4661
|
-
|
4662
|
-
@data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
|
4663
|
-
top 12
|
4664
|
-
left 0
|
4665
|
-
}
|
4666
|
-
@data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
|
4667
|
-
top 12
|
4668
|
-
left 1
|
4320
|
+
end
|
4669
4321
|
}
|
4670
|
-
|
4671
|
-
|
4672
|
-
|
4322
|
+
}
|
4323
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4324
|
+
top 6
|
4325
|
+
left 0
|
4326
|
+
on_toggled{
|
4327
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4328
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4329
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4330
|
+
end
|
4331
|
+
end
|
4673
4332
|
}
|
4674
|
-
|
4675
|
-
|
4676
|
-
|
4333
|
+
}
|
4334
|
+
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4335
|
+
top 7
|
4336
|
+
left 0
|
4337
|
+
on_toggled {
|
4338
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4339
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4340
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4341
|
+
else
|
4342
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4343
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4344
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4345
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4346
|
+
end
|
4677
4347
|
}
|
4678
|
-
|
4679
|
-
|
4680
|
-
|
4348
|
+
}
|
4349
|
+
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4350
|
+
top 7
|
4351
|
+
left 1
|
4352
|
+
|
4353
|
+
text '최소수량'
|
4354
|
+
}
|
4355
|
+
label('~'){
|
4356
|
+
top 7
|
4357
|
+
left 2
|
4358
|
+
}
|
4359
|
+
@data['포스트설정']['키워드삽입끝숫자'] = entry(){
|
4360
|
+
top 7
|
4361
|
+
left 3
|
4362
|
+
text '최대수량'
|
4363
|
+
}
|
4364
|
+
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4365
|
+
enabled false # 기본적으로 비활성화
|
4366
|
+
top 8
|
4367
|
+
left 0
|
4368
|
+
|
4369
|
+
}
|
4370
|
+
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4371
|
+
enabled false # 기본적으로 비활성화
|
4372
|
+
top 8
|
4373
|
+
left 1
|
4374
|
+
text 'URL'
|
4375
|
+
}
|
4376
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4377
|
+
top 9
|
4378
|
+
left 0
|
4379
|
+
on_toggled{
|
4380
|
+
if @data['포스트설정']['내용을자동생성'].checked?
|
4381
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4382
|
+
@data['포스트설정']['내용투명'].checked = false
|
4383
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4384
|
+
|
4385
|
+
end
|
4681
4386
|
}
|
4387
|
+
}
|
4682
4388
|
|
4683
|
-
|
4684
|
-
|
4685
|
-
|
4686
|
-
|
4687
|
-
|
4688
|
-
|
4689
|
-
|
4690
|
-
|
4691
|
-
|
4389
|
+
|
4390
|
+
aa1 = 2
|
4391
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4392
|
+
top 10 + aa1
|
4393
|
+
left 0
|
4394
|
+
on_toggled {
|
4395
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4396
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4397
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4398
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4399
|
+
else
|
4400
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4401
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4402
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4403
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4404
|
+
end
|
4692
4405
|
}
|
4693
|
-
|
4694
|
-
|
4695
|
-
|
4696
|
-
|
4697
|
-
|
4698
|
-
|
4699
|
-
|
4700
|
-
|
4701
|
-
|
4406
|
+
}
|
4407
|
+
|
4408
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4409
|
+
top 11 + aa1
|
4410
|
+
left 0
|
4411
|
+
enabled false # 기본적으로 비활성화
|
4412
|
+
on_toggled {
|
4413
|
+
if @data['포스트설정']['내용투명'].checked?
|
4414
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4415
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4416
|
+
end
|
4702
4417
|
}
|
4703
|
-
|
4704
|
-
|
4705
|
-
|
4706
|
-
|
4707
|
-
|
4708
|
-
|
4709
|
-
|
4710
|
-
|
4418
|
+
}
|
4419
|
+
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4420
|
+
top 12+ aa1
|
4421
|
+
left 0
|
4422
|
+
}
|
4423
|
+
button('설정 파일 불러오기'){
|
4424
|
+
top 12+ aa1
|
4425
|
+
left 1
|
4426
|
+
on_clicked{
|
4427
|
+
file = open_file
|
4428
|
+
if file != nil
|
4429
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4430
|
+
file_data.split("\n").each do |i|
|
4431
|
+
key = i.split('>')[0]
|
4432
|
+
v = i.split('>')[1].to_s.split(',')
|
4433
|
+
@data['포스트설정']['내용자동변경값'][key] = v
|
4711
4434
|
end
|
4712
|
-
|
4435
|
+
end
|
4713
4436
|
}
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4719
|
-
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4437
|
+
}
|
4438
|
+
@data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
|
4439
|
+
top 12+ aa1
|
4440
|
+
left 3
|
4441
|
+
}
|
4442
|
+
|
4443
|
+
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4444
|
+
top 13+ aa1
|
4445
|
+
left 0
|
4446
|
+
#enabled false # 기본적으로 비활성화
|
4447
|
+
on_toggled {
|
4448
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4449
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4450
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4451
|
+
else
|
4452
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4453
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4454
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4455
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4456
|
+
end
|
4726
4457
|
}
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4458
|
+
}
|
4459
|
+
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4460
|
+
top 13+ aa1
|
4461
|
+
left 1
|
4462
|
+
text '최소수량'
|
4463
|
+
}
|
4464
|
+
label('~'){
|
4465
|
+
top 13+ aa1
|
4466
|
+
left 2
|
4467
|
+
}
|
4468
|
+
@data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
|
4469
|
+
top 13+ aa1
|
4470
|
+
left 3
|
4471
|
+
text '최대수량'
|
4472
|
+
}
|
4730
4473
|
|
4731
|
-
|
4732
|
-
|
4733
|
-
|
4734
|
-
|
4735
|
-
|
4736
|
-
|
4737
|
-
|
4738
|
-
|
4474
|
+
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4475
|
+
enabled false # 기본적으로 비활성화
|
4476
|
+
top 14+ aa1
|
4477
|
+
left 0
|
4478
|
+
}
|
4479
|
+
|
4480
|
+
@data['포스트설정']['내용사진링크값'] = entry(){
|
4481
|
+
enabled false # 기본적으로 비활성화
|
4482
|
+
top 14+ aa1
|
4483
|
+
left 1
|
4484
|
+
text 'URL'
|
4485
|
+
}
|
4486
|
+
|
4487
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4488
|
+
top 15+ aa1
|
4489
|
+
left 0
|
4490
|
+
}
|
4491
|
+
|
4492
|
+
@data['포스트설정']['api_key'] = entry(){
|
4493
|
+
top 15+ aa1
|
4494
|
+
left 1
|
4495
|
+
text 'api key 입력 필수!!'
|
4496
|
+
}
|
4497
|
+
|
4498
|
+
}
|
4499
|
+
}
|
4500
|
+
|
4501
|
+
vertical_separator{
|
4502
|
+
stretchy false
|
4503
|
+
}
|
4504
|
+
|
4505
|
+
|
4506
|
+
grid{
|
4507
|
+
@data['포스트설정']['특정단어키워드로변경'] = checkbox('내용 특정단어를 키워드로 변경'){
|
4508
|
+
top 0
|
4509
|
+
left 0
|
4510
|
+
}
|
4511
|
+
@data['포스트설정']['특정단어키워드로변경값'] = entry{
|
4512
|
+
top 0
|
4513
|
+
left 1
|
4514
|
+
text '특정단어'
|
4515
|
+
}
|
4516
|
+
|
4517
|
+
@data['포스트설정']['제외하고등록'] = checkbox('내용 특정단어를 제외하고 등록'){
|
4518
|
+
top 1
|
4519
|
+
left 0
|
4520
|
+
}
|
4521
|
+
@data['포스트설정']['제외하고등록값'] = entry{
|
4522
|
+
top 1
|
4523
|
+
left 1
|
4524
|
+
text '특정단어'
|
4525
|
+
}
|
4526
|
+
|
4527
|
+
@data['포스트설정']['단어링크적용'] = checkbox('내용 특정단어를 링크적용 등록'){
|
4528
|
+
top 2
|
4529
|
+
left 0
|
4530
|
+
}
|
4531
|
+
@data['포스트설정']['단어링크적용단어'] = entry{
|
4532
|
+
top 2
|
4533
|
+
left 1
|
4534
|
+
text '특정단어'
|
4535
|
+
}
|
4536
|
+
|
4537
|
+
label('ㄴ적용하려는 링크 URL 입력'){
|
4538
|
+
top 3
|
4539
|
+
left 0
|
4540
|
+
}
|
4541
|
+
@data['포스트설정']['단어링크적용url'] = entry{
|
4542
|
+
top 3
|
4543
|
+
left 1
|
4544
|
+
text 'URL'
|
4545
|
+
}
|
4546
|
+
|
4547
|
+
@data['포스트설정']['단어사진으로변경'] = checkbox('특정단어를 사진으로 변경'){
|
4548
|
+
top 4
|
4549
|
+
left 0
|
4550
|
+
}
|
4551
|
+
@data['포스트설정']['단어사진으로변경단어'] = entry{
|
4552
|
+
top 4
|
4553
|
+
left 1
|
4554
|
+
text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
|
4555
|
+
}
|
4556
|
+
label('ㄴ적용하려는 링크 URL 입력'){
|
4557
|
+
top 5
|
4558
|
+
left 0
|
4559
|
+
}
|
4560
|
+
|
4561
|
+
@data['포스트설정']['단어사진으로변경URL'] = entry{
|
4562
|
+
top 5
|
4563
|
+
left 1
|
4564
|
+
text 'URL'
|
4565
|
+
}
|
4566
|
+
|
4567
|
+
|
4568
|
+
# @data['포스트설정']['슬라이드로변경'] = checkbox('특정단어를 슬라이드사진 변경'){
|
4569
|
+
# top 6
|
4570
|
+
# left 0
|
4571
|
+
# }
|
4572
|
+
# @data['포스트설정']['단어슬라이드변경'] = entry{
|
4573
|
+
# top 6
|
4574
|
+
# left 1
|
4575
|
+
# text '특정단어'
|
4576
|
+
# }
|
4577
|
+
|
4578
|
+
@data['포스트설정']['스티커로변경'] = checkbox('특정단어를 스티커로 변경'){
|
4579
|
+
top 6
|
4580
|
+
left 0
|
4581
|
+
}
|
4582
|
+
@data['포스트설정']['스티커로변경단어'] = entry{
|
4583
|
+
top 6
|
4584
|
+
left 1
|
4585
|
+
text '특정단어'
|
4586
|
+
}
|
4587
|
+
@data['포스트설정']['영상으로변경'] = checkbox('특정단어를 영상으로 변경'){
|
4588
|
+
top 7
|
4589
|
+
left 0
|
4590
|
+
}
|
4591
|
+
@data['포스트설정']['영상으로변경단어'] = entry{
|
4592
|
+
top 7
|
4593
|
+
left 1
|
4594
|
+
text '특정단어'
|
4595
|
+
}
|
4596
|
+
label('ㄴ동영상만 있는 폴더 지정하기'){
|
4597
|
+
top 8
|
4598
|
+
left 0
|
4599
|
+
}
|
4600
|
+
@data['포스트설정']['동영상폴더위치'] = entry{
|
4601
|
+
top 8
|
4602
|
+
left 1
|
4603
|
+
text "영상폴더위치 ex) C:\\영상\\폴더3"
|
4604
|
+
}
|
4605
|
+
@data['포스트설정']['지도로변경'] = checkbox('특정단어를 지도로 변경'){
|
4606
|
+
top 9
|
4607
|
+
left 0
|
4608
|
+
}
|
4609
|
+
@data['포스트설정']['지도로변경단어'] = entry{
|
4610
|
+
top 9
|
4611
|
+
left 1
|
4612
|
+
text '특정단어'
|
4613
|
+
}
|
4614
|
+
label('ㄴ지도 삽입경우 적용 주소 입력'){
|
4615
|
+
top 10
|
4616
|
+
left 0
|
4617
|
+
}
|
4618
|
+
@data['포스트설정']['지도주소'] = entry{
|
4619
|
+
top 10
|
4620
|
+
left 1
|
4621
|
+
text 'ex) OO시 OO구 OO동 270-68'
|
4622
|
+
}
|
4623
|
+
@data['포스트설정']['인용구변경'] = checkbox('특정단어를 인용구로 적용'){
|
4624
|
+
top 11
|
4625
|
+
left 0
|
4626
|
+
}
|
4627
|
+
@data['포스트설정']['인용구변경단어'] = entry{
|
4628
|
+
top 11
|
4629
|
+
left 1
|
4630
|
+
text '특정단어'
|
4631
|
+
}
|
4632
|
+
label('ㄴ인용구 사용시 들어갈 문구'){
|
4633
|
+
top 12
|
4634
|
+
left 0
|
4635
|
+
}
|
4636
|
+
button('설정 파일 불러오기'){
|
4637
|
+
top 12
|
4638
|
+
left 1
|
4639
|
+
on_clicked{
|
4640
|
+
file = open_file
|
4641
|
+
if file != nil
|
4642
|
+
file_data = File.open(file, 'r').read
|
4643
|
+
@data['포스트설정']['인용구'] = file_data.split(',')
|
4644
|
+
end
|
4645
|
+
}
|
4646
|
+
}
|
4647
|
+
|
4648
|
+
|
4649
|
+
}
|
4650
|
+
}
|
4651
|
+
}
|
4652
|
+
tab_item('포스트설정2'){
|
4653
|
+
vertical_box{
|
4654
|
+
grid{
|
4655
|
+
stretchy false
|
4656
|
+
|
4657
|
+
@data['포스트설정']['특정단어굵기'] = checkbox('내용 특정단어 굵기 변경(적용 단어 앞 뒤에 @@삽입)'){
|
4658
|
+
top 0
|
4659
|
+
left 0
|
4660
|
+
}
|
4661
|
+
@data['포스트설정']['단어색상변경'] = checkbox('내용 특정단어 색상 변경(적용 단어 앞 뒤에 %%삽입)'){
|
4662
|
+
top 1
|
4663
|
+
left 0
|
4664
|
+
}
|
4665
|
+
@data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
|
4666
|
+
top 2
|
4667
|
+
left 0
|
4668
|
+
}
|
4669
|
+
@data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
|
4670
|
+
top 3
|
4671
|
+
left 0
|
4672
|
+
on_toggled{
|
4673
|
+
if @data['포스트설정']['중앙정렬'].checked?
|
4674
|
+
@data['포스트설정']['좌측정렬'].checked = false
|
4675
|
+
@data['포스트설정']['우측정렬'].checked = false
|
4676
|
+
end
|
4677
|
+
}
|
4678
|
+
}
|
4679
|
+
@data['포스트설정']['좌측정렬'] = checkbox('내용 글 좌측 정렬'){
|
4680
|
+
top 4
|
4681
|
+
left 0
|
4682
|
+
on_toggled{
|
4683
|
+
if @data['포스트설정']['좌측정렬'].checked?
|
4684
|
+
@data['포스트설정']['중앙정렬'].checked = false
|
4685
|
+
@data['포스트설정']['우측정렬'].checked = false
|
4686
|
+
end
|
4687
|
+
}
|
4688
|
+
}
|
4689
|
+
@data['포스트설정']['우측정렬'] = checkbox('내용 글 우측 정렬'){
|
4690
|
+
top 5
|
4691
|
+
left 0
|
4692
|
+
on_toggled{
|
4693
|
+
if @data['포스트설정']['우측정렬'].checked?
|
4694
|
+
@data['포스트설정']['좌측정렬'].checked = false
|
4695
|
+
@data['포스트설정']['중앙정렬'].checked = false
|
4696
|
+
end
|
4697
|
+
}
|
4698
|
+
}
|
4699
|
+
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4700
|
+
top 6
|
4701
|
+
left 0
|
4702
|
+
#enabled false # 기본적으로 비활성화
|
4703
|
+
on_toggled {
|
4704
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4705
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4706
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4707
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4708
|
+
|
4709
|
+
else
|
4710
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4711
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4712
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4713
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4714
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4715
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4716
|
+
end
|
4717
|
+
}
|
4718
|
+
}
|
4719
|
+
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4720
|
+
top 6
|
4721
|
+
left 1
|
4722
|
+
text '최소수량'
|
4723
|
+
}
|
4724
|
+
label('~'){
|
4725
|
+
top 6
|
4726
|
+
left 2
|
4727
|
+
}
|
4728
|
+
@data['포스트설정']['막글삽입끝숫자'] = entry{
|
4729
|
+
top 6
|
4730
|
+
left 3
|
4731
|
+
text '최대수량'
|
4732
|
+
}
|
4733
|
+
button('막글 파일 불러오기'){
|
4734
|
+
top 6
|
4735
|
+
left 4
|
4736
|
+
on_clicked{
|
4737
|
+
file = open_file
|
4738
|
+
if file != nil
|
4739
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4740
|
+
@data['포스트설정']['막글'] = file_data
|
4741
|
+
end
|
4742
|
+
}
|
4743
|
+
}
|
4744
|
+
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4745
|
+
top 7
|
4746
|
+
left 0
|
4747
|
+
enabled false # 기본적으로 비활성화
|
4748
|
+
}
|
4749
|
+
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4750
|
+
top 7
|
4751
|
+
left 1
|
4752
|
+
enabled false # 기본적으로 비활성화
|
4753
|
+
}
|
4754
|
+
|
4755
|
+
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
4756
|
+
top 8
|
4757
|
+
left 0
|
4758
|
+
}
|
4759
|
+
@data['포스트설정']['태그삽입1시작숫자'] = entry{
|
4760
|
+
top 8
|
4761
|
+
left 1
|
4762
|
+
text '최소수량'
|
4763
|
+
}
|
4764
|
+
label('~'){
|
4765
|
+
top 8
|
4766
|
+
left 2
|
4767
|
+
}
|
4768
|
+
@data['포스트설정']['태그삽입1끝숫자'] = entry{
|
4769
|
+
top 8
|
4770
|
+
left 3
|
4771
|
+
text '최대수량'
|
4772
|
+
}
|
4773
|
+
|
4774
|
+
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4775
|
+
top 9
|
4776
|
+
left 0
|
4777
|
+
enabled false # 기본적으로 비활성화
|
4778
|
+
on_toggled {
|
4779
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4780
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4781
|
+
@data['포스트설정']['내용투명'].checked = false
|
4782
|
+
end
|
4739
4783
|
}
|
4784
|
+
}
|
4785
|
+
|
4786
|
+
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4787
|
+
top 9
|
4788
|
+
left 1
|
4789
|
+
enabled false # 기본적으로 비활성화
|
4790
|
+
}
|
4791
|
+
|
4792
|
+
|
4793
|
+
|
4794
|
+
@data['포스트설정']['전체공개'] = checkbox('전체공개'){
|
4795
|
+
top 10
|
4796
|
+
left 0
|
4797
|
+
on_toggled{
|
4798
|
+
if @data['포스트설정']['전체공개'].checked?
|
4799
|
+
if @data['포스트설정']['비공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4800
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4801
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4802
|
+
@data['포스트설정']['비공개'].checked = false
|
4803
|
+
end
|
4804
|
+
end
|
4805
|
+
}
|
4806
|
+
}
|
4807
|
+
@data['포스트설정']['멤버공개'] = checkbox('이웃공개'){
|
4808
|
+
top 10
|
4809
|
+
left 1
|
4810
|
+
on_toggled{
|
4811
|
+
if @data['포스트설정']['멤버공개'].checked?
|
4812
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['비공개'].checked?
|
4813
|
+
@data['포스트설정']['전체공개'].checked = false
|
4814
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4815
|
+
@data['포스트설정']['비공개'].checked = false
|
4816
|
+
end
|
4817
|
+
end
|
4818
|
+
}
|
4819
|
+
}
|
4820
|
+
@data['포스트설정']['서로이웃공개'] = checkbox('서로이웃공개'){
|
4821
|
+
top 11
|
4822
|
+
left 0
|
4823
|
+
on_toggled{
|
4824
|
+
if @data['포스트설정']['서로이웃공개'].checked?
|
4825
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['비공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4826
|
+
@data['포스트설정']['전체공개'].checked = false
|
4827
|
+
@data['포스트설정']['비공개'].checked = false
|
4828
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4829
|
+
end
|
4830
|
+
end
|
4831
|
+
}
|
4832
|
+
}
|
4833
|
+
|
4834
|
+
@data['포스트설정']['비공개'] = checkbox('비공개'){
|
4835
|
+
top 11
|
4836
|
+
left 1
|
4837
|
+
on_toggled{
|
4838
|
+
if @data['포스트설정']['비공개'].checked?
|
4839
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4840
|
+
@data['포스트설정']['전체공개'].checked = false
|
4841
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4842
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4843
|
+
end
|
4844
|
+
end
|
4845
|
+
}
|
4846
|
+
}
|
4847
|
+
|
4848
|
+
|
4849
|
+
|
4850
|
+
@data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
|
4851
|
+
top 12
|
4852
|
+
left 0
|
4853
|
+
}
|
4854
|
+
@data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
|
4855
|
+
top 12
|
4856
|
+
left 1
|
4857
|
+
}
|
4858
|
+
@data['포스트설정']['외부공유허용'] = checkbox('외부공유허용'){
|
4859
|
+
top 13
|
4860
|
+
left 0
|
4861
|
+
}
|
4862
|
+
@data['포스트설정']['검색허용'] = checkbox('검색허용'){
|
4863
|
+
top 13
|
4864
|
+
left 1
|
4865
|
+
}
|
4866
|
+
@data['포스트설정']['공감허용'] = checkbox('공감허용'){
|
4867
|
+
top 14
|
4868
|
+
left 0
|
4869
|
+
}
|
4870
|
+
|
4871
|
+
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4872
|
+
top 15
|
4873
|
+
left 0
|
4874
|
+
on_toggled{
|
4875
|
+
if @data['포스트설정']['테더링'].checked?
|
4876
|
+
@data['포스트설정']['프록시'].checked = false
|
4877
|
+
|
4878
|
+
end
|
4879
|
+
}
|
4880
|
+
}
|
4881
|
+
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4882
|
+
top 15
|
4883
|
+
left 1
|
4884
|
+
on_toggled{
|
4885
|
+
if @data['포스트설정']['프록시'].checked?
|
4886
|
+
@data['포스트설정']['테더링'].checked = false
|
4887
|
+
|
4888
|
+
end
|
4889
|
+
}
|
4890
|
+
}
|
4891
|
+
button('프록시 IP 파일 불러오기'){
|
4892
|
+
top 15
|
4893
|
+
left 3
|
4894
|
+
on_clicked{
|
4895
|
+
file = open_file
|
4896
|
+
if file != nil
|
4897
|
+
file_data = File.open(file,'r').read
|
4898
|
+
@data['포스트설정']['프록시리스트'] = file_data.split("\n")
|
4899
|
+
end
|
4900
|
+
}
|
4901
|
+
}
|
4902
|
+
|
4903
|
+
@data['포스트설정']['발행기능'] = checkbox('포스팅 글 [ 발행 ] 하기'){
|
4904
|
+
top 16
|
4905
|
+
left 0
|
4906
|
+
on_toggled{
|
4907
|
+
if @data['포스트설정']['발행기능'].checked?
|
4908
|
+
if @data['포스트설정']['저장기능'].checked?
|
4909
|
+
@data['포스트설정']['저장기능'].checked = false
|
4910
|
+
|
4911
|
+
end
|
4912
|
+
end
|
4913
|
+
}
|
4914
|
+
}
|
4915
|
+
@data['포스트설정']['저장기능'] = checkbox('포스팅 글 [ 저장 ] 하기'){
|
4916
|
+
top 16
|
4917
|
+
left 1
|
4918
|
+
|
4919
|
+
on_toggled{
|
4920
|
+
if @data['포스트설정']['저장기능'].checked?
|
4921
|
+
if @data['포스트설정']['발행기능'].checked?
|
4922
|
+
@data['포스트설정']['발행기능'].checked = false
|
4923
|
+
|
4924
|
+
end
|
4925
|
+
end
|
4740
4926
|
}
|
4741
4927
|
}
|
4742
4928
|
}
|
4743
4929
|
}
|
4930
|
+
}
|
4931
|
+
}
|
4744
4932
|
|
4745
4933
|
horizontal_box{
|
4746
4934
|
stretchy false
|