nblog_zon 0.0.7 → 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_zon.rb +1758 -1570
- metadata +2 -2
data/lib/nblog_zon.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
|
@@ -1943,7 +1912,7 @@ class Wordpress
|
|
1943
1912
|
@video = Array.new
|
1944
1913
|
while true
|
1945
1914
|
for n in 0..@data['table'].length-1
|
1946
|
-
@data['table'][n][
|
1915
|
+
@data['table'][n][11] = 0
|
1947
1916
|
end
|
1948
1917
|
|
1949
1918
|
while true
|
@@ -1981,6 +1950,17 @@ class Wordpress
|
|
1981
1950
|
rescue
|
1982
1951
|
option['bun'] = ''
|
1983
1952
|
end
|
1953
|
+
|
1954
|
+
begin
|
1955
|
+
option['template'] = table[7].to_s.force_encoding('utf-8').to_s
|
1956
|
+
if option['template'].to_s == '템플릿 사용시 번호 ex)1' || option['template'].to_s == '0'
|
1957
|
+
option['template'] = ''
|
1958
|
+
|
1959
|
+
end
|
1960
|
+
rescue
|
1961
|
+
option['template'] = ''
|
1962
|
+
end
|
1963
|
+
|
1984
1964
|
|
1985
1965
|
option['proxy'] = ''
|
1986
1966
|
if @data['포스트설정']['프록시'].checked?
|
@@ -1991,7 +1971,7 @@ class Wordpress
|
|
1991
1971
|
end
|
1992
1972
|
end
|
1993
1973
|
|
1994
|
-
if table[
|
1974
|
+
if table[8].to_i > table[11].to_i
|
1995
1975
|
if @data['포스트설정']['테더링'].checked?
|
1996
1976
|
puts 'tedering ip change...'
|
1997
1977
|
stdout, stderr, status = Open3.capture3('./adb devices')
|
@@ -2039,6 +2019,14 @@ class Wordpress
|
|
2039
2019
|
end
|
2040
2020
|
end
|
2041
2021
|
end
|
2022
|
+
|
2023
|
+
if @data['포스트설정']['gpt제목'].checked?
|
2024
|
+
chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2025
|
+
gpt_text1 = chat.message(title)
|
2026
|
+
title = gpt_text1.to_s
|
2027
|
+
end
|
2028
|
+
|
2029
|
+
|
2042
2030
|
@data['table'][index][-1] = 5
|
2043
2031
|
@data['table'] << []
|
2044
2032
|
@data['table'].pop
|
@@ -2076,11 +2064,30 @@ class Wordpress
|
|
2076
2064
|
end
|
2077
2065
|
end
|
2078
2066
|
end
|
2079
|
-
|
2080
|
-
|
2081
|
-
@data['
|
2082
|
-
|
2083
|
-
|
2067
|
+
|
2068
|
+
|
2069
|
+
if @data['포스트설정']['gpt내용'].checked?
|
2070
|
+
api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
|
2071
|
+
#key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
|
2072
|
+
#imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
|
2073
|
+
#template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
|
2074
|
+
#ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
|
2075
|
+
#sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
|
2076
|
+
#mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
|
2077
|
+
#map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
|
2078
|
+
#inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
|
2079
|
+
|
2080
|
+
|
2081
|
+
chat = Chat_content.new(api_key)
|
2082
|
+
gpt_text3 = chat.message(content)
|
2083
|
+
content = gpt_text3.to_s
|
2084
|
+
end
|
2085
|
+
|
2086
|
+
content_tag = content.split('@##@')[1]
|
2087
|
+
content = content.split('@##@')[0]
|
2088
|
+
@data['table'][index][-1] = 15
|
2089
|
+
@data['table'] << []
|
2090
|
+
@data['table'].pop
|
2084
2091
|
#단어 가저오기
|
2085
2092
|
if @data['포스트설정']['제목을랜덤'].checked? or @data['포스트설정']['내용을자동생성'].checked? or @data['포스트설정']['내용과자동생성'].checked?
|
2086
2093
|
auto_text = get_naver_text2(keyword)
|
@@ -2274,7 +2281,7 @@ class Wordpress
|
|
2274
2281
|
@data['table'][index][-1] = 50
|
2275
2282
|
@data['table'] << []
|
2276
2283
|
@data['table'].pop
|
2277
|
-
if @data['포스트설정']['gpt'].checked?
|
2284
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2278
2285
|
chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
|
2279
2286
|
gpt_text = chat.message(keyword)
|
2280
2287
|
content = content.to_s + "\n(자동생성글)\n" + gpt_text.to_s
|
@@ -2295,7 +2302,7 @@ class Wordpress
|
|
2295
2302
|
joongbok_check = 0
|
2296
2303
|
counter10 = 0
|
2297
2304
|
while joongbok_check == 0
|
2298
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2305
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2299
2306
|
content22 = content.split("(자동생성글)")[1].split("\n")
|
2300
2307
|
else
|
2301
2308
|
content22 = content.split("\n")
|
@@ -2319,12 +2326,12 @@ class Wordpress
|
|
2319
2326
|
content2 = content.split("\n")
|
2320
2327
|
end
|
2321
2328
|
|
2322
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2329
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2323
2330
|
content2 = content.split("(자동생성글)")[1].split("\n")
|
2324
2331
|
position.pop
|
2325
2332
|
end
|
2326
2333
|
|
2327
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2334
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2328
2335
|
content2 = content.split("\n")
|
2329
2336
|
end
|
2330
2337
|
|
@@ -2370,7 +2377,7 @@ class Wordpress
|
|
2370
2377
|
content = content3.join("\n")
|
2371
2378
|
end
|
2372
2379
|
|
2373
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2380
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2374
2381
|
content2.each_with_index do |con, index|
|
2375
2382
|
if position.include?(index)
|
2376
2383
|
insert_keyword_text = keyword.to_s
|
@@ -2400,7 +2407,7 @@ class Wordpress
|
|
2400
2407
|
end
|
2401
2408
|
end
|
2402
2409
|
|
2403
|
-
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
|
2410
|
+
if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
|
2404
2411
|
begin
|
2405
2412
|
content2.each_with_index do |con, index|
|
2406
2413
|
if position.include?(index)
|
@@ -2495,7 +2502,7 @@ class Wordpress
|
|
2495
2502
|
end
|
2496
2503
|
end
|
2497
2504
|
|
2498
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2505
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2499
2506
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2500
2507
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2501
2508
|
content55 = content.split("(자동생성글)")[1].to_s
|
@@ -2526,51 +2533,8 @@ class Wordpress
|
|
2526
2533
|
end
|
2527
2534
|
|
2528
2535
|
position = position.sort
|
2529
|
-
|
2530
|
-
|
2531
|
-
# image_url22 = get_image_file().force_encoding('utf-8')
|
2532
|
-
# end
|
2533
|
-
|
2534
|
-
# position.each do |i|
|
2535
|
-
# image_url = get_image_file().force_encoding('utf-8')
|
2536
|
-
# puts image_url
|
2537
|
-
|
2538
|
-
# puts '사진넣는위치 => '+i.to_s
|
2539
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2540
|
-
# 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>'+""
|
2541
|
-
# content5.insert(i, '**image**')
|
2542
|
-
# else
|
2543
|
-
# image_memory << ""+'<img src="'+image_url+'" alt="'+keyword+'" class="aligncenter size-full">'+""
|
2544
|
-
# content5.insert(i, '**image**')
|
2545
|
-
# end
|
2546
|
-
# end
|
2547
|
-
|
2548
|
-
# if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2549
|
-
# content = content5.join("\n")+'(자동생성글)'+content55
|
2550
|
-
# iconv = Iconv.new('UTF-8', 'ASCII-8BIT')
|
2551
|
-
# content = iconv.iconv(content)
|
2552
|
-
# content = content.encode('UTF-8', 'binary', invalid: :replace, replace: '')
|
2553
|
-
# puts content
|
2554
|
-
# image_url = image_url22
|
2555
|
-
|
2556
|
-
# if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2557
|
-
|
2558
|
-
# else
|
2559
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2560
|
-
# content = content.split('(자동생성글)')[0]+""+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8')+'"><img src="'+image_url+'" alt="'+keyword+'"></a>'+""+'(자동생성글)'+content.split('(자동생성글)')[1]
|
2561
|
-
# else
|
2562
|
-
# content = content.split('(자동생성글)')[0]+""+'<img src="'+image_url+'" alt="'+keyword+'" >'+""+'(자동생성글)'+content.split('(자동생성글)')[1]
|
2563
|
-
# end
|
2564
|
-
# end
|
2565
|
-
# else
|
2566
|
-
# content = content5.join("\n")
|
2567
|
-
# end
|
2568
|
-
# end
|
2569
|
-
# end
|
2570
|
-
###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
|
2571
|
-
|
2572
|
-
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2573
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2536
|
+
|
2537
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2574
2538
|
sleep(2)
|
2575
2539
|
puts '이미지 자동 세탁 중 · · · '
|
2576
2540
|
end
|
@@ -2589,7 +2553,7 @@ class Wordpress
|
|
2589
2553
|
end
|
2590
2554
|
sleep(2)
|
2591
2555
|
puts '이미지 자동 세탁 완료 · · · '
|
2592
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
|
2556
|
+
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2593
2557
|
content = content5.join("\n")+'(자동생성글)'+content55
|
2594
2558
|
puts content
|
2595
2559
|
else
|
@@ -2597,6 +2561,8 @@ class Wordpress
|
|
2597
2561
|
end
|
2598
2562
|
end
|
2599
2563
|
end
|
2564
|
+
|
2565
|
+
|
2600
2566
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
2601
2567
|
@data['table'][index][-1] = 70
|
2602
2568
|
@data['table'] << []
|
@@ -2611,7 +2577,7 @@ class Wordpress
|
|
2611
2577
|
content = content.split(i.force_encoding('utf-8')).join(keyword)
|
2612
2578
|
end
|
2613
2579
|
end
|
2614
|
-
|
2580
|
+
|
2615
2581
|
@data['table'][index][-1] = 75
|
2616
2582
|
@data['table'] << []
|
2617
2583
|
@data['table'].pop
|
@@ -2628,12 +2594,7 @@ class Wordpress
|
|
2628
2594
|
ttr = 0
|
2629
2595
|
@data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
2630
2596
|
ttr = 1
|
2631
|
-
|
2632
|
-
# if @data['포스트설정']['내용사진링크'].checked?
|
2633
|
-
# 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>')
|
2634
|
-
# else
|
2635
|
-
# content = content.split(i.force_encoding('utf-8')).join('<img src="'+image_url+'" alt="'+keyword+'">')
|
2636
|
-
# end
|
2597
|
+
|
2637
2598
|
content = content.split(i.force_encoding('utf-8'))
|
2638
2599
|
content.each_with_index do |ccm, index3|
|
2639
2600
|
if index3 == content.length-1
|
@@ -2652,6 +2613,10 @@ class Wordpress
|
|
2652
2613
|
content = content.join('')
|
2653
2614
|
end
|
2654
2615
|
end
|
2616
|
+
|
2617
|
+
|
2618
|
+
|
2619
|
+
|
2655
2620
|
|
2656
2621
|
con_memory = Array.new
|
2657
2622
|
index5 = 0
|
@@ -2689,17 +2654,9 @@ class Wordpress
|
|
2689
2654
|
content = content.split(i.force_encoding('utf-8')).join("<sticker></sticker>")
|
2690
2655
|
end
|
2691
2656
|
end
|
2692
|
-
|
2693
|
-
|
2694
|
-
|
2695
|
-
if @data['포스트설정']['내템플릿사용하기'].checked?
|
2696
|
-
@data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8').split(',').each do |i|
|
2697
|
-
content = content.split(i.force_encoding('utf-8')).join("<template></template>")
|
2698
|
-
end
|
2699
|
-
end
|
2700
|
-
|
2701
2657
|
|
2702
2658
|
|
2659
|
+
|
2703
2660
|
if @data['포스트설정']['영상으로변경'].checked?
|
2704
2661
|
if @video.length == 0
|
2705
2662
|
path = @data['포스트설정']['동영상폴더위치'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
@@ -2743,7 +2700,7 @@ class Wordpress
|
|
2743
2700
|
content = content
|
2744
2701
|
soosick_1 = content_end
|
2745
2702
|
else
|
2746
|
-
if @data['포스트설정']['gpt'].checked?
|
2703
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
2747
2704
|
if @data['포스트설정']['gpt상단'].checked?
|
2748
2705
|
content = content_end+"\n"+content+"\n"
|
2749
2706
|
else
|
@@ -2837,9 +2794,11 @@ class Wordpress
|
|
2837
2794
|
|
2838
2795
|
end
|
2839
2796
|
|
2840
|
-
|
2841
|
-
|
2842
|
-
|
2797
|
+
if @data['포스트설정']['라이브러리사용안함'].checked?
|
2798
|
+
option['라이브러리사용안함'] = 'true'
|
2799
|
+
else
|
2800
|
+
option['라이브러리사용안함'] = 'false'
|
2801
|
+
end
|
2843
2802
|
|
2844
2803
|
if @data['포스트설정']['외부공유허용'].checked?
|
2845
2804
|
option['외부공유허용'] = 'true'
|
@@ -2891,7 +2850,8 @@ class Wordpress
|
|
2891
2850
|
@data['table'] << []
|
2892
2851
|
@data['table'].pop
|
2893
2852
|
|
2894
|
-
dd_time = @data['table'][index][
|
2853
|
+
dd_time = @data['table'][index][10].to_s.force_encoding('utf-8').to_i
|
2854
|
+
template_no = @data['table'][index][7].to_s.force_encoding('utf-8').to_i
|
2895
2855
|
naver.update(title,content,option,soosick_1,soosick_2, dd_time)
|
2896
2856
|
|
2897
2857
|
|
@@ -2910,11 +2870,11 @@ class Wordpress
|
|
2910
2870
|
# @data2['content'] = content+'</div>'
|
2911
2871
|
|
2912
2872
|
#완료했으니 수량 카운터
|
2913
|
-
@data['table'][index][
|
2873
|
+
@data['table'][index][11] = @data['table'][index][11].to_i + 1
|
2914
2874
|
@data['table'][index][-1] = 100
|
2915
2875
|
@data['table'] << []
|
2916
2876
|
@data['table'].pop
|
2917
|
-
sleep(@data['table'][index][
|
2877
|
+
sleep(@data['table'][index][9].to_i)
|
2918
2878
|
end
|
2919
2879
|
# rescue => exception
|
2920
2880
|
# puts exception
|
@@ -3188,8 +3148,8 @@ class Wordpress
|
|
3188
3148
|
end
|
3189
3149
|
|
3190
3150
|
if i.class == Array
|
3191
|
-
i[7] = i[7].to_i
|
3192
3151
|
i[8] = i[8].to_i
|
3152
|
+
i[9] = i[9].to_i
|
3193
3153
|
@data[key] << i
|
3194
3154
|
@data[key] << i
|
3195
3155
|
@data[key].pop
|
@@ -3259,11 +3219,14 @@ class Wordpress
|
|
3259
3219
|
@data['bun'] = entry{
|
3260
3220
|
text '예약 발행 분 단위 ex)00'
|
3261
3221
|
}
|
3222
|
+
@data['template'] = entry{
|
3223
|
+
text '템플릿 사용시 번호 ex)1'
|
3224
|
+
}
|
3262
3225
|
|
3263
3226
|
button('등록'){
|
3264
3227
|
on_clicked {
|
3265
|
-
@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]
|
3266
|
-
@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]
|
3228
|
+
@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]
|
3229
|
+
@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]
|
3267
3230
|
@data['table'].pop
|
3268
3231
|
}
|
3269
3232
|
}
|
@@ -3275,8 +3238,8 @@ class Wordpress
|
|
3275
3238
|
file_data.split("\n").each do |i|
|
3276
3239
|
i3 = i.to_s.force_encoding('utf-8').to_s
|
3277
3240
|
i2 = i3.split(',')
|
3278
|
-
@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]
|
3279
|
-
@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]
|
3241
|
+
@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]
|
3242
|
+
@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]
|
3280
3243
|
@data['table'].pop
|
3281
3244
|
end
|
3282
3245
|
end
|
@@ -3311,6 +3274,9 @@ class Wordpress
|
|
3311
3274
|
text_column('예약 분'){
|
3312
3275
|
editable true
|
3313
3276
|
}
|
3277
|
+
text_column('템플릿 넘버'){
|
3278
|
+
editable true
|
3279
|
+
}
|
3314
3280
|
|
3315
3281
|
|
3316
3282
|
text_column('수량'){
|
@@ -3377,7 +3343,11 @@ class Wordpress
|
|
3377
3343
|
|
3378
3344
|
grid{
|
3379
3345
|
stretchy false
|
3380
|
-
|
3346
|
+
@data['table_template_input'] = entry{
|
3347
|
+
top 1
|
3348
|
+
left 3
|
3349
|
+
text '템플릿 넘버 ex) 3'
|
3350
|
+
}
|
3381
3351
|
@data['table_counter_input'] = entry{
|
3382
3352
|
top 1
|
3383
3353
|
left 4
|
@@ -3391,7 +3361,7 @@ class Wordpress
|
|
3391
3361
|
@data['table_delay_input2'] = entry{
|
3392
3362
|
top 1
|
3393
3363
|
left 6
|
3394
|
-
text '
|
3364
|
+
text '등록 전 딜레이'
|
3395
3365
|
}
|
3396
3366
|
|
3397
3367
|
button('전체설정'){
|
@@ -3399,9 +3369,10 @@ class Wordpress
|
|
3399
3369
|
left 7
|
3400
3370
|
on_clicked{
|
3401
3371
|
for n in 0..@data['table'].length-1
|
3402
|
-
@data['table'][n][7] = @data['
|
3403
|
-
@data['table'][n][8] = @data['
|
3404
|
-
@data['table'][n][9] = @data['
|
3372
|
+
@data['table'][n][7] = @data['table_template_input'].text.to_i
|
3373
|
+
@data['table'][n][8] = @data['table_counter_input'].text.to_i
|
3374
|
+
@data['table'][n][9] = @data['table_delay_input'].text.to_s
|
3375
|
+
@data['table'][n][10] = @data['table_delay_input2'].text.to_s
|
3405
3376
|
@data['table'] << []
|
3406
3377
|
@data['table'].pop
|
3407
3378
|
end
|
@@ -3411,1261 +3382,1478 @@ class Wordpress
|
|
3411
3382
|
}
|
3412
3383
|
}
|
3413
3384
|
}
|
3414
|
-
|
3385
|
+
tab_item('내용설정'){
|
3386
|
+
horizontal_box{
|
3387
|
+
vertical_box{
|
3415
3388
|
horizontal_box{
|
3416
|
-
|
3417
|
-
|
3418
|
-
|
3419
|
-
|
3420
|
-
|
3421
|
-
|
3422
|
-
|
3423
|
-
|
3424
|
-
file_data.split("\n").each do |keyword|
|
3425
|
-
if keyword.split(' ').join('').length < 2
|
3426
|
-
|
3427
|
-
else
|
3428
|
-
@data['키워드설정']['키워드'] << [false, keyword]
|
3429
|
-
@data['키워드설정']['키워드'] << [false, keyword]
|
3430
|
-
@data['키워드설정']['키워드'].pop
|
3431
|
-
end
|
3432
|
-
end
|
3433
|
-
end
|
3434
|
-
|
3435
|
-
}
|
3436
|
-
}
|
3389
|
+
stretchy false
|
3390
|
+
button('키워드불러오기'){
|
3391
|
+
on_clicked{
|
3392
|
+
file = open_file
|
3393
|
+
if file != nil
|
3394
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3395
|
+
file_data.split("\n").each do |keyword|
|
3396
|
+
if keyword.split(' ').join('').length < 2
|
3437
3397
|
|
3438
|
-
|
3439
|
-
|
3440
|
-
|
3441
|
-
grid{
|
3442
|
-
button('전체선택'){
|
3443
|
-
top 1
|
3444
|
-
left 1
|
3445
|
-
on_clicked{
|
3446
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3447
|
-
@data['키워드설정']['키워드'][n][0] = true
|
3448
|
-
@data['키워드설정']['키워드'] << []
|
3449
|
-
@data['키워드설정']['키워드'].pop
|
3450
|
-
end
|
3451
|
-
}
|
3452
|
-
}
|
3453
|
-
button('선택해제'){
|
3454
|
-
top 1
|
3455
|
-
left 2
|
3456
|
-
on_clicked{
|
3457
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3458
|
-
@data['키워드설정']['키워드'][n][0] = false
|
3459
|
-
@data['키워드설정']['키워드'] << []
|
3398
|
+
else
|
3399
|
+
@data['키워드설정']['키워드'] << [false, keyword]
|
3400
|
+
@data['키워드설정']['키워드'] << [false, keyword]
|
3460
3401
|
@data['키워드설정']['키워드'].pop
|
3461
3402
|
end
|
3462
|
-
|
3463
|
-
|
3464
|
-
button('삭제하기'){
|
3465
|
-
top 1
|
3466
|
-
left 3
|
3467
|
-
on_clicked{
|
3468
|
-
m = Array.new
|
3469
|
-
for n in 0..@data['키워드설정']['키워드'].length-1
|
3470
|
-
if @data['키워드설정']['키워드'][n][0] == true
|
3471
|
-
m << n
|
3472
|
-
end
|
3473
|
-
end
|
3403
|
+
end
|
3404
|
+
end
|
3474
3405
|
|
3475
|
-
m.reverse.each do |i|
|
3476
|
-
@data['키워드설정']['키워드'].delete_at(i)
|
3477
|
-
end
|
3478
|
-
@data['키워드설정']['키워드'].delete(nil)
|
3479
|
-
}
|
3480
|
-
}
|
3481
|
-
}
|
3482
|
-
|
3483
|
-
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3484
|
-
stretchy false
|
3485
|
-
on_toggled{ |c|
|
3486
|
-
if c.checked?
|
3487
|
-
@data['키워드설정']['랜덤사용'].checked = false
|
3488
|
-
end
|
3489
|
-
}
|
3490
|
-
}
|
3491
|
-
@data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3492
|
-
stretchy false
|
3493
|
-
on_toggled{ |c|
|
3494
|
-
if c.checked?
|
3495
|
-
@data['키워드설정']['순서사용'].checked = false
|
3496
|
-
end
|
3497
|
-
}
|
3498
|
-
}
|
3499
3406
|
}
|
3500
|
-
|
3501
|
-
checkbox_column('선택'){
|
3502
|
-
editable true
|
3503
|
-
}
|
3504
|
-
text_column('키워드'){
|
3505
|
-
|
3506
|
-
}
|
3407
|
+
}
|
3507
3408
|
|
3508
|
-
|
3409
|
+
}
|
3410
|
+
horizontal_box{
|
3411
|
+
stretchy false
|
3412
|
+
grid{
|
3413
|
+
button('전체선택'){
|
3414
|
+
top 1
|
3415
|
+
left 1
|
3416
|
+
on_clicked{
|
3417
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3418
|
+
@data['키워드설정']['키워드'][n][0] = true
|
3419
|
+
@data['키워드설정']['키워드'] << []
|
3420
|
+
@data['키워드설정']['키워드'].pop
|
3421
|
+
end
|
3509
3422
|
}
|
3510
|
-
|
3511
3423
|
}
|
3512
|
-
|
3513
|
-
|
3424
|
+
button('선택해제'){
|
3425
|
+
top 1
|
3426
|
+
left 2
|
3427
|
+
on_clicked{
|
3428
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3429
|
+
@data['키워드설정']['키워드'][n][0] = false
|
3430
|
+
@data['키워드설정']['키워드'] << []
|
3431
|
+
@data['키워드설정']['키워드'].pop
|
3432
|
+
end
|
3433
|
+
}
|
3514
3434
|
}
|
3515
|
-
|
3516
|
-
|
3517
|
-
|
3518
|
-
|
3519
|
-
|
3520
|
-
|
3521
|
-
|
3522
|
-
|
3523
|
-
|
3524
|
-
|
3525
|
-
|
3526
|
-
else
|
3527
|
-
@data['제목설정']['제목'] << [false, title]
|
3528
|
-
@data['제목설정']['제목'] << [false, title]
|
3529
|
-
@data['제목설정']['제목'].pop
|
3530
|
-
end
|
3531
|
-
end
|
3532
|
-
end
|
3533
|
-
}
|
3534
|
-
}
|
3435
|
+
button('삭제하기'){
|
3436
|
+
top 1
|
3437
|
+
left 3
|
3438
|
+
on_clicked{
|
3439
|
+
m = Array.new
|
3440
|
+
for n in 0..@data['키워드설정']['키워드'].length-1
|
3441
|
+
if @data['키워드설정']['키워드'][n][0] == true
|
3442
|
+
m << n
|
3443
|
+
end
|
3444
|
+
end
|
3535
3445
|
|
3446
|
+
m.reverse.each do |i|
|
3447
|
+
@data['키워드설정']['키워드'].delete_at(i)
|
3448
|
+
end
|
3449
|
+
@data['키워드설정']['키워드'].delete(nil)
|
3536
3450
|
}
|
3537
|
-
|
3538
|
-
|
3539
|
-
|
3540
|
-
|
3541
|
-
|
3542
|
-
|
3543
|
-
|
3544
|
-
|
3545
|
-
|
3546
|
-
@data['제목설정']['제목'] << []
|
3547
|
-
@data['제목설정']['제목'].pop
|
3548
|
-
end
|
3549
|
-
}
|
3550
|
-
}
|
3551
|
-
button('선택해제'){
|
3552
|
-
top 1
|
3553
|
-
left 2
|
3554
|
-
on_clicked{
|
3555
|
-
for n in 0..@data['제목설정']['제목'].length-1
|
3556
|
-
@data['제목설정']['제목'][n][0] = false
|
3557
|
-
@data['제목설정']['제목'] << []
|
3558
|
-
@data['제목설정']['제목'].pop
|
3559
|
-
end
|
3560
|
-
}
|
3561
|
-
}
|
3562
|
-
button('삭제하기'){
|
3563
|
-
top 1
|
3564
|
-
left 3
|
3565
|
-
on_clicked{
|
3566
|
-
m = Array.new
|
3567
|
-
for n in 0..@data['제목설정']['제목'].length-1
|
3568
|
-
if @data['제목설정']['제목'][n][0] == true
|
3569
|
-
m << n
|
3570
|
-
end
|
3571
|
-
end
|
3572
|
-
|
3573
|
-
m.reverse.each do |i|
|
3574
|
-
@data['제목설정']['제목'].delete_at(i)
|
3575
|
-
end
|
3576
|
-
@data['제목설정']['제목'].delete(nil)
|
3577
|
-
}
|
3578
|
-
}
|
3451
|
+
}
|
3452
|
+
}
|
3453
|
+
|
3454
|
+
@data['키워드설정']['순서사용'] = checkbox('순서사용'){
|
3455
|
+
stretchy false
|
3456
|
+
on_toggled{ |c|
|
3457
|
+
if c.checked?
|
3458
|
+
@data['키워드설정']['랜덤사용'].checked = false
|
3459
|
+
end
|
3579
3460
|
}
|
3580
|
-
|
3581
|
-
|
3582
|
-
|
3583
|
-
|
3584
|
-
|
3585
|
-
|
3586
|
-
|
3587
|
-
}
|
3588
|
-
@data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3589
|
-
stretchy false
|
3590
|
-
on_toggled{ |c|
|
3591
|
-
if c.checked?
|
3592
|
-
@data['제목설정']['순서사용'].checked = false
|
3593
|
-
end
|
3594
|
-
}
|
3595
|
-
}
|
3461
|
+
}
|
3462
|
+
@data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3463
|
+
stretchy false
|
3464
|
+
on_toggled{ |c|
|
3465
|
+
if c.checked?
|
3466
|
+
@data['키워드설정']['순서사용'].checked = false
|
3467
|
+
end
|
3596
3468
|
}
|
3597
|
-
|
3598
|
-
|
3599
|
-
|
3600
|
-
|
3601
|
-
|
3602
|
-
|
3603
|
-
|
3469
|
+
}
|
3470
|
+
}
|
3471
|
+
vertical_separator{
|
3472
|
+
stretchy false
|
3473
|
+
}
|
3474
|
+
horizontal_box{
|
3475
|
+
stretchy false
|
3476
|
+
grid{
|
3477
|
+
@data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
|
3478
|
+
top 1
|
3479
|
+
left 0
|
3480
|
+
#enabled false # 기본적으로 비활성화
|
3481
|
+
on_toggled {
|
3482
|
+
if @data['포스트설정']['gpt키워드'].checked?
|
3483
|
+
@data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
|
3484
|
+
@data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
|
3485
|
+
else
|
3486
|
+
@data['포스트설정']['gpt상단'].checked = false # 체크 해제
|
3487
|
+
@data['포스트설정']['gpt상단'].enabled = false # 비활성화
|
3488
|
+
@data['포스트설정']['gpt하단'].checked = false # 체크 해제
|
3489
|
+
@data['포스트설정']['gpt하단'].enabled = false # 비활성화
|
3490
|
+
end
|
3491
|
+
}
|
3492
|
+
|
3493
|
+
}
|
3494
|
+
|
3495
|
+
@data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
|
3496
|
+
top 1
|
3497
|
+
left 1
|
3498
|
+
enabled false # 기본적으로 비활성화
|
3499
|
+
on_toggled{
|
3500
|
+
if @data['포스트설정']['gpt상단'].checked?
|
3501
|
+
@data['포스트설정']['gpt하단'].checked = false
|
3502
|
+
end
|
3503
|
+
}
|
3504
|
+
}
|
3604
3505
|
|
3605
|
-
|
3506
|
+
@data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
|
3507
|
+
top 1
|
3508
|
+
left 2
|
3509
|
+
enabled false # 기본적으로 비활성화
|
3510
|
+
on_toggled{
|
3511
|
+
if @data['포스트설정']['gpt하단'].checked?
|
3512
|
+
@data['포스트설정']['gpt상단'].checked = false
|
3513
|
+
end
|
3606
3514
|
}
|
3607
|
-
|
3515
|
+
}
|
3516
|
+
} }
|
3517
|
+
horizontal_box{
|
3518
|
+
stretchy false
|
3519
|
+
grid{
|
3520
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3521
|
+
} } }
|
3522
|
+
|
3523
|
+
|
3524
|
+
table{
|
3525
|
+
checkbox_column('선택'){
|
3526
|
+
editable true
|
3608
3527
|
}
|
3609
|
-
|
3610
|
-
|
3528
|
+
text_column('키워드'){
|
3529
|
+
|
3611
3530
|
}
|
3612
|
-
vertical_box{
|
3613
|
-
horizontal_box{
|
3614
|
-
stretchy false
|
3615
|
-
button('내용불러오기'){
|
3616
|
-
on_clicked{
|
3617
|
-
file = open_file
|
3618
|
-
if file != nil
|
3619
|
-
file_name = file.split("\\")[-1]
|
3620
|
-
file_data = File.open(file,'r', :encoding => 'utf-8').read()
|
3621
|
-
if file_data.split("\n").length < 2
|
3622
|
-
file_data = file_data + "\n"
|
3623
|
-
end
|
3624
|
-
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3625
|
-
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3626
|
-
@data['내용설정']['내용'].pop
|
3627
|
-
end
|
3628
|
-
}
|
3629
|
-
}
|
3630
3531
|
|
3631
|
-
|
3632
|
-
|
3633
|
-
|
3634
|
-
|
3635
|
-
|
3636
|
-
|
3637
|
-
|
3638
|
-
|
3639
|
-
|
3640
|
-
|
3641
|
-
|
3642
|
-
|
3643
|
-
|
3644
|
-
|
3645
|
-
|
3646
|
-
|
3647
|
-
|
3648
|
-
|
3649
|
-
|
3650
|
-
for n in 0..@data['내용설정']['내용'].length-1
|
3651
|
-
@data['내용설정']['내용'][n][0] = false
|
3652
|
-
@data['내용설정']['내용'] << []
|
3653
|
-
@data['내용설정']['내용'].pop
|
3654
|
-
end
|
3655
|
-
}
|
3656
|
-
}
|
3657
|
-
button('삭제하기'){
|
3658
|
-
top 1
|
3659
|
-
left 3
|
3660
|
-
on_clicked{
|
3661
|
-
m = Array.new
|
3662
|
-
for n in 0..@data['내용설정']['내용'].length-1
|
3663
|
-
if @data['내용설정']['내용'][n][0] == true
|
3664
|
-
m << n
|
3665
|
-
end
|
3666
|
-
end
|
3532
|
+
cell_rows @data['키워드설정']['키워드']
|
3533
|
+
}
|
3534
|
+
|
3535
|
+
|
3536
|
+
|
3537
|
+
}
|
3538
|
+
vertical_separator{
|
3539
|
+
stretchy false
|
3540
|
+
}
|
3541
|
+
vertical_box{
|
3542
|
+
horizontal_box{
|
3543
|
+
stretchy false
|
3544
|
+
button('제목불러오기'){
|
3545
|
+
on_clicked{
|
3546
|
+
file = open_file
|
3547
|
+
if file != nil
|
3548
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3549
|
+
file_data.split("\n").each do |title|
|
3550
|
+
if title.split(" ").join('').length < 2
|
3667
3551
|
|
3668
|
-
|
3669
|
-
@data['
|
3670
|
-
|
3671
|
-
|
3672
|
-
}
|
3673
|
-
}
|
3674
|
-
}
|
3675
|
-
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
3676
|
-
stretchy false
|
3677
|
-
on_toggled{ |c|
|
3678
|
-
if c.checked?
|
3679
|
-
@data['내용설정']['랜덤사용'].checked = false
|
3680
|
-
end
|
3681
|
-
}
|
3682
|
-
}
|
3683
|
-
@data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3684
|
-
stretchy false
|
3685
|
-
on_toggled{ |c|
|
3686
|
-
if c.checked?
|
3687
|
-
@data['내용설정']['순서사용'].checked = false
|
3552
|
+
else
|
3553
|
+
@data['제목설정']['제목'] << [false, title]
|
3554
|
+
@data['제목설정']['제목'] << [false, title]
|
3555
|
+
@data['제목설정']['제목'].pop
|
3688
3556
|
end
|
3689
|
-
|
3690
|
-
|
3557
|
+
end
|
3558
|
+
end
|
3691
3559
|
}
|
3692
|
-
|
3693
|
-
checkbox_column('선택'){
|
3694
|
-
editable true
|
3695
|
-
}
|
3696
|
-
text_column('내용파일'){
|
3697
|
-
|
3698
|
-
}
|
3560
|
+
}
|
3699
3561
|
|
3700
|
-
|
3562
|
+
}
|
3563
|
+
horizontal_box{
|
3564
|
+
stretchy false
|
3565
|
+
grid{
|
3566
|
+
button('전체선택'){
|
3567
|
+
top 1
|
3568
|
+
left 1
|
3569
|
+
on_clicked{
|
3570
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3571
|
+
@data['제목설정']['제목'][n][0] = true
|
3572
|
+
@data['제목설정']['제목'] << []
|
3573
|
+
@data['제목설정']['제목'].pop
|
3574
|
+
end
|
3575
|
+
}
|
3576
|
+
}
|
3577
|
+
button('선택해제'){
|
3578
|
+
top 1
|
3579
|
+
left 2
|
3580
|
+
on_clicked{
|
3581
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3582
|
+
@data['제목설정']['제목'][n][0] = false
|
3583
|
+
@data['제목설정']['제목'] << []
|
3584
|
+
@data['제목설정']['제목'].pop
|
3585
|
+
end
|
3701
3586
|
}
|
3587
|
+
}
|
3588
|
+
button('삭제하기'){
|
3589
|
+
top 1
|
3590
|
+
left 3
|
3591
|
+
on_clicked{
|
3592
|
+
m = Array.new
|
3593
|
+
for n in 0..@data['제목설정']['제목'].length-1
|
3594
|
+
if @data['제목설정']['제목'][n][0] == true
|
3595
|
+
m << n
|
3596
|
+
end
|
3597
|
+
end
|
3702
3598
|
|
3703
|
-
|
3704
|
-
|
3705
|
-
|
3706
|
-
|
3707
|
-
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3708
|
-
}
|
3709
|
-
button('폴더째로불러오기'){
|
3710
|
-
stretchy false
|
3711
|
-
on_clicked{
|
3712
|
-
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
3713
|
-
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
3714
|
-
if file == '.' or file == '..'
|
3715
|
-
|
3716
|
-
else
|
3717
|
-
file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
|
3718
|
-
@data['내용설정']['내용'] << [false, file, file_data]
|
3719
|
-
end
|
3720
|
-
end
|
3721
|
-
@data['내용설정']['내용'] << []
|
3722
|
-
@data['내용설정']['내용'].pop
|
3723
|
-
}
|
3724
|
-
}
|
3599
|
+
m.reverse.each do |i|
|
3600
|
+
@data['제목설정']['제목'].delete_at(i)
|
3601
|
+
end
|
3602
|
+
@data['제목설정']['제목'].delete(nil)
|
3725
3603
|
}
|
3726
3604
|
}
|
3727
3605
|
}
|
3728
|
-
|
3729
|
-
tab_item('이미지설정'){
|
3730
|
-
horizontal_box{
|
3731
|
-
vertical_box{
|
3606
|
+
@data['제목설정']['순서사용'] = checkbox('순서사용'){
|
3732
3607
|
stretchy false
|
3733
|
-
|
3734
|
-
|
3735
|
-
|
3736
|
-
|
3737
|
-
file = open_file
|
3738
|
-
if file != nil
|
3739
|
-
file_name = file.split("\\")[-1]
|
3740
|
-
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3741
|
-
@data['이미지설정']['이미지'] << [false, file_name, file]
|
3742
|
-
@data['이미지설정']['이미지'].pop
|
3743
|
-
end
|
3744
|
-
}
|
3745
|
-
}
|
3608
|
+
on_toggled{ |c|
|
3609
|
+
if c.checked?
|
3610
|
+
@data['제목설정']['랜덤사용'].checked = false
|
3611
|
+
end
|
3746
3612
|
}
|
3747
|
-
|
3748
|
-
|
3749
|
-
|
3750
|
-
|
3751
|
-
|
3752
|
-
|
3753
|
-
|
3754
|
-
|
3755
|
-
|
3756
|
-
|
3757
|
-
|
3758
|
-
|
3759
|
-
|
3760
|
-
|
3761
|
-
|
3762
|
-
|
3763
|
-
|
3764
|
-
|
3765
|
-
|
3766
|
-
|
3767
|
-
|
3768
|
-
|
3769
|
-
|
3770
|
-
|
3771
|
-
|
3772
|
-
|
3773
|
-
top 1
|
3774
|
-
left 3
|
3775
|
-
on_clicked{
|
3776
|
-
m = Array.new
|
3777
|
-
for n in 0..@data['이미지설정']['이미지'].length-1
|
3778
|
-
if @data['이미지설정']['이미지'][n][0] == true
|
3779
|
-
m << n
|
3780
|
-
end
|
3781
|
-
end
|
3613
|
+
}
|
3614
|
+
@data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3615
|
+
stretchy false
|
3616
|
+
on_toggled{ |c|
|
3617
|
+
if c.checked?
|
3618
|
+
@data['제목설정']['순서사용'].checked = false
|
3619
|
+
end
|
3620
|
+
}
|
3621
|
+
}
|
3622
|
+
}
|
3623
|
+
vertical_separator{
|
3624
|
+
stretchy false
|
3625
|
+
}
|
3626
|
+
horizontal_box{
|
3627
|
+
stretchy false
|
3628
|
+
grid{
|
3629
|
+
@data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
|
3630
|
+
|
3631
|
+
|
3632
|
+
}}}
|
3633
|
+
horizontal_box{
|
3634
|
+
stretchy false
|
3635
|
+
grid{
|
3636
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3637
|
+
} } }
|
3638
|
+
|
3782
3639
|
|
3783
|
-
|
3784
|
-
|
3785
|
-
|
3640
|
+
table{
|
3641
|
+
checkbox_column('선택'){
|
3642
|
+
editable true
|
3643
|
+
}
|
3644
|
+
text_column('제목'){
|
3786
3645
|
|
3787
|
-
|
3788
|
-
}
|
3789
|
-
}
|
3790
|
-
}
|
3791
|
-
@data['이미지설정']['순서사용'] = checkbox('순서사용'){
|
3792
|
-
stretchy false
|
3793
|
-
on_toggled{ |c|
|
3794
|
-
if c.checked?
|
3795
|
-
@data['이미지설정']['랜덤사용'].checked = false
|
3796
|
-
end
|
3797
|
-
}
|
3798
|
-
}
|
3799
|
-
@data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3800
|
-
stretchy false
|
3801
|
-
on_toggled{ |c|
|
3802
|
-
if c.checked?
|
3803
|
-
@data['이미지설정']['순서사용'].checked = false
|
3804
|
-
end
|
3805
|
-
}
|
3806
|
-
}
|
3807
|
-
}
|
3808
|
-
table{
|
3809
|
-
checkbox_column('선택'){
|
3810
|
-
editable true
|
3811
|
-
}
|
3812
|
-
text_column('이미지파일'){
|
3646
|
+
}
|
3813
3647
|
|
3814
|
-
|
3648
|
+
cell_rows @data['제목설정']['제목']
|
3649
|
+
}
|
3650
|
+
|
3815
3651
|
|
3816
|
-
|
3817
|
-
|
3818
|
-
|
3819
|
-
|
3820
|
-
|
3821
|
-
|
3822
|
-
|
3823
|
-
|
3824
|
-
|
3825
|
-
|
3826
|
-
|
3827
|
-
|
3828
|
-
|
3829
|
-
|
3830
|
-
|
3831
|
-
|
3832
|
-
|
3833
|
-
|
3834
|
-
|
3835
|
-
|
3836
|
-
@data['이미지설정']['이미지'].pop
|
3837
|
-
}
|
3838
|
-
}
|
3652
|
+
}
|
3653
|
+
vertical_separator{
|
3654
|
+
stretchy false
|
3655
|
+
}
|
3656
|
+
vertical_box{
|
3657
|
+
horizontal_box{
|
3658
|
+
stretchy false
|
3659
|
+
button('내용불러오기'){
|
3660
|
+
on_clicked{
|
3661
|
+
file = open_file
|
3662
|
+
if file != nil
|
3663
|
+
file_name = file.split("\\")[-1]
|
3664
|
+
file_data = File.open(file,'r', :encoding => 'utf-8').read()
|
3665
|
+
if file_data.split("\n").length < 2
|
3666
|
+
file_data = file_data + "\n"
|
3667
|
+
end
|
3668
|
+
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3669
|
+
@data['내용설정']['내용'] << [false, file_name, file_data]
|
3670
|
+
@data['내용설정']['내용'].pop
|
3671
|
+
end
|
3839
3672
|
}
|
3840
|
-
|
3841
|
-
}
|
3842
|
-
vertical_separator{
|
3843
|
-
stretchy false
|
3844
3673
|
}
|
3845
3674
|
|
3846
|
-
|
3847
|
-
|
3848
|
-
|
3849
|
-
|
3850
|
-
|
3851
|
-
|
3852
|
-
|
3853
|
-
|
3854
|
-
|
3855
|
-
|
3856
|
-
|
3857
|
-
|
3858
|
-
|
3859
|
-
if @data['image_type'][1].checked?
|
3860
|
-
@data['image_type'][0].checked = false
|
3861
|
-
@data['image_type'][2].checked = false
|
3862
|
-
end
|
3863
|
-
}
|
3864
|
-
}
|
3865
|
-
@data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
|
3866
|
-
on_toggled{
|
3867
|
-
if @data['image_type'][2].checked?
|
3868
|
-
@data['image_type'][1].checked = false
|
3869
|
-
@data['image_type'][0].checked = false
|
3870
|
-
end
|
3871
|
-
}
|
3872
|
-
}
|
3675
|
+
}
|
3676
|
+
horizontal_box{
|
3677
|
+
stretchy false
|
3678
|
+
grid{
|
3679
|
+
button('전체선택'){
|
3680
|
+
top 1
|
3681
|
+
left 1
|
3682
|
+
on_clicked{
|
3683
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3684
|
+
@data['내용설정']['내용'][n][0] = true
|
3685
|
+
@data['내용설정']['내용'] << []
|
3686
|
+
@data['내용설정']['내용'].pop
|
3687
|
+
end
|
3873
3688
|
}
|
3874
|
-
|
3875
|
-
|
3876
|
-
|
3877
|
-
|
3878
|
-
|
3879
|
-
|
3880
|
-
|
3881
|
-
|
3882
|
-
|
3883
|
-
|
3884
|
-
on_clicked{
|
3885
|
-
file = open_file
|
3886
|
-
if file != nil
|
3887
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3888
|
-
@data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
|
3889
|
-
end
|
3890
|
-
}
|
3891
|
-
}
|
3892
|
-
@data['이미지설정']['이미지글자1크기1'] = entry{
|
3893
|
-
top 0
|
3894
|
-
left 2
|
3895
|
-
text 'ex) 33'
|
3896
|
-
}
|
3897
|
-
label('pt'){
|
3898
|
-
top 0
|
3899
|
-
left 3
|
3900
|
-
}
|
3901
|
-
@data['이미지설정']['이미지글자1크기2'] = entry{
|
3902
|
-
top 0
|
3903
|
-
left 4
|
3904
|
-
text 'ex) 55'
|
3905
|
-
}
|
3906
|
-
label('pt'){
|
3907
|
-
top 0
|
3908
|
-
left 5
|
3909
|
-
}
|
3910
|
-
@data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
|
3911
|
-
top 0
|
3912
|
-
left 6
|
3913
|
-
}
|
3914
|
-
|
3915
|
-
@data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
|
3916
|
-
top 1
|
3917
|
-
left 0
|
3918
|
-
}
|
3919
|
-
button('가져오기'){
|
3920
|
-
top 1
|
3921
|
-
left 1
|
3922
|
-
on_clicked{
|
3923
|
-
file = open_file
|
3924
|
-
if file != nil
|
3925
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3926
|
-
@data['이미지설정']['이미지글자2'] = file_data.split("\n")
|
3927
|
-
end
|
3928
|
-
}
|
3929
|
-
}
|
3930
|
-
@data['이미지설정']['이미지글자2크기1'] = entry{
|
3931
|
-
top 1
|
3932
|
-
left 2
|
3933
|
-
text 'ex) 33'
|
3934
|
-
}
|
3935
|
-
label('pt'){
|
3936
|
-
top 1
|
3937
|
-
left 3
|
3938
|
-
}
|
3939
|
-
@data['이미지설정']['이미지글자2크기2'] = entry{
|
3940
|
-
top 1
|
3941
|
-
left 4
|
3942
|
-
text 'ex) 55'
|
3943
|
-
}
|
3944
|
-
label('pt'){
|
3945
|
-
top 1
|
3946
|
-
left 5
|
3947
|
-
}
|
3948
|
-
@data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
|
3949
|
-
top 1
|
3950
|
-
left 6
|
3951
|
-
}
|
3952
|
-
@data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
|
3953
|
-
top 2
|
3954
|
-
left 0
|
3955
|
-
}
|
3956
|
-
@data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
|
3957
|
-
top 3
|
3958
|
-
left 0
|
3959
|
-
}
|
3960
|
-
@data['이미지설정']['테두리크기1'] = entry{
|
3961
|
-
top 3
|
3962
|
-
left 2
|
3963
|
-
text 'ex) 1'
|
3964
|
-
}
|
3965
|
-
label('pt'){
|
3966
|
-
top 3
|
3967
|
-
left 3
|
3968
|
-
}
|
3969
|
-
@data['이미지설정']['테두리크기2'] = entry{
|
3970
|
-
top 3
|
3971
|
-
left 4
|
3972
|
-
text 'ex) 33'
|
3973
|
-
}
|
3974
|
-
label('pt'){
|
3975
|
-
top 3
|
3976
|
-
left 5
|
3977
|
-
}
|
3978
|
-
|
3689
|
+
}
|
3690
|
+
button('선택해제'){
|
3691
|
+
top 1
|
3692
|
+
left 2
|
3693
|
+
on_clicked{
|
3694
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3695
|
+
@data['내용설정']['내용'][n][0] = false
|
3696
|
+
@data['내용설정']['내용'] << []
|
3697
|
+
@data['내용설정']['내용'].pop
|
3698
|
+
end
|
3979
3699
|
}
|
3700
|
+
}
|
3701
|
+
button('삭제하기'){
|
3702
|
+
top 1
|
3703
|
+
left 3
|
3704
|
+
on_clicked{
|
3705
|
+
m = Array.new
|
3706
|
+
for n in 0..@data['내용설정']['내용'].length-1
|
3707
|
+
if @data['내용설정']['내용'][n][0] == true
|
3708
|
+
m << n
|
3709
|
+
end
|
3710
|
+
end
|
3980
3711
|
|
3981
|
-
|
3982
|
-
|
3983
|
-
|
3984
|
-
|
3985
|
-
if @data['image_size'][0].checked?
|
3986
|
-
@data['image_size'][1].checked = false
|
3987
|
-
@data['image_size'][2].checked = false
|
3988
|
-
@data['image_size'][3].checked = false
|
3989
|
-
@data['image_size'][4].checked = false
|
3990
|
-
end
|
3991
|
-
}
|
3992
|
-
}
|
3993
|
-
@data['image_size'][1] = checkbox('740 px'){
|
3994
|
-
on_toggled{
|
3995
|
-
if @data['image_size'][1].checked?
|
3996
|
-
@data['image_size'][0].checked = false
|
3997
|
-
@data['image_size'][2].checked = false
|
3998
|
-
@data['image_size'][3].checked = false
|
3999
|
-
@data['image_size'][4].checked = false
|
4000
|
-
end
|
4001
|
-
}
|
4002
|
-
}
|
4003
|
-
@data['image_size'][2] = checkbox('650 px'){
|
4004
|
-
on_toggled{
|
4005
|
-
if @data['image_size'][2].checked?
|
4006
|
-
@data['image_size'][1].checked = false
|
4007
|
-
@data['image_size'][0].checked = false
|
4008
|
-
@data['image_size'][3].checked = false
|
4009
|
-
@data['image_size'][4].checked = false
|
4010
|
-
end
|
4011
|
-
}
|
4012
|
-
}
|
4013
|
-
@data['image_size'][3] = checkbox('550 px'){
|
4014
|
-
on_toggled{
|
4015
|
-
if @data['image_size'][3].checked?
|
4016
|
-
@data['image_size'][1].checked = false
|
4017
|
-
@data['image_size'][2].checked = false
|
4018
|
-
@data['image_size'][0].checked = false
|
4019
|
-
@data['image_size'][4].checked = false
|
4020
|
-
end
|
4021
|
-
}
|
4022
|
-
}
|
4023
|
-
@data['image_size'][4] = checkbox('480 px'){
|
4024
|
-
on_toggled{
|
4025
|
-
if @data['image_size'][4].checked?
|
4026
|
-
@data['image_size'][1].checked = false
|
4027
|
-
@data['image_size'][2].checked = false
|
4028
|
-
@data['image_size'][3].checked = false
|
4029
|
-
@data['image_size'][0].checked = false
|
4030
|
-
end
|
4031
|
-
}
|
4032
|
-
}
|
3712
|
+
m.reverse.each do |i|
|
3713
|
+
@data['내용설정']['내용'].delete_at(i)
|
3714
|
+
end
|
3715
|
+
@data['내용설정']['내용'].delete(nil)
|
4033
3716
|
}
|
4034
3717
|
}
|
4035
3718
|
}
|
4036
|
-
|
4037
|
-
|
4038
|
-
tab_item('포스트설정1'){
|
4039
|
-
horizontal_box{
|
4040
|
-
vertical_box{
|
3719
|
+
@data['내용설정']['순서사용'] = checkbox('순서사용'){
|
4041
3720
|
stretchy false
|
4042
|
-
|
4043
|
-
|
4044
|
-
|
4045
|
-
|
4046
|
-
|
4047
|
-
|
4048
|
-
|
4049
|
-
|
4050
|
-
|
4051
|
-
|
4052
|
-
|
4053
|
-
|
4054
|
-
|
4055
|
-
|
4056
|
-
|
4057
|
-
|
4058
|
-
|
4059
|
-
|
4060
|
-
|
4061
|
-
|
4062
|
-
|
4063
|
-
|
4064
|
-
|
4065
|
-
|
4066
|
-
|
4067
|
-
|
4068
|
-
|
4069
|
-
|
4070
|
-
|
4071
|
-
|
4072
|
-
|
4073
|
-
|
4074
|
-
|
4075
|
-
|
4076
|
-
|
4077
|
-
|
4078
|
-
}
|
4079
|
-
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4080
|
-
top 2
|
4081
|
-
left 1
|
4082
|
-
text '최소수량'
|
4083
|
-
}
|
4084
|
-
label('~'){
|
4085
|
-
top 2
|
4086
|
-
left 2
|
4087
|
-
}
|
4088
|
-
@data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
|
4089
|
-
top 2
|
4090
|
-
left 3
|
4091
|
-
text '최대수량'
|
4092
|
-
}
|
4093
|
-
label('ㄴ'){
|
4094
|
-
top 3
|
4095
|
-
left 2
|
4096
|
-
}
|
4097
|
-
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4098
|
-
top 3
|
4099
|
-
left 3
|
4100
|
-
on_toggled{
|
4101
|
-
if @data['포스트설정']['제목앞'].checked? == true
|
4102
|
-
if @data['포스트설정']['제목뒤'].checked?
|
4103
|
-
@data['포스트설정']['제목뒤'].checked = false
|
4104
|
-
end
|
4105
|
-
end
|
4106
|
-
}
|
4107
|
-
}
|
4108
|
-
label('ㄴ'){
|
4109
|
-
top 4
|
4110
|
-
left 2
|
4111
|
-
}
|
4112
|
-
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4113
|
-
top 4
|
4114
|
-
left 3
|
4115
|
-
on_toggled{
|
4116
|
-
if @data['포스트설정']['제목뒤'].checked? == true
|
4117
|
-
if @data['포스트설정']['제목앞'].checked?
|
4118
|
-
@data['포스트설정']['제목앞'].checked = false
|
4119
|
-
end
|
4120
|
-
end
|
4121
|
-
}
|
4122
|
-
}
|
4123
|
-
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4124
|
-
top 4
|
4125
|
-
left 0
|
4126
|
-
}
|
4127
|
-
|
4128
|
-
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4129
|
-
top 5
|
4130
|
-
left 0
|
4131
|
-
}
|
4132
|
-
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4133
|
-
top 6
|
4134
|
-
left 0
|
4135
|
-
}
|
4136
|
-
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4137
|
-
top 7
|
4138
|
-
left 0
|
4139
|
-
}
|
4140
|
-
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4141
|
-
top 7
|
4142
|
-
left 1
|
4143
|
-
text '최소수량'
|
4144
|
-
}
|
4145
|
-
label('~'){
|
4146
|
-
top 7
|
4147
|
-
left 2
|
4148
|
-
}
|
4149
|
-
@data['포스트설정']['키워드삽입끝숫자'] = entry(){
|
4150
|
-
top 7
|
4151
|
-
left 3
|
4152
|
-
text '최대수량'
|
4153
|
-
}
|
4154
|
-
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4155
|
-
top 8
|
4156
|
-
left 0
|
4157
|
-
}
|
4158
|
-
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4159
|
-
top 8
|
4160
|
-
left 1
|
4161
|
-
text 'URL'
|
4162
|
-
}
|
4163
|
-
@data['포스트설정']['내용을자동생성'] = checkbox('내용을 키워드 기반으로 자동 생성해서 포스팅'){
|
4164
|
-
top 9
|
4165
|
-
left 0
|
4166
|
-
on_toggled{
|
4167
|
-
if @data['포스트설정']['내용을자동생성'].checked?
|
4168
|
-
if @data['포스트설정']['내용과자동생성'].checked?
|
4169
|
-
@data['포스트설정']['내용과자동생성'].checked = false
|
4170
|
-
end
|
4171
|
-
end
|
4172
|
-
}
|
4173
|
-
}
|
3721
|
+
on_toggled{ |c|
|
3722
|
+
if c.checked?
|
3723
|
+
@data['내용설정']['랜덤사용'].checked = false
|
3724
|
+
end
|
3725
|
+
}
|
3726
|
+
}
|
3727
|
+
@data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3728
|
+
stretchy false
|
3729
|
+
on_toggled{ |c|
|
3730
|
+
if c.checked?
|
3731
|
+
@data['내용설정']['순서사용'].checked = false
|
3732
|
+
end
|
3733
|
+
}
|
3734
|
+
}
|
3735
|
+
}
|
3736
|
+
vertical_separator{
|
3737
|
+
stretchy false
|
3738
|
+
}
|
3739
|
+
horizontal_box{
|
3740
|
+
stretchy false
|
3741
|
+
grid{
|
3742
|
+
@data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
|
3743
|
+
|
3744
|
+
|
3745
|
+
}}}
|
3746
|
+
horizontal_box{
|
3747
|
+
stretchy false
|
3748
|
+
grid{
|
3749
|
+
label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
|
3750
|
+
} } }
|
3751
|
+
|
3752
|
+
table{
|
3753
|
+
checkbox_column('선택'){
|
3754
|
+
editable true
|
3755
|
+
}
|
3756
|
+
text_column('내용파일'){
|
4174
3757
|
|
4175
|
-
|
4176
|
-
top 10
|
4177
|
-
left 0
|
4178
|
-
}
|
3758
|
+
}
|
4179
3759
|
|
4180
|
-
|
4181
|
-
|
4182
|
-
left 1
|
4183
|
-
text 'api key'
|
4184
|
-
}
|
3760
|
+
cell_rows @data['내용설정']['내용']
|
3761
|
+
}
|
4185
3762
|
|
4186
|
-
|
4187
|
-
|
4188
|
-
|
4189
|
-
|
3763
|
+
horizontal_box{
|
3764
|
+
stretchy false
|
3765
|
+
@data['이미지설정']['폴더경로2'] = entry{
|
3766
|
+
stretchy false
|
3767
|
+
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
3768
|
+
}
|
4190
3769
|
|
4191
|
-
|
4192
|
-
|
4193
|
-
|
4194
|
-
}
|
3770
|
+
button('폴더째로 불러오기') {
|
3771
|
+
on_clicked {
|
3772
|
+
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')
|
4195
3773
|
|
4196
|
-
|
4197
|
-
|
4198
|
-
|
4199
|
-
|
4200
|
-
|
4201
|
-
|
4202
|
-
|
4203
|
-
|
4204
|
-
|
4205
|
-
|
4206
|
-
|
4207
|
-
|
4208
|
-
|
4209
|
-
top 11+ aa1
|
4210
|
-
left 0
|
4211
|
-
}
|
4212
|
-
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4213
|
-
top 12+ aa1
|
4214
|
-
left 0
|
4215
|
-
}
|
4216
|
-
button('설정 파일 불러오기'){
|
4217
|
-
top 12+ aa1
|
4218
|
-
left 1
|
4219
|
-
on_clicked{
|
4220
|
-
file = open_file
|
4221
|
-
if file != nil
|
4222
|
-
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4223
|
-
file_data.split("\n").each do |i|
|
4224
|
-
key = i.split('>')[0]
|
4225
|
-
v = i.split('>')[1].to_s.split(',')
|
4226
|
-
@data['포스트설정']['내용자동변경값'][key] = v
|
3774
|
+
# 경로가 유효한지 확인
|
3775
|
+
if Dir.exist?(path)
|
3776
|
+
Dir.entries(path).each do |file|
|
3777
|
+
if file == '.' or file == '..'
|
3778
|
+
next
|
3779
|
+
else
|
3780
|
+
begin
|
3781
|
+
# 파일을 열고 내용을 읽어서 추가
|
3782
|
+
file_data = File.open(path + '/' + file, 'r', encoding: 'utf-8').read
|
3783
|
+
@data['내용설정']['내용'] << [false, file, file_data]
|
3784
|
+
rescue => e
|
3785
|
+
# 파일을 열 수 없는 경우, 오류 메시지 출력
|
3786
|
+
puts "파일을 열 수 없습니다: #{file}, 오류: #{e.message}"
|
4227
3787
|
end
|
4228
3788
|
end
|
4229
|
-
|
4230
|
-
}
|
4231
|
-
@data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
|
4232
|
-
top 12+ aa1
|
4233
|
-
left 3
|
4234
|
-
}
|
4235
|
-
|
4236
|
-
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4237
|
-
top 13+ aa1
|
4238
|
-
left 0
|
4239
|
-
}
|
4240
|
-
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4241
|
-
top 13+ aa1
|
4242
|
-
left 1
|
4243
|
-
text '최소수량'
|
4244
|
-
}
|
4245
|
-
label('~'){
|
4246
|
-
top 13+ aa1
|
4247
|
-
left 2
|
4248
|
-
}
|
4249
|
-
@data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
|
4250
|
-
top 13+ aa1
|
4251
|
-
left 3
|
4252
|
-
text '최대수량'
|
4253
|
-
}
|
4254
|
-
|
4255
|
-
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4256
|
-
top 14+ aa1
|
4257
|
-
left 0
|
4258
|
-
}
|
3789
|
+
end
|
4259
3790
|
|
4260
|
-
|
4261
|
-
|
4262
|
-
|
4263
|
-
|
4264
|
-
|
3791
|
+
# 내용 배열에서 마지막 빈 항목 제거
|
3792
|
+
@data['내용설정']['내용'] << []
|
3793
|
+
@data['내용설정']['내용'].pop
|
3794
|
+
else
|
3795
|
+
# 경로가 유효하지 않을 경우, 오류 메시지 출력
|
3796
|
+
puts "경로가 존재하지 않습니다: #{path}"
|
3797
|
+
end
|
4265
3798
|
}
|
4266
3799
|
}
|
4267
|
-
|
4268
|
-
|
4269
|
-
|
3800
|
+
}
|
3801
|
+
}
|
3802
|
+
}
|
3803
|
+
}
|
3804
|
+
tab_item('이미지설정'){
|
3805
|
+
horizontal_box{
|
3806
|
+
vertical_box{
|
3807
|
+
stretchy false
|
3808
|
+
horizontal_box{
|
3809
|
+
stretchy false
|
3810
|
+
button('이미지불러오기'){
|
3811
|
+
on_clicked{
|
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
|
+
}
|
4270
3820
|
}
|
4271
|
-
|
4272
|
-
|
3821
|
+
}
|
3822
|
+
horizontal_box{
|
3823
|
+
stretchy false
|
4273
3824
|
grid{
|
4274
|
-
|
4275
|
-
|
4276
|
-
|
3825
|
+
button('전체선택'){
|
3826
|
+
top 1
|
3827
|
+
left 1
|
3828
|
+
on_clicked{
|
3829
|
+
for n in 0..@data['이미지설정']['이미지'].length-1
|
3830
|
+
@data['이미지설정']['이미지'][n][0] = true
|
3831
|
+
@data['이미지설정']['이미지'] << []
|
3832
|
+
@data['이미지설정']['이미지'].pop
|
3833
|
+
end
|
4277
3834
|
}
|
4278
|
-
|
4279
|
-
|
4280
|
-
|
4281
|
-
|
3835
|
+
}
|
3836
|
+
button('선택해제'){
|
3837
|
+
top 1
|
3838
|
+
left 2
|
3839
|
+
on_clicked{
|
3840
|
+
for n in 0..@data['이미지설정']['이미지'].length-1
|
3841
|
+
@data['이미지설정']['이미지'][n][0] = false
|
3842
|
+
@data['이미지설정']['이미지'] << []
|
3843
|
+
@data['이미지설정']['이미지'].pop
|
3844
|
+
end
|
4282
3845
|
}
|
3846
|
+
}
|
3847
|
+
button('삭제하기'){
|
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
|
4283
3857
|
|
4284
|
-
|
4285
|
-
|
4286
|
-
|
4287
|
-
}
|
4288
|
-
@data['포스트설정']['제외하고등록값'] = entry{
|
4289
|
-
top 1
|
4290
|
-
left 1
|
4291
|
-
text '특정단어'
|
4292
|
-
}
|
3858
|
+
m.reverse.each do |i|
|
3859
|
+
@data['이미지설정']['이미지'].delete_at(i)
|
3860
|
+
end
|
4293
3861
|
|
4294
|
-
|
4295
|
-
top 2
|
4296
|
-
left 0
|
4297
|
-
}
|
4298
|
-
@data['포스트설정']['단어링크적용단어'] = entry{
|
4299
|
-
top 2
|
4300
|
-
left 1
|
4301
|
-
text '특정단어'
|
3862
|
+
@data['이미지설정']['이미지'].delete(nil)
|
4302
3863
|
}
|
4303
|
-
|
4304
|
-
|
4305
|
-
|
4306
|
-
|
3864
|
+
}
|
3865
|
+
}
|
3866
|
+
@data['이미지설정']['순서사용'] = checkbox('순서사용'){
|
3867
|
+
stretchy false
|
3868
|
+
on_toggled{ |c|
|
3869
|
+
if c.checked?
|
3870
|
+
@data['이미지설정']['랜덤사용'].checked = false
|
3871
|
+
end
|
4307
3872
|
}
|
4308
|
-
|
4309
|
-
|
4310
|
-
|
4311
|
-
|
3873
|
+
}
|
3874
|
+
@data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
|
3875
|
+
stretchy false
|
3876
|
+
on_toggled{ |c|
|
3877
|
+
if c.checked?
|
3878
|
+
@data['이미지설정']['순서사용'].checked = false
|
3879
|
+
end
|
4312
3880
|
}
|
3881
|
+
}
|
3882
|
+
}
|
3883
|
+
table{
|
3884
|
+
checkbox_column('선택'){
|
3885
|
+
editable true
|
3886
|
+
}
|
3887
|
+
text_column('이미지파일'){
|
4313
3888
|
|
4314
|
-
|
4315
|
-
top 4
|
4316
|
-
left 0
|
4317
|
-
}
|
4318
|
-
@data['포스트설정']['단어사진으로변경단어'] = entry{
|
4319
|
-
top 4
|
4320
|
-
left 1
|
4321
|
-
text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
|
4322
|
-
}
|
4323
|
-
label('ㄴ적용하려는 링크 URL 입력'){
|
4324
|
-
top 5
|
4325
|
-
left 0
|
4326
|
-
}
|
3889
|
+
}
|
4327
3890
|
|
4328
|
-
|
4329
|
-
|
4330
|
-
|
4331
|
-
|
4332
|
-
|
3891
|
+
cell_rows @data['이미지설정']['이미지']
|
3892
|
+
}
|
3893
|
+
horizontal_box{
|
3894
|
+
stretchy false
|
3895
|
+
@data['이미지설정']['폴더경로'] = entry{
|
3896
|
+
stretchy false
|
3897
|
+
text "사진폴더경로 ex)C:\\사진\\폴더2"
|
3898
|
+
}
|
4333
3899
|
|
4334
|
-
|
4335
|
-
|
4336
|
-
|
4337
|
-
|
4338
|
-
|
4339
|
-
|
4340
|
-
|
4341
|
-
|
4342
|
-
|
4343
|
-
|
4344
|
-
|
4345
|
-
|
4346
|
-
}
|
4347
|
-
@data['포스트설정']['영상으로변경단어'] = entry{
|
4348
|
-
top 7
|
4349
|
-
left 1
|
4350
|
-
text '특정단어'
|
4351
|
-
}
|
4352
|
-
label('ㄴ동영상만 있는 폴더 지정하기'){
|
4353
|
-
top 8
|
4354
|
-
left 0
|
4355
|
-
}
|
4356
|
-
@data['포스트설정']['동영상폴더위치'] = entry{
|
4357
|
-
top 8
|
4358
|
-
left 1
|
4359
|
-
text "영상폴더위치 ex) C:\\영상\\폴더3"
|
4360
|
-
}
|
4361
|
-
@data['포스트설정']['지도로변경'] = checkbox('내용 특정단어를 지도로 변경'){
|
4362
|
-
top 9
|
4363
|
-
left 0
|
4364
|
-
}
|
4365
|
-
@data['포스트설정']['지도로변경단어'] = entry{
|
4366
|
-
top 9
|
4367
|
-
left 1
|
4368
|
-
text '특정단어'
|
4369
|
-
}
|
4370
|
-
label('ㄴ지도 삽입경우 적용 주소 입력'){
|
4371
|
-
top 10
|
4372
|
-
left 0
|
4373
|
-
}
|
4374
|
-
@data['포스트설정']['지도주소'] = entry{
|
4375
|
-
top 10
|
4376
|
-
left 1
|
4377
|
-
text 'ex) OO시 OO구 OO동 270-68'
|
4378
|
-
}
|
4379
|
-
@data['포스트설정']['인용구변경'] = checkbox('내용 특정단어를 인용구로 적용'){
|
4380
|
-
top 11
|
4381
|
-
left 0
|
4382
|
-
}
|
4383
|
-
@data['포스트설정']['인용구변경단어'] = entry{
|
4384
|
-
top 11
|
4385
|
-
left 1
|
4386
|
-
text '특정단어'
|
4387
|
-
}
|
4388
|
-
label('ㄴ인용구 사용시 들어갈 문구'){
|
4389
|
-
top 12
|
4390
|
-
left 0
|
4391
|
-
}
|
4392
|
-
button('설정 파일 불러오기'){
|
4393
|
-
top 12
|
4394
|
-
left 1
|
4395
|
-
on_clicked{
|
4396
|
-
file = open_file
|
4397
|
-
if file != nil
|
4398
|
-
file_data = File.open(file, 'r').read
|
4399
|
-
@data['포스트설정']['인용구'] = file_data.split(',')
|
3900
|
+
button('폴더째로 불러오기') {
|
3901
|
+
on_clicked {
|
3902
|
+
path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')
|
3903
|
+
|
3904
|
+
# 경로가 유효한지 확인
|
3905
|
+
if Dir.exist?(path)
|
3906
|
+
Dir.entries(path).each do |file|
|
3907
|
+
if file == '.' or file == '..'
|
3908
|
+
next
|
3909
|
+
else
|
3910
|
+
# 폴더 내의 파일을 이미지 리스트에 추가
|
3911
|
+
@data['이미지설정']['이미지'] << [false, file, path + "\\" + file.force_encoding('utf-8')]
|
4400
3912
|
end
|
4401
|
-
|
4402
|
-
|
4403
|
-
|
4404
|
-
|
4405
|
-
|
4406
|
-
|
4407
|
-
|
4408
|
-
|
4409
|
-
|
4410
|
-
text '탬플릿으로 전활시킬 특정단어'
|
4411
|
-
}
|
3913
|
+
end
|
3914
|
+
|
3915
|
+
# 마지막 빈 항목 추가 후 제거 (원래 로직에 맞춰)
|
3916
|
+
@data['이미지설정']['이미지'] << []
|
3917
|
+
@data['이미지설정']['이미지'].pop
|
3918
|
+
else
|
3919
|
+
# 경로가 존재하지 않으면 경고 메시지 출력
|
3920
|
+
puts "경로가 존재하지 않습니다: #{path}"
|
3921
|
+
end
|
4412
3922
|
}
|
4413
3923
|
}
|
3924
|
+
}
|
3925
|
+
|
4414
3926
|
}
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
|
4421
|
-
|
4422
|
-
|
4423
|
-
|
4424
|
-
|
4425
|
-
|
4426
|
-
|
3927
|
+
vertical_separator{
|
3928
|
+
stretchy false
|
3929
|
+
}
|
3930
|
+
|
3931
|
+
vertical_box{
|
3932
|
+
horizontal_box{
|
3933
|
+
stretchy false
|
3934
|
+
@data['image_type'][0] = checkbox('저장 사진 사용'){
|
3935
|
+
on_toggled{
|
3936
|
+
if @data['image_type'][0].checked?
|
3937
|
+
@data['image_type'][1].checked = false
|
3938
|
+
@data['image_type'][2].checked = false
|
3939
|
+
end
|
4427
3940
|
}
|
4428
|
-
|
4429
|
-
|
4430
|
-
|
3941
|
+
}
|
3942
|
+
@data['image_type'][1] = checkbox('색상 사진 사용'){
|
3943
|
+
on_toggled{
|
3944
|
+
if @data['image_type'][1].checked?
|
3945
|
+
@data['image_type'][0].checked = false
|
3946
|
+
@data['image_type'][2].checked = false
|
3947
|
+
end
|
4431
3948
|
}
|
4432
|
-
|
4433
|
-
|
4434
|
-
|
4435
|
-
|
4436
|
-
|
4437
|
-
|
4438
|
-
|
4439
|
-
end
|
4440
|
-
}
|
3949
|
+
}
|
3950
|
+
@data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
|
3951
|
+
on_toggled{
|
3952
|
+
if @data['image_type'][2].checked?
|
3953
|
+
@data['image_type'][1].checked = false
|
3954
|
+
@data['image_type'][0].checked = false
|
3955
|
+
end
|
4441
3956
|
}
|
4442
|
-
|
4443
|
-
|
4444
|
-
|
4445
|
-
|
4446
|
-
|
4447
|
-
|
4448
|
-
|
4449
|
-
|
4450
|
-
|
3957
|
+
}
|
3958
|
+
}
|
3959
|
+
|
3960
|
+
grid{
|
3961
|
+
stretchy false
|
3962
|
+
@data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
|
3963
|
+
top 0
|
3964
|
+
left 0
|
3965
|
+
}
|
3966
|
+
button('가져오기'){
|
3967
|
+
top 0
|
3968
|
+
left 1
|
3969
|
+
on_clicked{
|
3970
|
+
file = open_file
|
3971
|
+
if file != nil
|
3972
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
3973
|
+
@data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
|
3974
|
+
end
|
4451
3975
|
}
|
4452
|
-
|
4453
|
-
|
4454
|
-
|
4455
|
-
|
4456
|
-
|
4457
|
-
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
|
4464
|
-
|
4465
|
-
|
4466
|
-
|
4467
|
-
|
4468
|
-
|
4469
|
-
|
4470
|
-
|
4471
|
-
|
4472
|
-
|
4473
|
-
|
4474
|
-
|
4475
|
-
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4488
|
-
|
4489
|
-
}
|
4490
|
-
}
|
4491
|
-
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4492
|
-
top 7
|
4493
|
-
left 0
|
4494
|
-
}
|
4495
|
-
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4496
|
-
top 7
|
4497
|
-
left 1
|
3976
|
+
}
|
3977
|
+
@data['이미지설정']['이미지글자1크기1'] = entry{
|
3978
|
+
top 0
|
3979
|
+
left 2
|
3980
|
+
text 'ex) 33'
|
3981
|
+
}
|
3982
|
+
label('pt'){
|
3983
|
+
top 0
|
3984
|
+
left 3
|
3985
|
+
}
|
3986
|
+
@data['이미지설정']['이미지글자1크기2'] = entry{
|
3987
|
+
top 0
|
3988
|
+
left 4
|
3989
|
+
text 'ex) 55'
|
3990
|
+
}
|
3991
|
+
label('pt'){
|
3992
|
+
top 0
|
3993
|
+
left 5
|
3994
|
+
}
|
3995
|
+
@data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
|
3996
|
+
top 0
|
3997
|
+
left 6
|
3998
|
+
}
|
3999
|
+
|
4000
|
+
@data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
|
4001
|
+
top 1
|
4002
|
+
left 0
|
4003
|
+
}
|
4004
|
+
button('가져오기'){
|
4005
|
+
top 1
|
4006
|
+
left 1
|
4007
|
+
on_clicked{
|
4008
|
+
file = open_file
|
4009
|
+
if file != nil
|
4010
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4011
|
+
@data['이미지설정']['이미지글자2'] = file_data.split("\n")
|
4012
|
+
end
|
4498
4013
|
}
|
4014
|
+
}
|
4015
|
+
@data['이미지설정']['이미지글자2크기1'] = entry{
|
4016
|
+
top 1
|
4017
|
+
left 2
|
4018
|
+
text 'ex) 33'
|
4019
|
+
}
|
4020
|
+
label('pt'){
|
4021
|
+
top 1
|
4022
|
+
left 3
|
4023
|
+
}
|
4024
|
+
@data['이미지설정']['이미지글자2크기2'] = entry{
|
4025
|
+
top 1
|
4026
|
+
left 4
|
4027
|
+
text 'ex) 55'
|
4028
|
+
}
|
4029
|
+
label('pt'){
|
4030
|
+
top 1
|
4031
|
+
left 5
|
4032
|
+
}
|
4033
|
+
@data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
|
4034
|
+
top 1
|
4035
|
+
left 6
|
4036
|
+
}
|
4037
|
+
@data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
|
4038
|
+
top 2
|
4039
|
+
left 0
|
4040
|
+
}
|
4041
|
+
@data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
|
4042
|
+
top 3
|
4043
|
+
left 0
|
4044
|
+
}
|
4045
|
+
@data['이미지설정']['테두리크기1'] = entry{
|
4046
|
+
top 3
|
4047
|
+
left 2
|
4048
|
+
text 'ex) 1'
|
4049
|
+
}
|
4050
|
+
label('pt'){
|
4051
|
+
top 3
|
4052
|
+
left 3
|
4053
|
+
}
|
4054
|
+
@data['이미지설정']['테두리크기2'] = entry{
|
4055
|
+
top 3
|
4056
|
+
left 4
|
4057
|
+
text 'ex) 33'
|
4058
|
+
}
|
4059
|
+
label('pt'){
|
4060
|
+
top 3
|
4061
|
+
left 5
|
4062
|
+
}
|
4063
|
+
|
4064
|
+
}
|
4499
4065
|
|
4500
|
-
|
4501
|
-
|
4502
|
-
|
4066
|
+
horizontal_box{
|
4067
|
+
stretchy false
|
4068
|
+
@data['image_size'][0] = checkbox('랜덤 px'){
|
4069
|
+
on_toggled{
|
4070
|
+
if @data['image_size'][0].checked?
|
4071
|
+
@data['image_size'][1].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
|
4503
4076
|
}
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4077
|
+
}
|
4078
|
+
@data['image_size'][1] = checkbox('740 px'){
|
4079
|
+
on_toggled{
|
4080
|
+
if @data['image_size'][1].checked?
|
4081
|
+
@data['image_size'][0].checked = false
|
4082
|
+
@data['image_size'][2].checked = false
|
4083
|
+
@data['image_size'][3].checked = false
|
4084
|
+
@data['image_size'][4].checked = false
|
4085
|
+
end
|
4508
4086
|
}
|
4509
|
-
|
4510
|
-
|
4511
|
-
|
4087
|
+
}
|
4088
|
+
@data['image_size'][2] = checkbox('650 px'){
|
4089
|
+
on_toggled{
|
4090
|
+
if @data['image_size'][2].checked?
|
4091
|
+
@data['image_size'][1].checked = false
|
4092
|
+
@data['image_size'][0].checked = false
|
4093
|
+
@data['image_size'][3].checked = false
|
4094
|
+
@data['image_size'][4].checked = false
|
4095
|
+
end
|
4512
4096
|
}
|
4513
|
-
|
4514
|
-
|
4515
|
-
|
4516
|
-
|
4097
|
+
}
|
4098
|
+
@data['image_size'][3] = checkbox('550 px'){
|
4099
|
+
on_toggled{
|
4100
|
+
if @data['image_size'][3].checked?
|
4101
|
+
@data['image_size'][1].checked = false
|
4102
|
+
@data['image_size'][2].checked = false
|
4103
|
+
@data['image_size'][0].checked = false
|
4104
|
+
@data['image_size'][4].checked = false
|
4105
|
+
end
|
4517
4106
|
}
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4107
|
+
}
|
4108
|
+
@data['image_size'][4] = checkbox('480 px'){
|
4109
|
+
on_toggled{
|
4110
|
+
if @data['image_size'][4].checked?
|
4111
|
+
@data['image_size'][1].checked = false
|
4112
|
+
@data['image_size'][2].checked = false
|
4113
|
+
@data['image_size'][3].checked = false
|
4114
|
+
@data['image_size'][0].checked = false
|
4115
|
+
end
|
4522
4116
|
}
|
4117
|
+
}
|
4118
|
+
}
|
4119
|
+
vertical_separator{
|
4120
|
+
stretchy false
|
4121
|
+
}
|
4122
|
+
horizontal_box{
|
4123
|
+
stretchy false
|
4124
|
+
@data['포스트설정']['라이브러리사용안함'] = checkbox('사진 라이브러리에서 제외시키기 적용'){
|
4125
|
+
|
4126
|
+
}
|
4127
|
+
}
|
4128
|
+
}
|
4129
|
+
}
|
4130
|
+
}
|
4523
4131
|
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4527
|
-
|
4132
|
+
tab_item('포스트설정1'){
|
4133
|
+
horizontal_box{
|
4134
|
+
vertical_box{
|
4135
|
+
stretchy false
|
4136
|
+
grid{
|
4137
|
+
stretchy false
|
4138
|
+
@data['포스트설정']['제목키워드변경'] = checkbox('제목에 특정 단어를 내용에 사용할 키워드로 변경'){
|
4139
|
+
top 0
|
4140
|
+
left 0
|
4528
4141
|
|
4529
|
-
|
4142
|
+
}
|
4143
|
+
@data['포스트설정']['제목키워드변경단어'] = entry{
|
4144
|
+
top 0
|
4145
|
+
left 1
|
4146
|
+
text '특정단어'
|
4147
|
+
}
|
4530
4148
|
|
4531
|
-
|
4532
|
-
|
4533
|
-
|
4534
|
-
|
4535
|
-
|
4536
|
-
|
4537
|
-
|
4538
|
-
|
4539
|
-
|
4540
|
-
|
4541
|
-
|
4542
|
-
|
4149
|
+
# @data['포스트설정']['제목단어변경'] = checkbox('제목에 특정 단어를 변경'){
|
4150
|
+
# top 1
|
4151
|
+
# left 0
|
4152
|
+
# }
|
4153
|
+
# @data['포스트설정']['제목단어변경파일불러오기'] = button('설정 파일 불러오기'){
|
4154
|
+
# top 1
|
4155
|
+
# left 1
|
4156
|
+
# on_clicked{
|
4157
|
+
# file = open_file
|
4158
|
+
# if file != nil
|
4159
|
+
# file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4160
|
+
# file_data.split("\n").each do |i|
|
4161
|
+
# i2 = i.split('>')
|
4162
|
+
# text_key = i2[0].to_s
|
4163
|
+
# text_val = i2[1].to_s.split(',')
|
4164
|
+
# @data['포스트설정']['제목특정단어변경데이터'][text_key] = text_val
|
4165
|
+
# end
|
4166
|
+
# end
|
4167
|
+
# }
|
4168
|
+
# }
|
4169
|
+
@data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
|
4170
|
+
top 2
|
4171
|
+
left 0
|
4172
|
+
#enabled false # 기본적으로 비활성화
|
4173
|
+
on_toggled {
|
4174
|
+
if @data['포스트설정']['제목에키워드삽입'].checked?
|
4175
|
+
@data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
|
4176
|
+
@data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
|
4177
|
+
else
|
4178
|
+
@data['포스트설정']['제목앞'].checked = false # 체크 해제
|
4179
|
+
@data['포스트설정']['제목앞'].enabled = false # 비활성화
|
4180
|
+
@data['포스트설정']['제목뒤'].checked = false # 체크 해제
|
4181
|
+
@data['포스트설정']['제목뒤'].enabled = false # 비활성화
|
4182
|
+
end
|
4543
4183
|
}
|
4544
|
-
|
4545
|
-
|
4546
|
-
|
4547
|
-
|
4548
|
-
|
4549
|
-
|
4550
|
-
|
4551
|
-
|
4552
|
-
|
4553
|
-
|
4184
|
+
|
4185
|
+
}
|
4186
|
+
@data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
|
4187
|
+
top 2
|
4188
|
+
left 1
|
4189
|
+
text '최소수량'
|
4190
|
+
}
|
4191
|
+
label('~'){
|
4192
|
+
top 2
|
4193
|
+
left 2
|
4194
|
+
}
|
4195
|
+
@data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
|
4196
|
+
top 2
|
4197
|
+
left 3
|
4198
|
+
text '최대수량'
|
4199
|
+
}
|
4200
|
+
label('ㄴ'){
|
4201
|
+
top 3
|
4202
|
+
left 2
|
4203
|
+
}
|
4204
|
+
@data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
|
4205
|
+
top 3
|
4206
|
+
left 3
|
4207
|
+
enabled false # 기본적으로 비활성화
|
4208
|
+
on_toggled{
|
4209
|
+
if @data['포스트설정']['제목앞'].checked? == true
|
4210
|
+
if @data['포스트설정']['제목뒤'].checked?
|
4211
|
+
@data['포스트설정']['제목뒤'].checked = false
|
4554
4212
|
end
|
4555
|
-
|
4213
|
+
end
|
4556
4214
|
}
|
4557
|
-
|
4558
|
-
|
4559
|
-
|
4560
|
-
|
4561
|
-
|
4562
|
-
|
4563
|
-
|
4564
|
-
|
4565
|
-
|
4566
|
-
|
4215
|
+
}
|
4216
|
+
label('ㄴ'){
|
4217
|
+
top 4
|
4218
|
+
left 2
|
4219
|
+
}
|
4220
|
+
@data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
|
4221
|
+
top 4
|
4222
|
+
left 3
|
4223
|
+
enabled false # 기본적으로 비활성화
|
4224
|
+
on_toggled{
|
4225
|
+
if @data['포스트설정']['제목뒤'].checked? == true
|
4226
|
+
if @data['포스트설정']['제목앞'].checked?
|
4227
|
+
@data['포스트설정']['제목앞'].checked = false
|
4567
4228
|
end
|
4568
|
-
|
4229
|
+
end
|
4569
4230
|
}
|
4570
|
-
|
4571
|
-
|
4572
|
-
|
4573
|
-
|
4574
|
-
|
4575
|
-
|
4576
|
-
|
4577
|
-
|
4578
|
-
|
4579
|
-
|
4580
|
-
|
4231
|
+
}
|
4232
|
+
|
4233
|
+
@data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
|
4234
|
+
top 4
|
4235
|
+
left 0
|
4236
|
+
}
|
4237
|
+
@data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
|
4238
|
+
top 5
|
4239
|
+
left 0
|
4240
|
+
on_toggled{
|
4241
|
+
if @data['포스트설정']['제목을랜덤'].checked? == true
|
4242
|
+
if @data['포스트설정']['제목내용설정'].checked?
|
4243
|
+
@data['포스트설정']['제목내용설정'].checked = false
|
4581
4244
|
end
|
4582
|
-
|
4583
|
-
}
|
4584
|
-
|
4585
|
-
|
4586
|
-
|
4587
|
-
@data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
|
4588
|
-
top 12
|
4589
|
-
left 0
|
4590
|
-
}
|
4591
|
-
@data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
|
4592
|
-
top 12
|
4593
|
-
left 1
|
4245
|
+
end
|
4594
4246
|
}
|
4595
|
-
|
4596
|
-
|
4597
|
-
|
4247
|
+
}
|
4248
|
+
@data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
|
4249
|
+
top 6
|
4250
|
+
left 0
|
4251
|
+
on_toggled{
|
4252
|
+
if @data['포스트설정']['제목내용설정'].checked? == true
|
4253
|
+
if @data['포스트설정']['제목을랜덤'].checked?
|
4254
|
+
@data['포스트설정']['제목을랜덤'].checked = false
|
4255
|
+
end
|
4256
|
+
end
|
4598
4257
|
}
|
4599
|
-
|
4600
|
-
|
4601
|
-
|
4258
|
+
}
|
4259
|
+
@data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
|
4260
|
+
top 7
|
4261
|
+
left 0
|
4262
|
+
on_toggled {
|
4263
|
+
if @data['포스트설정']['내용키워드삽입'].checked?
|
4264
|
+
@data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
|
4265
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
|
4266
|
+
else
|
4267
|
+
@data['포스트설정']['키워드삽입'].checked = false # 체크 해제
|
4268
|
+
@data['포스트설정']['키워드삽입'].enabled = false # 비활성화
|
4269
|
+
@data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
|
4270
|
+
@data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
|
4271
|
+
end
|
4602
4272
|
}
|
4603
|
-
|
4604
|
-
|
4605
|
-
|
4273
|
+
}
|
4274
|
+
@data['포스트설정']['키워드삽입시작숫자'] = entry(){
|
4275
|
+
top 7
|
4276
|
+
left 1
|
4277
|
+
|
4278
|
+
text '최소수량'
|
4279
|
+
}
|
4280
|
+
label('~'){
|
4281
|
+
top 7
|
4282
|
+
left 2
|
4283
|
+
}
|
4284
|
+
@data['포스트설정']['키워드삽입끝숫자'] = entry(){
|
4285
|
+
top 7
|
4286
|
+
left 3
|
4287
|
+
text '최대수량'
|
4288
|
+
}
|
4289
|
+
@data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
|
4290
|
+
enabled false # 기본적으로 비활성화
|
4291
|
+
top 8
|
4292
|
+
left 0
|
4293
|
+
|
4294
|
+
}
|
4295
|
+
@data['포스트설정']['키워드삽입시링크'] = entry(){
|
4296
|
+
enabled false # 기본적으로 비활성화
|
4297
|
+
top 8
|
4298
|
+
left 1
|
4299
|
+
text 'URL'
|
4300
|
+
}
|
4301
|
+
@data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
|
4302
|
+
top 9
|
4303
|
+
left 0
|
4304
|
+
on_toggled{
|
4305
|
+
if @data['포스트설정']['내용을자동생성'].checked?
|
4306
|
+
@data['포스트설정']['내용과자동생성'].checked = false
|
4307
|
+
@data['포스트설정']['내용투명'].checked = false
|
4308
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4309
|
+
|
4310
|
+
end
|
4606
4311
|
}
|
4312
|
+
}
|
4607
4313
|
|
4608
|
-
|
4609
|
-
|
4610
|
-
|
4611
|
-
|
4612
|
-
|
4613
|
-
|
4614
|
-
|
4615
|
-
|
4616
|
-
|
4314
|
+
|
4315
|
+
aa1 = 2
|
4316
|
+
@data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
|
4317
|
+
top 10 + aa1
|
4318
|
+
left 0
|
4319
|
+
on_toggled {
|
4320
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
4321
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4322
|
+
@data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
|
4323
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4324
|
+
else
|
4325
|
+
@data['포스트설정']['내용투명'].checked = false # 체크 해제
|
4326
|
+
@data['포스트설정']['내용투명'].enabled = false # 비활성화
|
4327
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
|
4328
|
+
@data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
|
4329
|
+
end
|
4617
4330
|
}
|
4618
|
-
|
4619
|
-
|
4620
|
-
|
4621
|
-
|
4622
|
-
|
4623
|
-
|
4624
|
-
|
4625
|
-
|
4626
|
-
|
4331
|
+
}
|
4332
|
+
|
4333
|
+
@data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
|
4334
|
+
top 11 + aa1
|
4335
|
+
left 0
|
4336
|
+
enabled false # 기본적으로 비활성화
|
4337
|
+
on_toggled {
|
4338
|
+
if @data['포스트설정']['내용투명'].checked?
|
4339
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4340
|
+
@data['포스트설정']['자동글 수식에 입력'].checked = false
|
4341
|
+
end
|
4627
4342
|
}
|
4628
|
-
|
4629
|
-
|
4630
|
-
|
4631
|
-
|
4632
|
-
|
4633
|
-
|
4634
|
-
|
4635
|
-
|
4343
|
+
}
|
4344
|
+
@data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
|
4345
|
+
top 12+ aa1
|
4346
|
+
left 0
|
4347
|
+
}
|
4348
|
+
button('설정 파일 불러오기'){
|
4349
|
+
top 12+ aa1
|
4350
|
+
left 1
|
4351
|
+
on_clicked{
|
4352
|
+
file = open_file
|
4353
|
+
if file != nil
|
4354
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4355
|
+
file_data.split("\n").each do |i|
|
4356
|
+
key = i.split('>')[0]
|
4357
|
+
v = i.split('>')[1].to_s.split(',')
|
4358
|
+
@data['포스트설정']['내용자동변경값'][key] = v
|
4636
4359
|
end
|
4637
|
-
|
4360
|
+
end
|
4638
4361
|
}
|
4639
|
-
|
4640
|
-
|
4641
|
-
|
4642
|
-
|
4643
|
-
|
4644
|
-
|
4645
|
-
|
4646
|
-
|
4647
|
-
|
4648
|
-
|
4649
|
-
|
4650
|
-
|
4362
|
+
}
|
4363
|
+
@data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
|
4364
|
+
top 12+ aa1
|
4365
|
+
left 3
|
4366
|
+
}
|
4367
|
+
|
4368
|
+
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
4369
|
+
top 13+ aa1
|
4370
|
+
left 0
|
4371
|
+
#enabled false # 기본적으로 비활성화
|
4372
|
+
on_toggled {
|
4373
|
+
if @data['포스트설정']['내용사진자동삽입'].checked?
|
4374
|
+
@data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
|
4375
|
+
@data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
|
4376
|
+
else
|
4377
|
+
@data['포스트설정']['내용사진링크'].checked = false # 체크 해제
|
4378
|
+
@data['포스트설정']['내용사진링크'].enabled = false # 비활성화
|
4379
|
+
@data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
|
4380
|
+
@data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
|
4381
|
+
end
|
4651
4382
|
}
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4383
|
+
}
|
4384
|
+
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
4385
|
+
top 13+ aa1
|
4386
|
+
left 1
|
4387
|
+
text '최소수량'
|
4388
|
+
}
|
4389
|
+
label('~'){
|
4390
|
+
top 13+ aa1
|
4391
|
+
left 2
|
4392
|
+
}
|
4393
|
+
@data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
|
4394
|
+
top 13+ aa1
|
4395
|
+
left 3
|
4396
|
+
text '최대수량'
|
4397
|
+
}
|
4655
4398
|
|
4656
|
-
|
4657
|
-
|
4658
|
-
|
4659
|
-
|
4660
|
-
|
4661
|
-
|
4662
|
-
|
4663
|
-
|
4399
|
+
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
|
4400
|
+
enabled false # 기본적으로 비활성화
|
4401
|
+
top 14+ aa1
|
4402
|
+
left 0
|
4403
|
+
}
|
4404
|
+
|
4405
|
+
@data['포스트설정']['내용사진링크값'] = entry(){
|
4406
|
+
enabled false # 기본적으로 비활성화
|
4407
|
+
top 14+ aa1
|
4408
|
+
left 1
|
4409
|
+
text 'URL'
|
4410
|
+
}
|
4411
|
+
|
4412
|
+
@data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
|
4413
|
+
top 15+ aa1
|
4414
|
+
left 0
|
4415
|
+
}
|
4416
|
+
|
4417
|
+
@data['포스트설정']['api_key'] = entry(){
|
4418
|
+
top 15+ aa1
|
4419
|
+
left 1
|
4420
|
+
text 'api key 입력 필수!!'
|
4421
|
+
}
|
4422
|
+
|
4423
|
+
}
|
4424
|
+
}
|
4425
|
+
|
4426
|
+
vertical_separator{
|
4427
|
+
stretchy false
|
4428
|
+
}
|
4429
|
+
|
4430
|
+
|
4431
|
+
grid{
|
4432
|
+
@data['포스트설정']['특정단어키워드로변경'] = checkbox('내용 특정단어를 키워드로 변경'){
|
4433
|
+
top 0
|
4434
|
+
left 0
|
4435
|
+
}
|
4436
|
+
@data['포스트설정']['특정단어키워드로변경값'] = entry{
|
4437
|
+
top 0
|
4438
|
+
left 1
|
4439
|
+
text '특정단어'
|
4440
|
+
}
|
4441
|
+
|
4442
|
+
@data['포스트설정']['제외하고등록'] = checkbox('내용 특정단어를 제외하고 등록'){
|
4443
|
+
top 1
|
4444
|
+
left 0
|
4445
|
+
}
|
4446
|
+
@data['포스트설정']['제외하고등록값'] = entry{
|
4447
|
+
top 1
|
4448
|
+
left 1
|
4449
|
+
text '특정단어'
|
4450
|
+
}
|
4451
|
+
|
4452
|
+
@data['포스트설정']['단어링크적용'] = checkbox('내용 특정단어를 링크적용 등록'){
|
4453
|
+
top 2
|
4454
|
+
left 0
|
4455
|
+
}
|
4456
|
+
@data['포스트설정']['단어링크적용단어'] = entry{
|
4457
|
+
top 2
|
4458
|
+
left 1
|
4459
|
+
text '특정단어'
|
4460
|
+
}
|
4461
|
+
|
4462
|
+
label('ㄴ적용하려는 링크 URL 입력'){
|
4463
|
+
top 3
|
4464
|
+
left 0
|
4465
|
+
}
|
4466
|
+
@data['포스트설정']['단어링크적용url'] = entry{
|
4467
|
+
top 3
|
4468
|
+
left 1
|
4469
|
+
text 'URL'
|
4470
|
+
}
|
4471
|
+
|
4472
|
+
@data['포스트설정']['단어사진으로변경'] = checkbox('특정단어를 사진으로 변경'){
|
4473
|
+
top 4
|
4474
|
+
left 0
|
4475
|
+
}
|
4476
|
+
@data['포스트설정']['단어사진으로변경단어'] = entry{
|
4477
|
+
top 4
|
4478
|
+
left 1
|
4479
|
+
text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
|
4480
|
+
}
|
4481
|
+
label('ㄴ적용하려는 링크 URL 입력'){
|
4482
|
+
top 5
|
4483
|
+
left 0
|
4484
|
+
}
|
4485
|
+
|
4486
|
+
@data['포스트설정']['단어사진으로변경URL'] = entry{
|
4487
|
+
top 5
|
4488
|
+
left 1
|
4489
|
+
text 'URL'
|
4490
|
+
}
|
4491
|
+
|
4492
|
+
|
4493
|
+
# @data['포스트설정']['슬라이드로변경'] = checkbox('특정단어를 슬라이드사진 변경'){
|
4494
|
+
# top 6
|
4495
|
+
# left 0
|
4496
|
+
# }
|
4497
|
+
# @data['포스트설정']['단어슬라이드변경'] = entry{
|
4498
|
+
# top 6
|
4499
|
+
# left 1
|
4500
|
+
# text '특정단어'
|
4501
|
+
# }
|
4502
|
+
|
4503
|
+
@data['포스트설정']['스티커로변경'] = checkbox('특정단어를 스티커로 변경'){
|
4504
|
+
top 6
|
4505
|
+
left 0
|
4506
|
+
}
|
4507
|
+
@data['포스트설정']['스티커로변경단어'] = entry{
|
4508
|
+
top 6
|
4509
|
+
left 1
|
4510
|
+
text '특정단어'
|
4511
|
+
}
|
4512
|
+
@data['포스트설정']['영상으로변경'] = checkbox('특정단어를 영상으로 변경'){
|
4513
|
+
top 7
|
4514
|
+
left 0
|
4515
|
+
}
|
4516
|
+
@data['포스트설정']['영상으로변경단어'] = entry{
|
4517
|
+
top 7
|
4518
|
+
left 1
|
4519
|
+
text '특정단어'
|
4520
|
+
}
|
4521
|
+
label('ㄴ동영상만 있는 폴더 지정하기'){
|
4522
|
+
top 8
|
4523
|
+
left 0
|
4524
|
+
}
|
4525
|
+
@data['포스트설정']['동영상폴더위치'] = entry{
|
4526
|
+
top 8
|
4527
|
+
left 1
|
4528
|
+
text "영상폴더위치 ex) C:\\영상\\폴더3"
|
4529
|
+
}
|
4530
|
+
@data['포스트설정']['지도로변경'] = checkbox('특정단어를 지도로 변경'){
|
4531
|
+
top 9
|
4532
|
+
left 0
|
4533
|
+
}
|
4534
|
+
@data['포스트설정']['지도로변경단어'] = entry{
|
4535
|
+
top 9
|
4536
|
+
left 1
|
4537
|
+
text '특정단어'
|
4538
|
+
}
|
4539
|
+
label('ㄴ지도 삽입경우 적용 주소 입력'){
|
4540
|
+
top 10
|
4541
|
+
left 0
|
4542
|
+
}
|
4543
|
+
@data['포스트설정']['지도주소'] = entry{
|
4544
|
+
top 10
|
4545
|
+
left 1
|
4546
|
+
text 'ex) OO시 OO구 OO동 270-68'
|
4547
|
+
}
|
4548
|
+
@data['포스트설정']['인용구변경'] = checkbox('특정단어를 인용구로 적용'){
|
4549
|
+
top 11
|
4550
|
+
left 0
|
4551
|
+
}
|
4552
|
+
@data['포스트설정']['인용구변경단어'] = entry{
|
4553
|
+
top 11
|
4554
|
+
left 1
|
4555
|
+
text '특정단어'
|
4556
|
+
}
|
4557
|
+
label('ㄴ인용구 사용시 들어갈 문구'){
|
4558
|
+
top 12
|
4559
|
+
left 0
|
4560
|
+
}
|
4561
|
+
button('설정 파일 불러오기'){
|
4562
|
+
top 12
|
4563
|
+
left 1
|
4564
|
+
on_clicked{
|
4565
|
+
file = open_file
|
4566
|
+
if file != nil
|
4567
|
+
file_data = File.open(file, 'r').read
|
4568
|
+
@data['포스트설정']['인용구'] = file_data.split(',')
|
4569
|
+
end
|
4570
|
+
}
|
4571
|
+
}
|
4572
|
+
|
4573
|
+
|
4574
|
+
}
|
4575
|
+
}
|
4576
|
+
}
|
4577
|
+
tab_item('포스트설정2'){
|
4578
|
+
vertical_box{
|
4579
|
+
grid{
|
4580
|
+
stretchy false
|
4581
|
+
|
4582
|
+
@data['포스트설정']['특정단어굵기'] = checkbox('내용 특정단어 굵기 변경(적용 단어 앞 뒤에 @@삽입)'){
|
4583
|
+
top 0
|
4584
|
+
left 0
|
4585
|
+
}
|
4586
|
+
@data['포스트설정']['단어색상변경'] = checkbox('내용 특정단어 색상 변경(적용 단어 앞 뒤에 %%삽입)'){
|
4587
|
+
top 1
|
4588
|
+
left 0
|
4589
|
+
}
|
4590
|
+
@data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
|
4591
|
+
top 2
|
4592
|
+
left 0
|
4593
|
+
}
|
4594
|
+
@data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
|
4595
|
+
top 3
|
4596
|
+
left 0
|
4597
|
+
on_toggled{
|
4598
|
+
if @data['포스트설정']['중앙정렬'].checked?
|
4599
|
+
@data['포스트설정']['좌측정렬'].checked = false
|
4600
|
+
@data['포스트설정']['우측정렬'].checked = false
|
4601
|
+
end
|
4602
|
+
}
|
4603
|
+
}
|
4604
|
+
@data['포스트설정']['좌측정렬'] = checkbox('내용 글 좌측 정렬'){
|
4605
|
+
top 4
|
4606
|
+
left 0
|
4607
|
+
on_toggled{
|
4608
|
+
if @data['포스트설정']['좌측정렬'].checked?
|
4609
|
+
@data['포스트설정']['중앙정렬'].checked = false
|
4610
|
+
@data['포스트설정']['우측정렬'].checked = false
|
4611
|
+
end
|
4612
|
+
}
|
4613
|
+
}
|
4614
|
+
@data['포스트설정']['우측정렬'] = checkbox('내용 글 우측 정렬'){
|
4615
|
+
top 5
|
4616
|
+
left 0
|
4617
|
+
on_toggled{
|
4618
|
+
if @data['포스트설정']['우측정렬'].checked?
|
4619
|
+
@data['포스트설정']['좌측정렬'].checked = false
|
4620
|
+
@data['포스트설정']['중앙정렬'].checked = false
|
4621
|
+
end
|
4622
|
+
}
|
4623
|
+
}
|
4624
|
+
@data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
|
4625
|
+
top 6
|
4626
|
+
left 0
|
4627
|
+
#enabled false # 기본적으로 비활성화
|
4628
|
+
on_toggled {
|
4629
|
+
if @data['포스트설정']['막글삽입'].checked?
|
4630
|
+
@data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
|
4631
|
+
@data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
|
4632
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
|
4633
|
+
|
4634
|
+
else
|
4635
|
+
@data['포스트설정']['막글투명'].checked = false # 체크 해제
|
4636
|
+
@data['포스트설정']['막글투명'].enabled = false # 비활성화
|
4637
|
+
@data['포스트설정']['막글그대로'].checked = false # 체크 해제
|
4638
|
+
@data['포스트설정']['막글그대로'].enabled = false # 비활성화
|
4639
|
+
@data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
|
4640
|
+
@data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
|
4641
|
+
end
|
4642
|
+
}
|
4643
|
+
}
|
4644
|
+
@data['포스트설정']['막글삽입시작숫자'] = entry{
|
4645
|
+
top 6
|
4646
|
+
left 1
|
4647
|
+
text '최소수량'
|
4648
|
+
}
|
4649
|
+
label('~'){
|
4650
|
+
top 6
|
4651
|
+
left 2
|
4652
|
+
}
|
4653
|
+
@data['포스트설정']['막글삽입끝숫자'] = entry{
|
4654
|
+
top 6
|
4655
|
+
left 3
|
4656
|
+
text '최대수량'
|
4657
|
+
}
|
4658
|
+
button('막글 파일 불러오기'){
|
4659
|
+
top 6
|
4660
|
+
left 4
|
4661
|
+
on_clicked{
|
4662
|
+
file = open_file
|
4663
|
+
if file != nil
|
4664
|
+
file_data = File.open(file, 'r', :encoding => 'utf-8').read()
|
4665
|
+
@data['포스트설정']['막글'] = file_data
|
4666
|
+
end
|
4667
|
+
}
|
4668
|
+
}
|
4669
|
+
@data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
|
4670
|
+
top 7
|
4671
|
+
left 0
|
4672
|
+
enabled false # 기본적으로 비활성화
|
4673
|
+
}
|
4674
|
+
@data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
|
4675
|
+
top 7
|
4676
|
+
left 1
|
4677
|
+
enabled false # 기본적으로 비활성화
|
4678
|
+
}
|
4679
|
+
|
4680
|
+
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
|
4681
|
+
top 8
|
4682
|
+
left 0
|
4683
|
+
}
|
4684
|
+
@data['포스트설정']['태그삽입1시작숫자'] = entry{
|
4685
|
+
top 8
|
4686
|
+
left 1
|
4687
|
+
text '최소수량'
|
4688
|
+
}
|
4689
|
+
label('~'){
|
4690
|
+
top 8
|
4691
|
+
left 2
|
4692
|
+
}
|
4693
|
+
@data['포스트설정']['태그삽입1끝숫자'] = entry{
|
4694
|
+
top 8
|
4695
|
+
left 3
|
4696
|
+
text '최대수량'
|
4697
|
+
}
|
4698
|
+
|
4699
|
+
@data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
|
4700
|
+
top 9
|
4701
|
+
left 0
|
4702
|
+
enabled false # 기본적으로 비활성화
|
4703
|
+
on_toggled {
|
4704
|
+
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
4705
|
+
@data['포스트설정']['내용을자동생성'].checked = false
|
4706
|
+
@data['포스트설정']['내용투명'].checked = false
|
4707
|
+
end
|
4664
4708
|
}
|
4709
|
+
}
|
4710
|
+
|
4711
|
+
@data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
|
4712
|
+
top 9
|
4713
|
+
left 1
|
4714
|
+
enabled false # 기본적으로 비활성화
|
4715
|
+
}
|
4716
|
+
|
4717
|
+
|
4718
|
+
|
4719
|
+
@data['포스트설정']['전체공개'] = checkbox('전체공개'){
|
4720
|
+
top 10
|
4721
|
+
left 0
|
4722
|
+
on_toggled{
|
4723
|
+
if @data['포스트설정']['전체공개'].checked?
|
4724
|
+
if @data['포스트설정']['비공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4725
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4726
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4727
|
+
@data['포스트설정']['비공개'].checked = false
|
4728
|
+
end
|
4729
|
+
end
|
4730
|
+
}
|
4731
|
+
}
|
4732
|
+
@data['포스트설정']['멤버공개'] = checkbox('이웃공개'){
|
4733
|
+
top 10
|
4734
|
+
left 1
|
4735
|
+
on_toggled{
|
4736
|
+
if @data['포스트설정']['멤버공개'].checked?
|
4737
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['비공개'].checked?
|
4738
|
+
@data['포스트설정']['전체공개'].checked = false
|
4739
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4740
|
+
@data['포스트설정']['비공개'].checked = false
|
4741
|
+
end
|
4742
|
+
end
|
4743
|
+
}
|
4744
|
+
}
|
4745
|
+
@data['포스트설정']['서로이웃공개'] = checkbox('서로이웃공개'){
|
4746
|
+
top 11
|
4747
|
+
left 0
|
4748
|
+
on_toggled{
|
4749
|
+
if @data['포스트설정']['서로이웃공개'].checked?
|
4750
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['비공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4751
|
+
@data['포스트설정']['전체공개'].checked = false
|
4752
|
+
@data['포스트설정']['비공개'].checked = false
|
4753
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4754
|
+
end
|
4755
|
+
end
|
4756
|
+
}
|
4757
|
+
}
|
4758
|
+
|
4759
|
+
@data['포스트설정']['비공개'] = checkbox('비공개'){
|
4760
|
+
top 11
|
4761
|
+
left 1
|
4762
|
+
on_toggled{
|
4763
|
+
if @data['포스트설정']['비공개'].checked?
|
4764
|
+
if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
|
4765
|
+
@data['포스트설정']['전체공개'].checked = false
|
4766
|
+
@data['포스트설정']['서로이웃공개'].checked = false
|
4767
|
+
@data['포스트설정']['멤버공개'].checked = false
|
4768
|
+
end
|
4769
|
+
end
|
4770
|
+
}
|
4771
|
+
}
|
4772
|
+
|
4773
|
+
|
4774
|
+
|
4775
|
+
@data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
|
4776
|
+
top 12
|
4777
|
+
left 0
|
4778
|
+
}
|
4779
|
+
@data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
|
4780
|
+
top 12
|
4781
|
+
left 1
|
4782
|
+
}
|
4783
|
+
@data['포스트설정']['외부공유허용'] = checkbox('외부공유허용'){
|
4784
|
+
top 13
|
4785
|
+
left 0
|
4786
|
+
}
|
4787
|
+
@data['포스트설정']['검색허용'] = checkbox('검색허용'){
|
4788
|
+
top 13
|
4789
|
+
left 1
|
4790
|
+
}
|
4791
|
+
@data['포스트설정']['공감허용'] = checkbox('공감허용'){
|
4792
|
+
top 14
|
4793
|
+
left 0
|
4794
|
+
}
|
4795
|
+
|
4796
|
+
@data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
|
4797
|
+
top 15
|
4798
|
+
left 0
|
4799
|
+
on_toggled{
|
4800
|
+
if @data['포스트설정']['테더링'].checked?
|
4801
|
+
@data['포스트설정']['프록시'].checked = false
|
4802
|
+
|
4803
|
+
end
|
4804
|
+
}
|
4805
|
+
}
|
4806
|
+
@data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
|
4807
|
+
top 15
|
4808
|
+
left 1
|
4809
|
+
on_toggled{
|
4810
|
+
if @data['포스트설정']['프록시'].checked?
|
4811
|
+
@data['포스트설정']['테더링'].checked = false
|
4812
|
+
|
4813
|
+
end
|
4814
|
+
}
|
4815
|
+
}
|
4816
|
+
button('프록시 IP 파일 불러오기'){
|
4817
|
+
top 15
|
4818
|
+
left 3
|
4819
|
+
on_clicked{
|
4820
|
+
file = open_file
|
4821
|
+
if file != nil
|
4822
|
+
file_data = File.open(file,'r').read
|
4823
|
+
@data['포스트설정']['프록시리스트'] = file_data.split("\n")
|
4824
|
+
end
|
4825
|
+
}
|
4826
|
+
}
|
4827
|
+
|
4828
|
+
@data['포스트설정']['발행기능'] = checkbox('포스팅 글 [ 발행 ] 하기'){
|
4829
|
+
top 16
|
4830
|
+
left 0
|
4831
|
+
on_toggled{
|
4832
|
+
if @data['포스트설정']['발행기능'].checked?
|
4833
|
+
if @data['포스트설정']['저장기능'].checked?
|
4834
|
+
@data['포스트설정']['저장기능'].checked = false
|
4835
|
+
|
4836
|
+
end
|
4837
|
+
end
|
4838
|
+
}
|
4839
|
+
}
|
4840
|
+
@data['포스트설정']['저장기능'] = checkbox('포스팅 글 [ 저장 ] 하기'){
|
4841
|
+
top 16
|
4842
|
+
left 1
|
4843
|
+
|
4844
|
+
on_toggled{
|
4845
|
+
if @data['포스트설정']['저장기능'].checked?
|
4846
|
+
if @data['포스트설정']['발행기능'].checked?
|
4847
|
+
@data['포스트설정']['발행기능'].checked = false
|
4848
|
+
|
4849
|
+
end
|
4850
|
+
end
|
4665
4851
|
}
|
4666
4852
|
}
|
4667
4853
|
}
|
4668
4854
|
}
|
4855
|
+
}
|
4856
|
+
}
|
4669
4857
|
|
4670
4858
|
horizontal_box{
|
4671
4859
|
stretchy false
|