nblog_zon 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nblog_zon.rb +1603 -1284
  3. 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+" 소개하는 글을 1000자에서 2000자 사이로 만들어줘"
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+" 관련된 글을 1000자에서 2000자 사이로 만들어줘"
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
- def chrome_start(proxy)
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.add_argument('--start-maximized')
113
- @driver = Selenium::WebDriver.for(:chrome, options: options)
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 :chrome
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
- @driver = Selenium::WebDriver.for(:chrome, options: options)
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.add_argument('--start-maximized')
138
- @driver = Selenium::WebDriver.for(:chrome, options: options)
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 :chrome
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
- chrome_start(proxy)
150
- @driver.get('https://www.naver.com')
151
- sleep(1)
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
- else
158
- user_cookie_file << i
159
- end
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
- rescue
284
+ end
162
285
 
163
- end
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
- begin
173
- @cookie4.each do |i|
174
- p i
175
- @driver.manage.add_cookie(name: i['name'], value: i['value'], same_site: i['same_site'], domain: i['domain'], path: i['path'])
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
- @driver.get('https://www.naver.com')
297
+
182
298
  begin
183
- # begin
184
- # @driver.switch_to.frame(@driver.find_element(:xpath, '//*[@id="minime"]'))
185
- # rescue
186
-
187
- # end
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 => 60)
198
- #요소가 나타날 때까지 60초 동안 기다립니다.
199
- wait.until { @driver.find_element(:xpath, '//*[@aria-label="아이디 또는 전화번호"]') }
200
-
201
- sleep(2)
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(2)
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(2)
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(3)
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
- # 타임아웃을 10초로 설정
235
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
236
- #요소가 나타날 때까지 10초 동안 기다립니다.
237
- wait.until { @driver.find_element(:xpath, '//*[@role="region"]') }
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 '로그인 실패!! 제한 및 ID/PW 확인 해주세요!!'
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')
@@ -2039,6 +2053,14 @@ class Wordpress
2039
2053
  end
2040
2054
  end
2041
2055
  end
2056
+
2057
+ if @data['포스트설정']['gpt제목'].checked?
2058
+ chat = Chat_title.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
2059
+ gpt_text1 = chat.message(title)
2060
+ title = gpt_text1.to_s
2061
+ end
2062
+
2063
+
2042
2064
  @data['table'][index][-1] = 5
2043
2065
  @data['table'] << []
2044
2066
  @data['table'].pop
@@ -2076,6 +2098,25 @@ class Wordpress
2076
2098
  end
2077
2099
  end
2078
2100
  end
2101
+
2102
+
2103
+ if @data['포스트설정']['gpt내용'].checked?
2104
+ api_key = @data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8')
2105
+ #key_change = @data['포스트설정']['특정단어키워드로변경값'].text.to_s.force_encoding('utf-8')
2106
+ #imotcon_change = @data['포스트설정']['스티커로변경단어'].text.to_s.force_encoding('utf-8')
2107
+ #template_change = @data['포스트설정']['내템플릿변경단어'].text.to_s.force_encoding('utf-8')
2108
+ #ttdanar_change = @data['포스트설정']['단어링크적용단어'].text.to_s.force_encoding('utf-8')
2109
+ #sajine_change = @data['포스트설정']['단어사진으로변경단어'].text.to_s.force_encoding('utf-8')
2110
+ #mov_change = @data['포스트설정']['영상으로변경단어'].text.to_s.force_encoding('utf-8')
2111
+ #map_change = @data['포스트설정']['지도로변경단어'].text.to_s.force_encoding('utf-8')
2112
+ #inyong9_change = @data['포스트설정']['인용구변경단어'].text.to_s.force_encoding('utf-8')
2113
+
2114
+
2115
+ chat = Chat_content.new(api_key)
2116
+ gpt_text3 = chat.message(content)
2117
+ content = gpt_text3.to_s
2118
+ end
2119
+
2079
2120
  content_tag = content.split('@##@')[1]
2080
2121
  content = content.split('@##@')[0]
2081
2122
  @data['table'][index][-1] = 15
@@ -2274,7 +2315,7 @@ class Wordpress
2274
2315
  @data['table'][index][-1] = 50
2275
2316
  @data['table'] << []
2276
2317
  @data['table'].pop
2277
- if @data['포스트설정']['gpt'].checked?
2318
+ if @data['포스트설정']['gpt키워드'].checked?
2278
2319
  chat = Chat.new(@data['포스트설정']['api_key'].text.to_s.force_encoding('utf-8'))
2279
2320
  gpt_text = chat.message(keyword)
2280
2321
  content = content.to_s + "\n(자동생성글)\n" + gpt_text.to_s
@@ -2295,7 +2336,7 @@ class Wordpress
2295
2336
  joongbok_check = 0
2296
2337
  counter10 = 0
2297
2338
  while joongbok_check == 0
2298
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2339
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2299
2340
  content22 = content.split("(자동생성글)")[1].split("\n")
2300
2341
  else
2301
2342
  content22 = content.split("\n")
@@ -2319,12 +2360,12 @@ class Wordpress
2319
2360
  content2 = content.split("\n")
2320
2361
  end
2321
2362
 
2322
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2363
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2323
2364
  content2 = content.split("(자동생성글)")[1].split("\n")
2324
2365
  position.pop
2325
2366
  end
2326
2367
 
2327
- if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
2368
+ if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
2328
2369
  content2 = content.split("\n")
2329
2370
  end
2330
2371
 
@@ -2370,7 +2411,7 @@ class Wordpress
2370
2411
  content = content3.join("\n")
2371
2412
  end
2372
2413
 
2373
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2414
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2374
2415
  content2.each_with_index do |con, index|
2375
2416
  if position.include?(index)
2376
2417
  insert_keyword_text = keyword.to_s
@@ -2400,7 +2441,7 @@ class Wordpress
2400
2441
  end
2401
2442
  end
2402
2443
 
2403
- if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt'].checked? == false
2444
+ if @data['포스트설정']['내용과자동생성'].checked? == false and @data['포스트설정']['내용을자동생성'].checked? == false and @data['포스트설정']['gpt키워드'].checked? == false
2404
2445
  begin
2405
2446
  content2.each_with_index do |con, index|
2406
2447
  if position.include?(index)
@@ -2495,7 +2536,7 @@ class Wordpress
2495
2536
  end
2496
2537
  end
2497
2538
 
2498
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2539
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2499
2540
  if @data['포스트설정']['자동글 수식에 입력'].checked?
2500
2541
  content5 = content.split("(자동생성글)")[0].to_s.split("\n")
2501
2542
  content55 = content.split("(자동생성글)")[1].to_s
@@ -2526,7 +2567,7 @@ class Wordpress
2526
2567
  end
2527
2568
 
2528
2569
  position = position.sort
2529
- ###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
2570
+ ###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
2530
2571
  # if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2531
2572
  # image_url22 = get_image_file().force_encoding('utf-8')
2532
2573
  # end
@@ -2570,7 +2611,7 @@ class Wordpress
2570
2611
  ###여기까지 이미지 순서대로 안되서 변경##-------------------------------------------------------------------------------
2571
2612
 
2572
2613
  ##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
2573
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2614
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2574
2615
  sleep(2)
2575
2616
  puts '이미지 자동 세탁 중 · · · '
2576
2617
  end
@@ -2589,7 +2630,7 @@ class Wordpress
2589
2630
  end
2590
2631
  sleep(2)
2591
2632
  puts '이미지 자동 세탁 완료 · · · '
2592
- if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt'].checked?
2633
+ if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
2593
2634
  content = content5.join("\n")+'(자동생성글)'+content55
2594
2635
  puts content
2595
2636
  else
@@ -2611,7 +2652,7 @@ class Wordpress
2611
2652
  content = content.split(i.force_encoding('utf-8')).join(keyword)
2612
2653
  end
2613
2654
  end
2614
-
2655
+
2615
2656
  @data['table'][index][-1] = 75
2616
2657
  @data['table'] << []
2617
2658
  @data['table'].pop
@@ -2689,7 +2730,7 @@ class Wordpress
2689
2730
  content = content.split(i.force_encoding('utf-8')).join("<sticker></sticker>")
2690
2731
  end
2691
2732
  end
2692
-
2733
+
2693
2734
 
2694
2735
 
2695
2736
  if @data['포스트설정']['내템플릿사용하기'].checked?
@@ -2743,7 +2784,7 @@ class Wordpress
2743
2784
  content = content
2744
2785
  soosick_1 = content_end
2745
2786
  else
2746
- if @data['포스트설정']['gpt'].checked?
2787
+ if @data['포스트설정']['gpt키워드'].checked?
2747
2788
  if @data['포스트설정']['gpt상단'].checked?
2748
2789
  content = content_end+"\n"+content+"\n"
2749
2790
  else
@@ -3332,8 +3373,11 @@ class Wordpress
3332
3373
  }
3333
3374
 
3334
3375
  horizontal_box{
3335
- stretchy false
3376
+ stretchy false
3377
+ grid{
3336
3378
  button('전체선택'){
3379
+ top 1
3380
+ left 1
3337
3381
  on_clicked{
3338
3382
  for n in 0..@data['table'].length-1
3339
3383
  @data['table'][n][0] = true
@@ -3342,7 +3386,20 @@ class Wordpress
3342
3386
  end
3343
3387
  }
3344
3388
  }
3389
+ button('선택해제'){
3390
+ top 1
3391
+ left 2
3392
+ on_clicked{
3393
+ for n in 0..@data['table'].length-1
3394
+ @data['table'][n][0] = false
3395
+ @data['table'] << []
3396
+ @data['table'].pop
3397
+ end
3398
+ }
3399
+ }
3345
3400
  button('계정삭제'){
3401
+ top 1
3402
+ left 3
3346
3403
  on_clicked{
3347
3404
  del_list_number = Array.new
3348
3405
  for n in 0..@data['table'].length-1
@@ -3357,1216 +3414,1478 @@ class Wordpress
3357
3414
  @data.delete(nil)
3358
3415
  }
3359
3416
  }
3360
- @data['table_counter_input'] = entry{
3361
- text '수량 ex) 3'
3362
- }
3363
- @data['table_delay_input'] = entry{
3364
- text '딜레이 ex) 3'
3365
- }
3366
- @data['table_delay_input2'] = entry{
3367
- text '등록전딜레이'
3368
- }
3417
+ }
3418
+
3419
+ grid{
3420
+ stretchy false
3421
+
3422
+ @data['table_counter_input'] = entry{
3423
+ top 1
3424
+ left 4
3425
+ text '수량 ex) 3'
3426
+ }
3427
+ @data['table_delay_input'] = entry{
3428
+ top 1
3429
+ left 5
3430
+ text '딜레이 ex) 3'
3431
+ }
3432
+ @data['table_delay_input2'] = entry{
3433
+ top 1
3434
+ left 6
3435
+ text '등록전딜레이'
3436
+ }
3369
3437
 
3370
- button('전체설정'){
3371
- on_clicked{
3372
- for n in 0..@data['table'].length-1
3373
- @data['table'][n][7] = @data['table_counter_input'].text.to_i
3374
- @data['table'][n][8] = @data['table_delay_input'].text.to_s
3375
- @data['table'][n][9] = @data['table_delay_input2'].text.to_s
3376
- @data['table'] << []
3377
- @data['table'].pop
3378
- end
3379
- }
3438
+ button('전체설정'){
3439
+ top 1
3440
+ left 7
3441
+ on_clicked{
3442
+ for n in 0..@data['table'].length-1
3443
+ @data['table'][n][7] = @data['table_counter_input'].text.to_i
3444
+ @data['table'][n][8] = @data['table_delay_input'].text.to_s
3445
+ @data['table'][n][9] = @data['table_delay_input2'].text.to_s
3446
+ @data['table'] << []
3447
+ @data['table'].pop
3448
+ end
3380
3449
  }
3381
3450
  }
3382
3451
  }
3383
3452
  }
3384
- tab_item('내용설정'){
3453
+ }
3454
+ }
3455
+ tab_item('내용설정'){
3456
+ horizontal_box{
3457
+ vertical_box{
3385
3458
  horizontal_box{
3386
- vertical_box{
3387
- horizontal_box{
3388
- stretchy false
3389
- button('키워드불러오기'){
3390
- on_clicked{
3391
- file = open_file
3392
- if file != nil
3393
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3394
- file_data.split("\n").each do |keyword|
3395
- if keyword.split(' ').join('').length < 2
3396
-
3397
- else
3398
- @data['키워드설정']['키워드'] << [false, keyword]
3399
- @data['키워드설정']['키워드'] << [false, keyword]
3400
- @data['키워드설정']['키워드'].pop
3401
- end
3402
- end
3403
- end
3404
-
3405
- }
3406
- }
3459
+ stretchy false
3460
+ button('키워드불러오기'){
3461
+ on_clicked{
3462
+ file = open_file
3463
+ if file != nil
3464
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3465
+ file_data.split("\n").each do |keyword|
3466
+ if keyword.split(' ').join('').length < 2
3407
3467
 
3408
- }
3409
- horizontal_box{
3410
- stretchy false
3411
- button('전체선택'){
3412
- on_clicked{
3413
- for n in 0..@data['키워드설정']['키워드'].length-1
3414
- @data['키워드설정']['키워드'][n][0] = true
3415
- @data['키워드설정']['키워드'] << []
3468
+ else
3469
+ @data['키워드설정']['키워드'] << [false, keyword]
3470
+ @data['키워드설정']['키워드'] << [false, keyword]
3416
3471
  @data['키워드설정']['키워드'].pop
3417
3472
  end
3418
- }
3419
- }
3420
- button('키워드삭제'){
3421
- on_clicked{
3422
- m = Array.new
3423
- for n in 0..@data['키워드설정']['키워드'].length-1
3424
- if @data['키워드설정']['키워드'][n][0] == true
3425
- m << n
3426
- end
3427
- end
3428
-
3429
- m.reverse.each do |i|
3430
- @data['키워드설정']['키워드'].delete_at(i)
3431
- end
3432
- @data['키워드설정']['키워드'].delete(nil)
3433
- }
3434
- }
3435
- @data['키워드설정']['순서사용'] = checkbox('순서사용'){
3436
- stretchy false
3437
- on_toggled{ |c|
3438
- if c.checked?
3439
- @data['키워드설정']['랜덤사용'].checked = false
3440
- end
3441
- }
3442
- }
3443
- @data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
3444
- stretchy false
3445
- on_toggled{ |c|
3446
- if c.checked?
3447
- @data['키워드설정']['순서사용'].checked = false
3448
- end
3449
- }
3450
- }
3451
- }
3452
- table{
3453
- checkbox_column('선택'){
3454
- editable true
3455
- }
3456
- text_column('키워드'){
3457
-
3458
- }
3473
+ end
3474
+ end
3459
3475
 
3460
- cell_rows @data['키워드설정']['키워드']
3461
3476
  }
3462
-
3463
- }
3464
- vertical_separator{
3465
- stretchy false
3466
3477
  }
3467
- vertical_box{
3468
- horizontal_box{
3469
- stretchy false
3470
- button('제목불러오기'){
3471
- on_clicked{
3472
- file = open_file
3473
- if file != nil
3474
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3475
- file_data.split("\n").each do |title|
3476
- if title.split(" ").join('').length < 2
3477
-
3478
- else
3479
- @data['제목설정']['제목'] << [false, title]
3480
- @data['제목설정']['제목'] << [false, title]
3481
- @data['제목설정']['제목'].pop
3482
- end
3483
- end
3484
- end
3485
- }
3486
- }
3487
3478
 
3479
+ }
3480
+ horizontal_box{
3481
+ stretchy false
3482
+ grid{
3483
+ button('전체선택'){
3484
+ top 1
3485
+ left 1
3486
+ on_clicked{
3487
+ for n in 0..@data['키워드설정']['키워드'].length-1
3488
+ @data['키워드설정']['키워드'][n][0] = true
3489
+ @data['키워드설정']['키워드'] << []
3490
+ @data['키워드설정']['키워드'].pop
3491
+ end
3488
3492
  }
3489
- horizontal_box{
3490
- stretchy false
3491
- button('전체선택'){
3492
- on_clicked{
3493
- for n in 0..@data['제목설정']['제목'].length-1
3494
- @data['제목설정']['제목'][n][0] = true
3495
- @data['제목설정']['제목'] << []
3496
- @data['제목설정']['제목'].pop
3497
- end
3498
- }
3499
- }
3500
- button('제목삭제'){
3501
- on_clicked{
3502
- m = Array.new
3503
- for n in 0..@data['제목설정']['제목'].length-1
3504
- if @data['제목설정']['제목'][n][0] == true
3505
- m << n
3506
- end
3507
- end
3508
-
3509
- m.reverse.each do |i|
3510
- @data['제목설정']['제목'].delete_at(i)
3511
- end
3512
- @data['제목설정']['제목'].delete(nil)
3513
- }
3514
- }
3515
- @data['제목설정']['순서사용'] = checkbox('순서사용'){
3516
- stretchy false
3517
- on_toggled{ |c|
3518
- if c.checked?
3519
- @data['제목설정']['랜덤사용'].checked = false
3520
- end
3521
- }
3522
- }
3523
- @data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
3524
- stretchy false
3525
- on_toggled{ |c|
3526
- if c.checked?
3527
- @data['제목설정']['순서사용'].checked = false
3528
- end
3529
- }
3530
- }
3493
+ }
3494
+ button('선택해제'){
3495
+ top 1
3496
+ left 2
3497
+ on_clicked{
3498
+ for n in 0..@data['키워드설정']['키워드'].length-1
3499
+ @data['키워드설정']['키워드'][n][0] = false
3500
+ @data['키워드설정']['키워드'] << []
3501
+ @data['키워드설정']['키워드'].pop
3502
+ end
3531
3503
  }
3532
- table{
3533
- checkbox_column('선택'){
3534
- editable true
3535
- }
3536
- text_column('제목'){
3537
-
3538
- }
3504
+ }
3505
+ button('삭제하기'){
3506
+ top 1
3507
+ left 3
3508
+ on_clicked{
3509
+ m = Array.new
3510
+ for n in 0..@data['키워드설정']['키워드'].length-1
3511
+ if @data['키워드설정']['키워드'][n][0] == true
3512
+ m << n
3513
+ end
3514
+ end
3539
3515
 
3540
- cell_rows @data['제목설정']['제목']
3516
+ m.reverse.each do |i|
3517
+ @data['키워드설정']['키워드'].delete_at(i)
3518
+ end
3519
+ @data['키워드설정']['키워드'].delete(nil)
3541
3520
  }
3542
-
3543
3521
  }
3544
- vertical_separator{
3522
+ }
3523
+
3524
+ @data['키워드설정']['순서사용'] = checkbox('순서사용'){
3545
3525
  stretchy false
3526
+ on_toggled{ |c|
3527
+ if c.checked?
3528
+ @data['키워드설정']['랜덤사용'].checked = false
3529
+ end
3530
+ }
3546
3531
  }
3547
- vertical_box{
3548
- horizontal_box{
3549
- stretchy false
3550
- button('내용불러오기'){
3551
- on_clicked{
3552
- file = open_file
3553
- if file != nil
3554
- file_name = file.split("\\")[-1]
3555
- file_data = File.open(file,'r', :encoding => 'utf-8').read()
3556
- if file_data.split("\n").length < 2
3557
- file_data = file_data + "\n"
3558
- end
3559
- @data['내용설정']['내용'] << [false, file_name, file_data]
3560
- @data['내용설정']['내용'] << [false, file_name, file_data]
3561
- @data['내용설정']['내용'].pop
3562
- end
3563
- }
3564
- }
3565
-
3532
+ @data['키워드설정']['랜덤사용'] = checkbox('랜덤사용'){
3533
+ stretchy false
3534
+ on_toggled{ |c|
3535
+ if c.checked?
3536
+ @data['키워드설정']['순서사용'].checked = false
3537
+ end
3566
3538
  }
3567
- horizontal_box{
3568
- stretchy false
3569
- button('전체선택'){
3570
- on_clicked{
3571
- for n in 0..@data['내용설정']['내용'].length-1
3572
- @data['내용설정']['내용'][n][0] = true
3573
- @data['내용설정']['내용'] << []
3574
- @data['내용설정']['내용'].pop
3575
- end
3576
- }
3577
- }
3578
- button('내용삭제'){
3579
- on_clicked{
3580
- m = Array.new
3581
- for n in 0..@data['내용설정']['내용'].length-1
3582
- if @data['내용설정']['내용'][n][0] == true
3583
- m << n
3584
- end
3585
- end
3586
-
3587
- m.reverse.each do |i|
3588
- @data['내용설정']['내용'].delete_at(i)
3589
- end
3590
- @data['내용설정']['내용'].delete(nil)
3591
- }
3592
- }
3593
- @data['내용설정']['순서사용'] = checkbox('순서사용'){
3594
- stretchy false
3595
- on_toggled{ |c|
3596
- if c.checked?
3597
- @data['내용설정']['랜덤사용'].checked = false
3598
- end
3599
- }
3600
- }
3601
- @data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
3602
- stretchy false
3603
- on_toggled{ |c|
3604
- if c.checked?
3605
- @data['내용설정']['순서사용'].checked = false
3606
- end
3607
- }
3608
- }
3609
- }
3610
- table{
3611
- checkbox_column('선택'){
3612
- editable true
3613
- }
3614
- text_column('내용파일'){
3615
-
3616
- }
3539
+ }
3540
+ }
3541
+ vertical_separator{
3542
+ stretchy false
3543
+ }
3544
+ horizontal_box{
3545
+ stretchy false
3546
+ grid{
3547
+ @data['포스트설정']['gpt키워드'] = checkbox('GPT 키워드 기반 글 생성'){
3548
+ top 1
3549
+ left 0
3550
+ #enabled false # 기본적으로 비활성화
3551
+ on_toggled {
3552
+ if @data['포스트설정']['gpt키워드'].checked?
3553
+ @data['포스트설정']['gpt상단'].enabled = true # '내용투명' 활성화
3554
+ @data['포스트설정']['gpt하단'].enabled = true # '내용투명' 활성화
3555
+ else
3556
+ @data['포스트설정']['gpt상단'].checked = false # 체크 해제
3557
+ @data['포스트설정']['gpt상단'].enabled = false # 비활성화
3558
+ @data['포스트설정']['gpt하단'].checked = false # 체크 해제
3559
+ @data['포스트설정']['gpt하단'].enabled = false # 비활성화
3560
+ end
3561
+ }
3562
+
3563
+ }
3564
+
3565
+ @data['포스트설정']['gpt상단'] = checkbox('원고 위에 넣기'){
3566
+ top 1
3567
+ left 1
3568
+ enabled false # 기본적으로 비활성화
3569
+ on_toggled{
3570
+ if @data['포스트설정']['gpt상단'].checked?
3571
+ @data['포스트설정']['gpt하단'].checked = false
3572
+ end
3573
+ }
3574
+ }
3617
3575
 
3618
- cell_rows @data['내용설정']['내용']
3576
+ @data['포스트설정']['gpt하단'] = checkbox('원고 아래 넣기'){
3577
+ top 1
3578
+ left 2
3579
+ enabled false # 기본적으로 비활성화
3580
+ on_toggled{
3581
+ if @data['포스트설정']['gpt하단'].checked?
3582
+ @data['포스트설정']['gpt상단'].checked = false
3583
+ end
3619
3584
  }
3585
+ }
3586
+ } }
3587
+ horizontal_box{
3588
+ stretchy false
3589
+ grid{
3590
+ label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
3591
+ } } }
3592
+
3593
+
3594
+ table{
3595
+ checkbox_column('선택'){
3596
+ editable true
3597
+ }
3598
+ text_column('키워드'){
3620
3599
 
3621
- horizontal_box{
3622
- stretchy false
3623
- @data['이미지설정']['폴더경로2'] = entry{
3624
- stretchy false
3625
- text "내용폴더경로 ex)C:\\내용\\폴더1"
3626
- }
3627
- button('폴더째로불러오기'){
3628
- stretchy false
3629
- on_clicked{
3630
- path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
3631
- Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
3632
- if file == '.' or file == '..'
3633
-
3634
- else
3635
- file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
3636
- @data['내용설정']['내용'] << [false, file, file_data]
3637
- end
3638
- end
3639
- @data['내용설정']['내용'] << []
3640
- @data['내용설정']['내용'].pop
3641
- }
3642
- }
3643
- }
3644
3600
  }
3601
+
3602
+ cell_rows @data['키워드설정']['키워드']
3645
3603
  }
3604
+
3605
+
3606
+
3607
+ }
3608
+ vertical_separator{
3609
+ stretchy false
3646
3610
  }
3647
- tab_item('이미지설정'){
3611
+ vertical_box{
3648
3612
  horizontal_box{
3649
- vertical_box{
3650
- stretchy false
3651
- horizontal_box{
3652
- stretchy false
3653
- button('이미지불러오기'){
3654
- on_clicked{
3655
- file = open_file
3656
- if file != nil
3657
- file_name = file.split("\\")[-1]
3658
- @data['이미지설정']['이미지'] << [false, file_name, file]
3659
- @data['이미지설정']['이미지'] << [false, file_name, file]
3660
- @data['이미지설정']['이미지'].pop
3661
- end
3662
- }
3663
- }
3664
- }
3665
- horizontal_box{
3666
- stretchy false
3667
- button('전체선택'){
3668
- on_clicked{
3669
- for n in 0..@data['이미지설정']['이미지'].length-1
3670
- @data['이미지설정']['이미지'][n][0] = true
3671
- @data['이미지설정']['이미지'] << []
3672
- @data['이미지설정']['이미지'].pop
3673
- end
3674
- }
3675
- }
3676
- button('이미지삭제'){
3677
- on_clicked{
3678
- m = Array.new
3679
- for n in 0..@data['이미지설정']['이미지'].length-1
3680
- if @data['이미지설정']['이미지'][n][0] == true
3681
- m << n
3682
- end
3683
- end
3684
-
3685
- m.reverse.each do |i|
3686
- @data['이미지설정']['이미지'].delete_at(i)
3687
- end
3613
+ stretchy false
3614
+ button('제목불러오기'){
3615
+ on_clicked{
3616
+ file = open_file
3617
+ if file != nil
3618
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3619
+ file_data.split("\n").each do |title|
3620
+ if title.split(" ").join('').length < 2
3688
3621
 
3689
- @data['이미지설정']['이미지'].delete(nil)
3690
- }
3691
- }
3692
- @data['이미지설정']['순서사용'] = checkbox('순서사용'){
3693
- stretchy false
3694
- on_toggled{ |c|
3695
- if c.checked?
3696
- @data['이미지설정']['랜덤사용'].checked = false
3697
- end
3698
- }
3699
- }
3700
- @data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
3701
- stretchy false
3702
- on_toggled{ |c|
3703
- if c.checked?
3704
- @data['이미지설정']['순서사용'].checked = false
3622
+ else
3623
+ @data['제목설정']['제목'] << [false, title]
3624
+ @data['제목설정']['제목'] << [false, title]
3625
+ @data['제목설정']['제목'].pop
3705
3626
  end
3706
- }
3707
- }
3627
+ end
3628
+ end
3708
3629
  }
3709
- table{
3710
- checkbox_column('선택'){
3711
- editable true
3712
- }
3713
- text_column('이미지파일'){
3714
-
3715
- }
3630
+ }
3716
3631
 
3717
- cell_rows @data['이미지설정']['이미지']
3718
- }
3719
- horizontal_box{
3720
- stretchy false
3721
- @data['이미지설정']['폴더경로'] = entry{
3722
- stretchy false
3723
- text "사진폴더경로 ex)C:\\사진\\폴더2"
3724
- }
3725
- button('폴더째로불러오기'){
3726
- stretchy false
3727
- on_clicked{
3728
- path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
3729
- Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
3730
- if file == '.' or file == '..'
3731
-
3732
- else
3733
- @data['이미지설정']['이미지'] << [false, file, path+"\\"+file.force_encoding('utf-8')]
3734
- end
3735
- end
3736
- @data['이미지설정']['이미지'] << []
3737
- @data['이미지설정']['이미지'].pop
3738
- }
3739
- }
3632
+ }
3633
+ horizontal_box{
3634
+ stretchy false
3635
+ grid{
3636
+ button('전체선택'){
3637
+ top 1
3638
+ left 1
3639
+ on_clicked{
3640
+ for n in 0..@data['제목설정']['제목'].length-1
3641
+ @data['제목설정']['제목'][n][0] = true
3642
+ @data['제목설정']['제목'] << []
3643
+ @data['제목설정']['제목'].pop
3644
+ end
3740
3645
  }
3741
-
3742
3646
  }
3743
- vertical_separator{
3744
- stretchy false
3647
+ button('선택해제'){
3648
+ top 1
3649
+ left 2
3650
+ on_clicked{
3651
+ for n in 0..@data['제목설정']['제목'].length-1
3652
+ @data['제목설정']['제목'][n][0] = false
3653
+ @data['제목설정']['제목'] << []
3654
+ @data['제목설정']['제목'].pop
3655
+ end
3656
+ }
3745
3657
  }
3658
+ button('삭제하기'){
3659
+ top 1
3660
+ left 3
3661
+ on_clicked{
3662
+ m = Array.new
3663
+ for n in 0..@data['제목설정']['제목'].length-1
3664
+ if @data['제목설정']['제목'][n][0] == true
3665
+ m << n
3666
+ end
3667
+ end
3746
3668
 
3747
- vertical_box{
3748
- horizontal_box{
3749
- stretchy false
3750
- @data['image_type'][0] = checkbox('저장 사진 사용'){
3751
- on_toggled{
3752
- if @data['image_type'][0].checked?
3753
- @data['image_type'][1].checked = false
3754
- @data['image_type'][2].checked = false
3755
- end
3756
- }
3757
- }
3758
- @data['image_type'][1] = checkbox('색상 사진 사용'){
3759
- on_toggled{
3760
- if @data['image_type'][1].checked?
3761
- @data['image_type'][0].checked = false
3762
- @data['image_type'][2].checked = false
3763
- end
3764
- }
3765
- }
3766
- @data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
3767
- on_toggled{
3768
- if @data['image_type'][2].checked?
3769
- @data['image_type'][1].checked = false
3770
- @data['image_type'][0].checked = false
3771
- end
3772
- }
3773
- }
3669
+ m.reverse.each do |i|
3670
+ @data['제목설정']['제목'].delete_at(i)
3671
+ end
3672
+ @data['제목설정']['제목'].delete(nil)
3774
3673
  }
3775
-
3776
- grid{
3777
- stretchy false
3778
- @data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
3779
- top 0
3780
- left 0
3781
- }
3782
- button('가져오기'){
3783
- top 0
3784
- left 1
3785
- on_clicked{
3786
- file = open_file
3787
- if file != nil
3788
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3789
- @data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
3790
- end
3791
- }
3792
- }
3793
- @data['이미지설정']['이미지글자1크기1'] = entry{
3794
- top 0
3795
- left 2
3796
- text 'ex) 33'
3797
- }
3798
- label('pt'){
3799
- top 0
3800
- left 3
3801
- }
3802
- @data['이미지설정']['이미지글자1크기2'] = entry{
3803
- top 0
3804
- left 4
3805
- text 'ex) 55'
3806
- }
3807
- label('pt'){
3808
- top 0
3809
- left 5
3810
- }
3811
- @data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
3812
- top 0
3813
- left 6
3814
- }
3815
-
3816
- @data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
3817
- top 1
3818
- left 0
3819
- }
3820
- button('가져오기'){
3821
- top 1
3822
- left 1
3823
- on_clicked{
3824
- file = open_file
3825
- if file != nil
3826
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3827
- @data['이미지설정']['이미지글자2'] = file_data.split("\n")
3828
- end
3829
- }
3830
- }
3831
- @data['이미지설정']['이미지글자2크기1'] = entry{
3832
- top 1
3833
- left 2
3834
- text 'ex) 33'
3835
- }
3836
- label('pt'){
3837
- top 1
3838
- left 3
3839
- }
3840
- @data['이미지설정']['이미지글자2크기2'] = entry{
3841
- top 1
3842
- left 4
3843
- text 'ex) 55'
3844
- }
3845
- label('pt'){
3846
- top 1
3847
- left 5
3848
- }
3849
- @data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
3850
- top 1
3851
- left 6
3852
- }
3853
- @data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
3854
- top 2
3855
- left 0
3856
- }
3857
- @data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
3858
- top 3
3859
- left 0
3860
- }
3861
- @data['이미지설정']['테두리크기1'] = entry{
3862
- top 3
3863
- left 2
3864
- text 'ex) 1'
3865
- }
3866
- label('pt'){
3867
- top 3
3868
- left 3
3869
- }
3870
- @data['이미지설정']['테두리크기2'] = entry{
3871
- top 3
3872
- left 4
3873
- text 'ex) 33'
3874
- }
3875
- label('pt'){
3876
- top 3
3877
- left 5
3878
- }
3879
-
3674
+ }
3675
+ }
3676
+ @data['제목설정']['순서사용'] = checkbox('순서사용'){
3677
+ stretchy false
3678
+ on_toggled{ |c|
3679
+ if c.checked?
3680
+ @data['제목설정']['랜덤사용'].checked = false
3681
+ end
3880
3682
  }
3881
-
3882
- horizontal_box{
3883
- stretchy false
3884
- @data['image_size'][0] = checkbox('랜덤 px'){
3885
- on_toggled{
3886
- if @data['image_size'][0].checked?
3887
- @data['image_size'][1].checked = false
3888
- @data['image_size'][2].checked = false
3889
- @data['image_size'][3].checked = false
3890
- @data['image_size'][4].checked = false
3891
- end
3892
- }
3893
- }
3894
- @data['image_size'][1] = checkbox('740 px'){
3895
- on_toggled{
3896
- if @data['image_size'][1].checked?
3897
- @data['image_size'][0].checked = false
3898
- @data['image_size'][2].checked = false
3899
- @data['image_size'][3].checked = false
3900
- @data['image_size'][4].checked = false
3901
- end
3902
- }
3903
- }
3904
- @data['image_size'][2] = checkbox('650 px'){
3905
- on_toggled{
3906
- if @data['image_size'][2].checked?
3907
- @data['image_size'][1].checked = false
3908
- @data['image_size'][0].checked = false
3909
- @data['image_size'][3].checked = false
3910
- @data['image_size'][4].checked = false
3911
- end
3912
- }
3913
- }
3914
- @data['image_size'][3] = checkbox('550 px'){
3915
- on_toggled{
3916
- if @data['image_size'][3].checked?
3917
- @data['image_size'][1].checked = false
3918
- @data['image_size'][2].checked = false
3919
- @data['image_size'][0].checked = false
3920
- @data['image_size'][4].checked = false
3921
- end
3922
- }
3923
- }
3924
- @data['image_size'][4] = checkbox('480 px'){
3925
- on_toggled{
3926
- if @data['image_size'][4].checked?
3927
- @data['image_size'][1].checked = false
3928
- @data['image_size'][2].checked = false
3929
- @data['image_size'][3].checked = false
3930
- @data['image_size'][0].checked = false
3931
- end
3932
- }
3933
- }
3683
+ }
3684
+ @data['제목설정']['랜덤사용'] = checkbox('랜덤사용'){
3685
+ stretchy false
3686
+ on_toggled{ |c|
3687
+ if c.checked?
3688
+ @data['제목설정']['순서사용'].checked = false
3689
+ end
3934
3690
  }
3935
3691
  }
3936
3692
  }
3937
- }
3938
-
3939
- tab_item('포스트설정1'){
3693
+ vertical_separator{
3694
+ stretchy false
3695
+ }
3940
3696
  horizontal_box{
3941
- vertical_box{
3942
- stretchy false
3943
- grid{
3944
- stretchy false
3945
- @data['포스트설정']['제목키워드변경'] = checkbox('제목에 특정 단어를 내용에 사용할 키워드로 변경'){
3946
- top 0
3947
- left 0
3948
-
3949
- }
3950
- @data['포스트설정']['제목키워드변경단어'] = entry{
3951
- top 0
3952
- left 1
3953
- text '특정단어'
3954
- }
3955
-
3956
- # @data['포스트설정']['제목단어변경'] = checkbox('제목에 특정 단어를 변경'){
3957
- # top 1
3958
- # left 0
3959
- # }
3960
- # @data['포스트설정']['제목단어변경파일불러오기'] = button('설정 파일 불러오기'){
3961
- # top 1
3962
- # left 1
3963
- # on_clicked{
3964
- # file = open_file
3965
- # if file != nil
3966
- # file_data = File.open(file, 'r', :encoding => 'utf-8').read()
3967
- # file_data.split("\n").each do |i|
3968
- # i2 = i.split('>')
3969
- # text_key = i2[0].to_s
3970
- # text_val = i2[1].to_s.split(',')
3971
- # @data['포스트설정']['제목특정단어변경데이터'][text_key] = text_val
3972
- # end
3973
- # end
3974
- # }
3975
- # }
3976
- @data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
3977
- top 2
3978
- left 0
3979
- }
3980
- @data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
3981
- top 2
3982
- left 1
3983
- text '최소수량'
3984
- }
3985
- label('~'){
3986
- top 2
3987
- left 2
3988
- }
3989
- @data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
3990
- top 2
3991
- left 3
3992
- text '최대수량'
3993
- }
3994
- label('ㄴ'){
3995
- top 3
3996
- left 2
3997
- }
3998
- @data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
3999
- top 3
4000
- left 3
4001
- on_toggled{
4002
- if @data['포스트설정']['제목앞'].checked? == true
4003
- if @data['포스트설정']['제목뒤'].checked?
4004
- @data['포스트설정']['제목뒤'].checked = false
4005
- end
4006
- end
4007
- }
4008
- }
4009
- label('ㄴ'){
4010
- top 4
4011
- left 2
4012
- }
4013
- @data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
4014
- top 4
4015
- left 3
4016
- on_toggled{
4017
- if @data['포스트설정']['제목뒤'].checked? == true
4018
- if @data['포스트설정']['제목앞'].checked?
4019
- @data['포스트설정']['제목앞'].checked = false
4020
- end
4021
- end
4022
- }
4023
- }
4024
- @data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
4025
- top 4
4026
- left 0
4027
- }
4028
-
4029
- @data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
4030
- top 5
4031
- left 0
4032
- }
4033
- @data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
4034
- top 6
4035
- left 0
4036
- }
4037
- @data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
4038
- top 7
4039
- left 0
4040
- }
4041
- @data['포스트설정']['키워드삽입시작숫자'] = entry(){
4042
- top 7
4043
- left 1
4044
- text '최소수량'
4045
- }
4046
- label('~'){
4047
- top 7
4048
- left 2
4049
- }
4050
- @data['포스트설정']['키워드삽입끝숫자'] = entry(){
4051
- top 7
4052
- left 3
4053
- text '최대수량'
4054
- }
4055
- @data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
4056
- top 8
4057
- left 0
4058
- }
4059
- @data['포스트설정']['키워드삽입시링크'] = entry(){
4060
- top 8
4061
- left 1
4062
- text 'URL'
4063
- }
4064
- @data['포스트설정']['내용을자동생성'] = checkbox('내용을 키워드 기반으로 자동 생성해서 포스팅'){
4065
- top 9
4066
- left 0
4067
- on_toggled{
4068
- if @data['포스트설정']['내용을자동생성'].checked?
4069
- if @data['포스트설정']['내용과자동생성'].checked?
4070
- @data['포스트설정']['내용과자동생성'].checked = false
4071
- end
4072
- end
4073
- }
4074
- }
4075
-
4076
- @data['포스트설정']['gpt'] = checkbox('내용을 키워드 기반의 GPT로 생성해서 포스팅'){
4077
- top 10
4078
- left 0
4079
- }
4080
-
4081
- @data['포스트설정']['api_key'] = entry(){
4082
- top 10
4083
- left 1
4084
- text 'api key'
4085
- }
4086
-
4087
- @data['포스트설정']['gpt상단'] = checkbox('원고내용 위에 넣기'){
4088
- top 10
4089
- left 3
4090
- }
4091
-
4092
- @data['포스트설정']['gpt하단'] = checkbox('원고내용 아래에 넣기'){
4093
- top 11
4094
- left 3
4095
- }
3697
+ stretchy false
3698
+ grid{
3699
+ @data['포스트설정']['gpt제목'] = checkbox('제목을 이용해 GPT로 비슷한 제목 생성'){
3700
+
3701
+
3702
+ }}}
3703
+ horizontal_box{
3704
+ stretchy false
3705
+ grid{
3706
+ label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
3707
+ } } }
3708
+
4096
3709
 
4097
- aa1 = 2
4098
- @data['포스트설정']['내용과자동생성'] = checkbox('내용을 내용 파일 + 자동 생성 조합으로 포스팅'){
4099
- top 10 + aa1
4100
- left 0
4101
- on_toggled{
4102
- if @data['포스트설정']['내용과자동생성'].checked?
4103
- if @data['포스트설정']['내용을자동생성'].checked?
4104
- @data['포스트설정']['내용을자동생성'].checked = false
4105
- end
4106
- end
4107
- }
4108
- }
4109
- @data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리'){
4110
- top 11+ aa1
4111
- left 0
4112
- }
4113
- @data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
4114
- top 12+ aa1
4115
- left 0
4116
- }
4117
- button('설정 파일 불러오기'){
4118
- top 12+ aa1
4119
- left 1
4120
- on_clicked{
4121
- file = open_file
4122
- if file != nil
4123
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4124
- file_data.split("\n").each do |i|
4125
- key = i.split('>')[0]
4126
- v = i.split('>')[1].to_s.split(',')
4127
- @data['포스트설정']['내용자동변경값'][key] = v
4128
- end
4129
- end
4130
- }
4131
- }
4132
- @data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
4133
- top 12+ aa1
4134
- left 3
4135
- }
3710
+ table{
3711
+ checkbox_column('선택'){
3712
+ editable true
3713
+ }
3714
+ text_column('제목'){
4136
3715
 
4137
- @data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
4138
- top 13+ aa1
4139
- left 0
4140
- }
4141
- @data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
4142
- top 13+ aa1
4143
- left 1
4144
- text '최소수량'
4145
- }
4146
- label('~'){
4147
- top 13+ aa1
4148
- left 2
4149
- }
4150
- @data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
4151
- top 13+ aa1
4152
- left 3
4153
- text '최대수량'
4154
- }
3716
+ }
4155
3717
 
4156
- @data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
4157
- top 14+ aa1
4158
- left 0
4159
- }
3718
+ cell_rows @data['제목설정']['제목']
3719
+ }
3720
+
4160
3721
 
4161
- @data['포스트설정']['내용사진링크값'] = entry(){
4162
- top 14+ aa1
4163
- left 1
4164
- text 'URL'
4165
- }
3722
+ }
3723
+ vertical_separator{
3724
+ stretchy false
3725
+ }
3726
+ vertical_box{
3727
+ horizontal_box{
3728
+ stretchy false
3729
+ button('내용불러오기'){
3730
+ on_clicked{
3731
+ file = open_file
3732
+ if file != nil
3733
+ file_name = file.split("\\")[-1]
3734
+ file_data = File.open(file,'r', :encoding => 'utf-8').read()
3735
+ if file_data.split("\n").length < 2
3736
+ file_data = file_data + "\n"
3737
+ end
3738
+ @data['내용설정']['내용'] << [false, file_name, file_data]
3739
+ @data['내용설정']['내용'] << [false, file_name, file_data]
3740
+ @data['내용설정']['내용'].pop
3741
+ end
4166
3742
  }
4167
3743
  }
4168
3744
 
4169
- vertical_separator{
4170
- stretchy false
4171
- }
4172
-
4173
-
3745
+ }
3746
+ horizontal_box{
3747
+ stretchy false
4174
3748
  grid{
4175
- @data['포스트설정']['특정단어키워드로변경'] = checkbox('내용 특정단어를 키워드로 변경'){
4176
- top 0
4177
- left 0
3749
+ button('전체선택'){
3750
+ top 1
3751
+ left 1
3752
+ on_clicked{
3753
+ for n in 0..@data['내용설정']['내용'].length-1
3754
+ @data['내용설정']['내용'][n][0] = true
3755
+ @data['내용설정']['내용'] << []
3756
+ @data['내용설정']['내용'].pop
3757
+ end
4178
3758
  }
4179
- @data['포스트설정']['특정단어키워드로변경값'] = entry{
4180
- top 0
4181
- left 1
4182
- text '특정단어'
3759
+ }
3760
+ button('선택해제'){
3761
+ top 1
3762
+ left 2
3763
+ on_clicked{
3764
+ for n in 0..@data['내용설정']['내용'].length-1
3765
+ @data['내용설정']['내용'][n][0] = false
3766
+ @data['내용설정']['내용'] << []
3767
+ @data['내용설정']['내용'].pop
3768
+ end
4183
3769
  }
3770
+ }
3771
+ button('삭제하기'){
3772
+ top 1
3773
+ left 3
3774
+ on_clicked{
3775
+ m = Array.new
3776
+ for n in 0..@data['내용설정']['내용'].length-1
3777
+ if @data['내용설정']['내용'][n][0] == true
3778
+ m << n
3779
+ end
3780
+ end
4184
3781
 
4185
- @data['포스트설정']['제외하고등록'] = checkbox('내용 특정단어를 제외하고 등록'){
4186
- top 1
4187
- left 0
4188
- }
4189
- @data['포스트설정']['제외하고등록값'] = entry{
4190
- top 1
4191
- left 1
4192
- text '특정단어'
3782
+ m.reverse.each do |i|
3783
+ @data['내용설정']['내용'].delete_at(i)
3784
+ end
3785
+ @data['내용설정']['내용'].delete(nil)
4193
3786
  }
4194
-
4195
- @data['포스트설정']['단어링크적용'] = checkbox('내용 특정단어를 링크적용 등록'){
4196
- top 2
4197
- left 0
3787
+ }
3788
+ }
3789
+ @data['내용설정']['순서사용'] = checkbox('순서사용'){
3790
+ stretchy false
3791
+ on_toggled{ |c|
3792
+ if c.checked?
3793
+ @data['내용설정']['랜덤사용'].checked = false
3794
+ end
4198
3795
  }
4199
- @data['포스트설정']['단어링크적용단어'] = entry{
4200
- top 2
4201
- left 1
4202
- text '특정단어'
3796
+ }
3797
+ @data['내용설정']['랜덤사용'] = checkbox('랜덤사용'){
3798
+ stretchy false
3799
+ on_toggled{ |c|
3800
+ if c.checked?
3801
+ @data['내용설정']['순서사용'].checked = false
3802
+ end
4203
3803
  }
3804
+ }
3805
+ }
3806
+ vertical_separator{
3807
+ stretchy false
3808
+ }
3809
+ horizontal_box{
3810
+ stretchy false
3811
+ grid{
3812
+ @data['포스트설정']['gpt내용'] = checkbox('내용파일을 이용해 GPT로 글 변형'){
3813
+
3814
+
3815
+ }}}
3816
+ horizontal_box{
3817
+ stretchy false
3818
+ grid{
3819
+ label('※ GPT 기능 사용시 포스트설정1에서 GPT사용에 체크 필수'){
3820
+ } } }
3821
+
3822
+ table{
3823
+ checkbox_column('선택'){
3824
+ editable true
3825
+ }
3826
+ text_column('내용파일'){
4204
3827
 
4205
- label('ㄴ적용하려는 링크 URL 입력'){
4206
- top 3
4207
- left 0
4208
- }
4209
- @data['포스트설정']['단어링크적용url'] = entry{
4210
- top 3
4211
- left 1
4212
- text 'URL'
4213
- }
3828
+ }
4214
3829
 
4215
- @data['포스트설정']['단어사진으로변경'] = checkbox('내용 특정단어를 사진으로 변경'){
4216
- top 4
4217
- left 0
4218
- }
4219
- @data['포스트설정']['단어사진으로변경단어'] = entry{
4220
- top 4
4221
- left 1
4222
- text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
4223
- }
4224
- label('ㄴ적용하려는 링크 URL 입력'){
4225
- top 5
4226
- left 0
4227
- }
3830
+ cell_rows @data['내용설정']['내용']
3831
+ }
4228
3832
 
4229
- @data['포스트설정']['단어사진으로변경URL'] = entry{
4230
- top 5
4231
- left 1
4232
- text 'URL'
4233
- }
3833
+ horizontal_box{
3834
+ stretchy false
3835
+ @data['이미지설정']['폴더경로2'] = entry{
3836
+ stretchy false
3837
+ text "내용폴더경로 ex)C:\\내용\\폴더1"
3838
+ }
3839
+ button('폴더째로 불러오기'){
3840
+
3841
+ on_clicked{
3842
+ path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
3843
+ Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
3844
+ if file == '.' or file == '..'
4234
3845
 
4235
- @data['포스트설정']['스티커로변경'] = checkbox('내용 특정단어를 스티커로 변경'){
4236
- top 6
4237
- left 0
4238
- }
4239
- @data['포스트설정']['스티커로변경단어'] = entry{
4240
- top 6
4241
- left 1
4242
- text '특정단어'
4243
- }
4244
- @data['포스트설정']['영상으로변경'] = checkbox('내용 특정단어를 영상으로 변경'){
4245
- top 7
4246
- left 0
4247
- }
4248
- @data['포스트설정']['영상으로변경단어'] = entry{
4249
- top 7
4250
- left 1
4251
- text '특정단어'
4252
- }
4253
- label('ㄴ동영상만 있는 폴더 지정하기'){
4254
- top 8
4255
- left 0
4256
- }
4257
- @data['포스트설정']['동영상폴더위치'] = entry{
4258
- top 8
4259
- left 1
4260
- text "영상폴더위치 ex) C:\\영상\\폴더3"
4261
- }
4262
- @data['포스트설정']['지도로변경'] = checkbox('내용 특정단어를 지도로 변경'){
4263
- top 9
4264
- left 0
4265
- }
4266
- @data['포스트설정']['지도로변경단어'] = entry{
4267
- top 9
4268
- left 1
4269
- text '특정단어'
4270
- }
4271
- label('ㄴ지도 삽입경우 적용 주소 입력'){
4272
- top 10
4273
- left 0
4274
- }
4275
- @data['포스트설정']['지도주소'] = entry{
4276
- top 10
4277
- left 1
4278
- text 'ex) OO시 OO구 OO동 270-68'
4279
- }
4280
- @data['포스트설정']['인용구변경'] = checkbox('내용 특정단어를 인용구로 적용'){
4281
- top 11
4282
- left 0
4283
- }
4284
- @data['포스트설정']['인용구변경단어'] = entry{
4285
- top 11
4286
- left 1
4287
- text '특정단어'
4288
- }
4289
- label('ㄴ인용구 사용시 들어갈 문구'){
4290
- top 12
4291
- left 0
4292
- }
4293
- button('설정 파일 불러오기'){
4294
- top 12
4295
- left 1
4296
- on_clicked{
4297
- file = open_file
4298
- if file != nil
4299
- file_data = File.open(file, 'r').read
4300
- @data['포스트설정']['인용구'] = file_data.split(',')
3846
+ else
3847
+ file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
3848
+ @data['내용설정']['내용'] << [false, file, file_data]
4301
3849
  end
4302
- }
4303
- }
4304
- @data['포스트설정']['내템플릿사용하기'] = checkbox('내 템플릿 사용하기'){
4305
- top 13
4306
- left 0
4307
- }
4308
- @data['포스트설정']['내템플릿변경단어'] = entry{
4309
- top 13
4310
- left 1
4311
- text '탬플릿으로 전활시킬 특정단어'
3850
+ end
3851
+ @data['내용설정']['내용'] << []
3852
+ @data['내용설정']['내용'].pop
4312
3853
  }
4313
3854
  }
4314
3855
  }
4315
3856
  }
4316
- tab_item('포스트설정2'){
4317
- vertical_box{
4318
- grid{
4319
- stretchy false
4320
-
4321
- @data['포스트설정']['특정단어굵기'] = checkbox('내용 특정단어 굵기 변경(적용 단어 앞 뒤에 @@삽입)'){
4322
- top 0
4323
- left 0
4324
- }
4325
- @data['포스트설정']['단어색상변경'] = checkbox('내용 특정단어 색상 변경(적용 단어 앞 뒤에 %%삽입)'){
4326
- top 1
4327
- left 0
3857
+ }
3858
+ }
3859
+ tab_item('이미지설정'){
3860
+ horizontal_box{
3861
+ vertical_box{
3862
+ stretchy false
3863
+ horizontal_box{
3864
+ stretchy false
3865
+ button('이미지불러오기'){
3866
+ on_clicked{
3867
+ file = open_file
3868
+ if file != nil
3869
+ file_name = file.split("\\")[-1]
3870
+ @data['이미지설정']['이미지'] << [false, file_name, file]
3871
+ @data['이미지설정']['이미지'] << [false, file_name, file]
3872
+ @data['이미지설정']['이미지'].pop
3873
+ end
4328
3874
  }
4329
- @data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
4330
- top 2
4331
- left 0
3875
+ }
3876
+ }
3877
+ horizontal_box{
3878
+ stretchy false
3879
+ grid{
3880
+ button('전체선택'){
3881
+ top 1
3882
+ left 1
3883
+ on_clicked{
3884
+ for n in 0..@data['이미지설정']['이미지'].length-1
3885
+ @data['이미지설정']['이미지'][n][0] = true
3886
+ @data['이미지설정']['이미지'] << []
3887
+ @data['이미지설정']['이미지'].pop
3888
+ end
4332
3889
  }
4333
- @data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
4334
- top 3
4335
- left 0
4336
- on_toggled{
4337
- if @data['포스트설정']['중앙정렬'].checked?
4338
- @data['포스트설정']['좌측정렬'].checked = false
4339
- @data['포스트설정']['우측정렬'].checked = false
4340
- end
4341
- }
3890
+ }
3891
+ button('선택해제'){
3892
+ top 1
3893
+ left 2
3894
+ on_clicked{
3895
+ for n in 0..@data['이미지설정']['이미지'].length-1
3896
+ @data['이미지설정']['이미지'][n][0] = false
3897
+ @data['이미지설정']['이미지'] << []
3898
+ @data['이미지설정']['이미지'].pop
3899
+ end
4342
3900
  }
4343
- @data['포스트설정']['좌측정렬'] = checkbox('내용 글 좌측 정렬'){
4344
- top 4
4345
- left 0
4346
- on_toggled{
4347
- if @data['포스트설정']['좌측정렬'].checked?
4348
- @data['포스트설정']['중앙정렬'].checked = false
4349
- @data['포스트설정']['우측정렬'].checked = false
3901
+ }
3902
+ button('삭제하기'){
3903
+ top 1
3904
+ left 3
3905
+ on_clicked{
3906
+ m = Array.new
3907
+ for n in 0..@data['이미지설정']['이미지'].length-1
3908
+ if @data['이미지설정']['이미지'][n][0] == true
3909
+ m << n
4350
3910
  end
4351
- }
3911
+ end
3912
+
3913
+ m.reverse.each do |i|
3914
+ @data['이미지설정']['이미지'].delete_at(i)
3915
+ end
3916
+
3917
+ @data['이미지설정']['이미지'].delete(nil)
4352
3918
  }
4353
- @data['포스트설정']['우측정렬'] = checkbox('내용 글 우측 정렬'){
4354
- top 5
4355
- left 0
4356
- on_toggled{
4357
- if @data['포스트설정']['우측정렬'].checked?
4358
- @data['포스트설정']['좌측정렬'].checked = false
4359
- @data['포스트설정']['중앙정렬'].checked = false
4360
- end
4361
- }
3919
+ }
3920
+ }
3921
+ @data['이미지설정']['순서사용'] = checkbox('순서사용'){
3922
+ stretchy false
3923
+ on_toggled{ |c|
3924
+ if c.checked?
3925
+ @data['이미지설정']['랜덤사용'].checked = false
3926
+ end
4362
3927
  }
4363
- @data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
4364
- top 6
4365
- left 0
3928
+ }
3929
+ @data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
3930
+ stretchy false
3931
+ on_toggled{ |c|
3932
+ if c.checked?
3933
+ @data['이미지설정']['순서사용'].checked = false
3934
+ end
4366
3935
  }
4367
- @data['포스트설정']['막글삽입시작숫자'] = entry{
4368
- top 6
4369
- left 1
4370
- text '최소수량'
3936
+ }
3937
+ }
3938
+ table{
3939
+ checkbox_column('선택'){
3940
+ editable true
3941
+ }
3942
+ text_column('이미지파일'){
3943
+
3944
+ }
3945
+
3946
+ cell_rows @data['이미지설정']['이미지']
3947
+ }
3948
+ horizontal_box{
3949
+ stretchy false
3950
+ @data['이미지설정']['폴더경로'] = entry{
3951
+ stretchy false
3952
+ text "사진폴더경로 ex)C:\\사진\\폴더2"
3953
+ }
3954
+ button('폴더째로 불러오기'){
3955
+
3956
+ on_clicked{
3957
+ path = @data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
3958
+ Dir.entries(@data['이미지설정']['폴더경로'].text.to_s.force_encoding('utf-8')).each do |file|
3959
+ if file == '.' or file == '..'
3960
+
3961
+ else
3962
+ @data['이미지설정']['이미지'] << [false, file, path+"\\"+file.force_encoding('utf-8')]
3963
+ end
3964
+ end
3965
+ @data['이미지설정']['이미지'] << []
3966
+ @data['이미지설정']['이미지'].pop
4371
3967
  }
4372
- label('~'){
4373
- top 6
4374
- left 2
3968
+ }
3969
+ }
3970
+
3971
+ }
3972
+ vertical_separator{
3973
+ stretchy false
3974
+ }
3975
+
3976
+ vertical_box{
3977
+ horizontal_box{
3978
+ stretchy false
3979
+ @data['image_type'][0] = checkbox('저장 사진 사용'){
3980
+ on_toggled{
3981
+ if @data['image_type'][0].checked?
3982
+ @data['image_type'][1].checked = false
3983
+ @data['image_type'][2].checked = false
3984
+ end
4375
3985
  }
4376
- @data['포스트설정']['막글삽입끝숫자'] = entry{
4377
- top 6
4378
- left 3
4379
- text '최대수량'
3986
+ }
3987
+ @data['image_type'][1] = checkbox('색상 사진 사용'){
3988
+ on_toggled{
3989
+ if @data['image_type'][1].checked?
3990
+ @data['image_type'][0].checked = false
3991
+ @data['image_type'][2].checked = false
3992
+ end
4380
3993
  }
4381
- button('막글 파일 불러오기'){
4382
- top 6
4383
- left 4
4384
- on_clicked{
4385
- file = open_file
4386
- if file != nil
4387
- file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4388
- @data['포스트설정']['막글'] = file_data
4389
- end
4390
- }
3994
+ }
3995
+ @data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
3996
+ on_toggled{
3997
+ if @data['image_type'][2].checked?
3998
+ @data['image_type'][1].checked = false
3999
+ @data['image_type'][0].checked = false
4000
+ end
4391
4001
  }
4392
- @data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
4393
- top 7
4394
- left 0
4002
+ }
4003
+ }
4004
+
4005
+ grid{
4006
+ stretchy false
4007
+ @data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
4008
+ top 0
4009
+ left 0
4010
+ }
4011
+ button('가져오기'){
4012
+ top 0
4013
+ left 1
4014
+ on_clicked{
4015
+ file = open_file
4016
+ if file != nil
4017
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4018
+ @data['이미지설정']['이미지글자1'] = file_data.to_s.split("\n")
4019
+ end
4395
4020
  }
4396
- @data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
4397
- top 7
4398
- left 1
4021
+ }
4022
+ @data['이미지설정']['이미지글자1크기1'] = entry{
4023
+ top 0
4024
+ left 2
4025
+ text 'ex) 33'
4026
+ }
4027
+ label('pt'){
4028
+ top 0
4029
+ left 3
4030
+ }
4031
+ @data['이미지설정']['이미지글자1크기2'] = entry{
4032
+ top 0
4033
+ left 4
4034
+ text 'ex) 55'
4035
+ }
4036
+ label('pt'){
4037
+ top 0
4038
+ left 5
4039
+ }
4040
+ @data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
4041
+ top 0
4042
+ left 6
4043
+ }
4044
+
4045
+ @data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
4046
+ top 1
4047
+ left 0
4048
+ }
4049
+ button('가져오기'){
4050
+ top 1
4051
+ left 1
4052
+ on_clicked{
4053
+ file = open_file
4054
+ if file != nil
4055
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4056
+ @data['이미지설정']['이미지글자2'] = file_data.split("\n")
4057
+ end
4399
4058
  }
4059
+ }
4060
+ @data['이미지설정']['이미지글자2크기1'] = entry{
4061
+ top 1
4062
+ left 2
4063
+ text 'ex) 33'
4064
+ }
4065
+ label('pt'){
4066
+ top 1
4067
+ left 3
4068
+ }
4069
+ @data['이미지설정']['이미지글자2크기2'] = entry{
4070
+ top 1
4071
+ left 4
4072
+ text 'ex) 55'
4073
+ }
4074
+ label('pt'){
4075
+ top 1
4076
+ left 5
4077
+ }
4078
+ @data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
4079
+ top 1
4080
+ left 6
4081
+ }
4082
+ @data['이미지설정']['필터사용'] = checkbox('필터사용(색상 사진 적용불가)'){
4083
+ top 2
4084
+ left 0
4085
+ }
4086
+ @data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
4087
+ top 3
4088
+ left 0
4089
+ }
4090
+ @data['이미지설정']['테두리크기1'] = entry{
4091
+ top 3
4092
+ left 2
4093
+ text 'ex) 1'
4094
+ }
4095
+ label('pt'){
4096
+ top 3
4097
+ left 3
4098
+ }
4099
+ @data['이미지설정']['테두리크기2'] = entry{
4100
+ top 3
4101
+ left 4
4102
+ text 'ex) 33'
4103
+ }
4104
+ label('pt'){
4105
+ top 3
4106
+ left 5
4107
+ }
4400
4108
 
4401
- @data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
4402
- top 8
4403
- left 0
4109
+ }
4110
+
4111
+ horizontal_box{
4112
+ stretchy false
4113
+ @data['image_size'][0] = checkbox('랜덤 px'){
4114
+ on_toggled{
4115
+ if @data['image_size'][0].checked?
4116
+ @data['image_size'][1].checked = false
4117
+ @data['image_size'][2].checked = false
4118
+ @data['image_size'][3].checked = false
4119
+ @data['image_size'][4].checked = false
4120
+ end
4404
4121
  }
4405
- @data['포스트설정']['태그삽입1시작숫자'] = entry{
4406
- top 8
4407
- left 1
4408
- text '최소수량'
4122
+ }
4123
+ @data['image_size'][1] = checkbox('740 px'){
4124
+ on_toggled{
4125
+ if @data['image_size'][1].checked?
4126
+ @data['image_size'][0].checked = false
4127
+ @data['image_size'][2].checked = false
4128
+ @data['image_size'][3].checked = false
4129
+ @data['image_size'][4].checked = false
4130
+ end
4409
4131
  }
4410
- label('~'){
4411
- top 8
4412
- left 2
4132
+ }
4133
+ @data['image_size'][2] = checkbox('650 px'){
4134
+ on_toggled{
4135
+ if @data['image_size'][2].checked?
4136
+ @data['image_size'][1].checked = false
4137
+ @data['image_size'][0].checked = false
4138
+ @data['image_size'][3].checked = false
4139
+ @data['image_size'][4].checked = false
4140
+ end
4413
4141
  }
4414
- @data['포스트설정']['태그삽입1끝숫자'] = entry{
4415
- top 8
4416
- left 3
4417
- text '최대수량'
4142
+ }
4143
+ @data['image_size'][3] = checkbox('550 px'){
4144
+ on_toggled{
4145
+ if @data['image_size'][3].checked?
4146
+ @data['image_size'][1].checked = false
4147
+ @data['image_size'][2].checked = false
4148
+ @data['image_size'][0].checked = false
4149
+ @data['image_size'][4].checked = false
4150
+ end
4418
4151
  }
4419
-
4420
- @data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
4421
- top 9
4422
- left 0
4152
+ }
4153
+ @data['image_size'][4] = checkbox('480 px'){
4154
+ on_toggled{
4155
+ if @data['image_size'][4].checked?
4156
+ @data['image_size'][1].checked = false
4157
+ @data['image_size'][2].checked = false
4158
+ @data['image_size'][3].checked = false
4159
+ @data['image_size'][0].checked = false
4160
+ end
4423
4161
  }
4162
+ }
4163
+ }
4164
+ }
4165
+ }
4166
+ }
4424
4167
 
4425
- @data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
4426
- top 9
4427
- left 1
4428
- }
4168
+ tab_item('포스트설정1'){
4169
+ horizontal_box{
4170
+ vertical_box{
4171
+ stretchy false
4172
+ grid{
4173
+ stretchy false
4174
+ @data['포스트설정']['제목키워드변경'] = checkbox('제목에 특정 단어를 내용에 사용할 키워드로 변경'){
4175
+ top 0
4176
+ left 0
4429
4177
 
4430
-
4178
+ }
4179
+ @data['포스트설정']['제목키워드변경단어'] = entry{
4180
+ top 0
4181
+ left 1
4182
+ text '특정단어'
4183
+ }
4431
4184
 
4432
- @data['포스트설정']['전체공개'] = checkbox('전체공개'){
4433
- top 10
4434
- left 0
4435
- on_toggled{
4436
- if @data['포스트설정']['전체공개'].checked?
4437
- if @data['포스트설정']['비공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4438
- @data['포스트설정']['멤버공개'].checked = false
4439
- @data['포스트설정']['서로이웃공개'].checked = false
4440
- @data['포스트설정']['비공개'].checked = false
4441
- end
4442
- end
4443
- }
4185
+ # @data['포스트설정']['제목단어변경'] = checkbox('제목에 특정 단어를 변경'){
4186
+ # top 1
4187
+ # left 0
4188
+ # }
4189
+ # @data['포스트설정']['제목단어변경파일불러오기'] = button('설정 파일 불러오기'){
4190
+ # top 1
4191
+ # left 1
4192
+ # on_clicked{
4193
+ # file = open_file
4194
+ # if file != nil
4195
+ # file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4196
+ # file_data.split("\n").each do |i|
4197
+ # i2 = i.split('>')
4198
+ # text_key = i2[0].to_s
4199
+ # text_val = i2[1].to_s.split(',')
4200
+ # @data['포스트설정']['제목특정단어변경데이터'][text_key] = text_val
4201
+ # end
4202
+ # end
4203
+ # }
4204
+ # }
4205
+ @data['포스트설정']['제목에키워드삽입'] = checkbox('제목에 키워드 삽입'){
4206
+ top 2
4207
+ left 0
4208
+ #enabled false # 기본적으로 비활성화
4209
+ on_toggled {
4210
+ if @data['포스트설정']['제목에키워드삽입'].checked?
4211
+ @data['포스트설정']['제목앞'].enabled = true # '내용투명' 활성화
4212
+ @data['포스트설정']['제목뒤'].enabled = true # '내용투명' 활성화
4213
+ else
4214
+ @data['포스트설정']['제목앞'].checked = false # 체크 해제
4215
+ @data['포스트설정']['제목앞'].enabled = false # 비활성화
4216
+ @data['포스트설정']['제목뒤'].checked = false # 체크 해제
4217
+ @data['포스트설정']['제목뒤'].enabled = false # 비활성화
4218
+ end
4444
4219
  }
4445
- @data['포스트설정']['멤버공개'] = checkbox('이웃공개'){
4446
- top 10
4447
- left 1
4448
- on_toggled{
4449
- if @data['포스트설정']['멤버공개'].checked?
4450
- if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['비공개'].checked?
4451
- @data['포스트설정']['전체공개'].checked = false
4452
- @data['포스트설정']['서로이웃공개'].checked = false
4453
- @data['포스트설정']['비공개'].checked = false
4454
- end
4220
+
4221
+ }
4222
+ @data['포스트설정']['제목에키워드삽입숫자1'] = entry(){
4223
+ top 2
4224
+ left 1
4225
+ text '최소수량'
4226
+ }
4227
+ label('~'){
4228
+ top 2
4229
+ left 2
4230
+ }
4231
+ @data['포스트설정']['제목에키워드삽입숫자2'] = entry(){
4232
+ top 2
4233
+ left 3
4234
+ text '최대수량'
4235
+ }
4236
+ label('ㄴ'){
4237
+ top 3
4238
+ left 2
4239
+ }
4240
+ @data['포스트설정']['제목앞'] = checkbox('제목에 키워드 삽입 제목 앞'){
4241
+ top 3
4242
+ left 3
4243
+ enabled false # 기본적으로 비활성화
4244
+ on_toggled{
4245
+ if @data['포스트설정']['제목앞'].checked? == true
4246
+ if @data['포스트설정']['제목뒤'].checked?
4247
+ @data['포스트설정']['제목뒤'].checked = false
4455
4248
  end
4456
- }
4249
+ end
4457
4250
  }
4458
- @data['포스트설정']['서로이웃공개'] = checkbox('서로이웃공개'){
4459
- top 11
4460
- left 0
4461
- on_toggled{
4462
- if @data['포스트설정']['서로이웃공개'].checked?
4463
- if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['비공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4464
- @data['포스트설정']['전체공개'].checked = false
4465
- @data['포스트설정']['비공개'].checked = false
4466
- @data['포스트설정']['멤버공개'].checked = false
4467
- end
4251
+ }
4252
+ label('ㄴ'){
4253
+ top 4
4254
+ left 2
4255
+ }
4256
+ @data['포스트설정']['제목뒤'] = checkbox('제목에 키워드 삽입 제목 뒤'){
4257
+ top 4
4258
+ left 3
4259
+ enabled false # 기본적으로 비활성화
4260
+ on_toggled{
4261
+ if @data['포스트설정']['제목뒤'].checked? == true
4262
+ if @data['포스트설정']['제목앞'].checked?
4263
+ @data['포스트설정']['제목앞'].checked = false
4468
4264
  end
4469
- }
4265
+ end
4470
4266
  }
4471
-
4472
- @data['포스트설정']['비공개'] = checkbox('비공개'){
4473
- top 11
4474
- left 1
4475
- on_toggled{
4476
- if @data['포스트설정']['비공개'].checked?
4477
- if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4478
- @data['포스트설정']['전체공개'].checked = false
4479
- @data['포스트설정']['서로이웃공개'].checked = false
4480
- @data['포스트설정']['멤버공개'].checked = false
4481
- end
4267
+ }
4268
+
4269
+ @data['포스트설정']['특수문자'] = checkbox('제목에 키워드 삽입 시 특수문자 삽입'){
4270
+ top 4
4271
+ left 0
4272
+ }
4273
+ @data['포스트설정']['제목을랜덤'] = checkbox('제목을 랜덤 단어 조합으로 자동 입력'){
4274
+ top 5
4275
+ left 0
4276
+ on_toggled{
4277
+ if @data['포스트설정']['제목을랜덤'].checked? == true
4278
+ if @data['포스트설정']['제목내용설정'].checked?
4279
+ @data['포스트설정']['제목내용설정'].checked = false
4482
4280
  end
4483
- }
4484
- }
4485
-
4486
-
4487
-
4488
- @data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
4489
- top 12
4490
- left 0
4491
- }
4492
- @data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
4493
- top 12
4494
- left 1
4281
+ end
4495
4282
  }
4496
- @data['포스트설정']['외부공유허용'] = checkbox('외부공유허용'){
4497
- top 13
4498
- left 0
4283
+ }
4284
+ @data['포스트설정']['제목내용설정'] = checkbox('내용의 첫 문장을 제목으로 설정'){
4285
+ top 6
4286
+ left 0
4287
+ on_toggled{
4288
+ if @data['포스트설정']['제목내용설정'].checked? == true
4289
+ if @data['포스트설정']['제목을랜덤'].checked?
4290
+ @data['포스트설정']['제목을랜덤'].checked = false
4291
+ end
4292
+ end
4499
4293
  }
4500
- @data['포스트설정']['검색허용'] = checkbox('검색허용'){
4501
- top 13
4502
- left 1
4294
+ }
4295
+ @data['포스트설정']['내용키워드삽입'] = checkbox('내용 키워드 삽입'){
4296
+ top 7
4297
+ left 0
4298
+ on_toggled {
4299
+ if @data['포스트설정']['내용키워드삽입'].checked?
4300
+ @data['포스트설정']['키워드삽입'].enabled = true # '내용투명' 활성화
4301
+ @data['포스트설정']['키워드삽입시링크'].enabled = true # '내용투명' 활성화
4302
+ else
4303
+ @data['포스트설정']['키워드삽입'].checked = false # 체크 해제
4304
+ @data['포스트설정']['키워드삽입'].enabled = false # 비활성화
4305
+ @data['포스트설정']['키워드삽입시링크'].text = 'URL' # 기본 텍스트 설정
4306
+ @data['포스트설정']['키워드삽입시링크'].enabled = false # 비활성화
4307
+ end
4503
4308
  }
4504
- @data['포스트설정']['공감허용'] = checkbox('공감허용'){
4505
- top 14
4506
- left 0
4309
+ }
4310
+ @data['포스트설정']['키워드삽입시작숫자'] = entry(){
4311
+ top 7
4312
+ left 1
4313
+
4314
+ text '최소수량'
4315
+ }
4316
+ label('~'){
4317
+ top 7
4318
+ left 2
4319
+ }
4320
+ @data['포스트설정']['키워드삽입끝숫자'] = entry(){
4321
+ top 7
4322
+ left 3
4323
+ text '최대수량'
4324
+ }
4325
+ @data['포스트설정']['키워드삽입'] = checkbox('내용 키워드 삽입시 링크 삽입'){
4326
+ enabled false # 기본적으로 비활성화
4327
+ top 8
4328
+ left 0
4329
+
4330
+ }
4331
+ @data['포스트설정']['키워드삽입시링크'] = entry(){
4332
+ enabled false # 기본적으로 비활성화
4333
+ top 8
4334
+ left 1
4335
+ text 'URL'
4336
+ }
4337
+ @data['포스트설정']['내용을자동생성'] = checkbox('키워드기반 생성으로만 등록(GPT 미 사용시 자체 생성)'){
4338
+ top 9
4339
+ left 0
4340
+ on_toggled{
4341
+ if @data['포스트설정']['내용을자동생성'].checked?
4342
+ @data['포스트설정']['내용과자동생성'].checked = false
4343
+ @data['포스트설정']['내용투명'].checked = false
4344
+ @data['포스트설정']['자동글 수식에 입력'].checked = false
4345
+
4346
+ end
4507
4347
  }
4348
+ }
4508
4349
 
4509
- @data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
4510
- top 15
4511
- left 0
4512
- on_toggled{
4513
- if @data['포스트설정']['테더링'].checked?
4514
- @data['포스트설정']['프록시'].checked = false
4515
-
4516
- end
4517
- }
4350
+
4351
+ aa1 = 2
4352
+ @data['포스트설정']['내용과자동생성'] = checkbox('내용파일+키워드기반 생성 등록(GPT 미 사용시 자체 생성)') {
4353
+ top 10 + aa1
4354
+ left 0
4355
+ on_toggled {
4356
+ if @data['포스트설정']['내용과자동생성'].checked?
4357
+ @data['포스트설정']['내용을자동생성'].checked = false
4358
+ @data['포스트설정']['내용투명'].enabled = true # '내용투명' 활성화
4359
+ @data['포스트설정']['자동글 수식에 입력'].enabled = true # '내용투명' 활성화
4360
+ else
4361
+ @data['포스트설정']['내용투명'].checked = false # 체크 해제
4362
+ @data['포스트설정']['내용투명'].enabled = false # 비활성화
4363
+ @data['포스트설정']['자동글 수식에 입력'].checked = false # 체크 해제
4364
+ @data['포스트설정']['자동글 수식에 입력'].enabled = false # 비활성화
4365
+ end
4518
4366
  }
4519
- @data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
4520
- top 15
4521
- left 1
4522
- on_toggled{
4523
- if @data['포스트설정']['프록시'].checked?
4524
- @data['포스트설정']['테더링'].checked = false
4525
-
4526
- end
4527
- }
4367
+ }
4368
+
4369
+ @data['포스트설정']['내용투명'] = checkbox('키워드 기반 자동 생성글 안보이게 처리') {
4370
+ top 11 + aa1
4371
+ left 0
4372
+ enabled false # 기본적으로 비활성화
4373
+ on_toggled {
4374
+ if @data['포스트설정']['내용투명'].checked?
4375
+ @data['포스트설정']['내용을자동생성'].checked = false
4376
+ @data['포스트설정']['자동글 수식에 입력'].checked = false
4377
+ end
4528
4378
  }
4529
- button('프록시 IP 파일 불러오기'){
4530
- top 15
4531
- left 3
4532
- on_clicked{
4533
- file = open_file
4534
- if file != nil
4535
- file_data = File.open(file,'r').read
4536
- @data['포스트설정']['프록시리스트'] = file_data.split("\n")
4379
+ }
4380
+ @data['포스트설정']['내용자동변경'] = checkbox('내용에 단어들을 자동 변경'){
4381
+ top 12+ aa1
4382
+ left 0
4383
+ }
4384
+ button('설정 파일 불러오기'){
4385
+ top 12+ aa1
4386
+ left 1
4387
+ on_clicked{
4388
+ file = open_file
4389
+ if file != nil
4390
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4391
+ file_data.split("\n").each do |i|
4392
+ key = i.split('>')[0]
4393
+ v = i.split('>')[1].to_s.split(',')
4394
+ @data['포스트설정']['내용자동변경값'][key] = v
4537
4395
  end
4538
- }
4396
+ end
4539
4397
  }
4540
-
4541
- @data['포스트설정']['발행기능'] = checkbox('포스팅 글 [ 발행 ] 하기'){
4542
- top 16
4543
- left 0
4544
- on_toggled{
4545
- if @data['포스트설정']['발행기능'].checked?
4546
- if @data['포스트설정']['저장기능'].checked?
4547
- @data['포스트설정']['저장기능'].checked = false
4548
-
4549
- end
4550
- end
4551
- }
4398
+ }
4399
+ @data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
4400
+ top 12+ aa1
4401
+ left 3
4402
+ }
4403
+
4404
+ @data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
4405
+ top 13+ aa1
4406
+ left 0
4407
+ #enabled false # 기본적으로 비활성화
4408
+ on_toggled {
4409
+ if @data['포스트설정']['내용사진자동삽입'].checked?
4410
+ @data['포스트설정']['내용사진링크'].enabled = true # '내용투명' 활성화
4411
+ @data['포스트설정']['내용사진링크값'].enabled = true # '내용투명' 활성화
4412
+ else
4413
+ @data['포스트설정']['내용사진링크'].checked = false # 체크 해제
4414
+ @data['포스트설정']['내용사진링크'].enabled = false # 비활성화
4415
+ @data['포스트설정']['내용사진링크값'].text = 'URL' # 기본 텍스트 설정
4416
+ @data['포스트설정']['내용사진링크값'].enabled = false # 비활성화
4417
+ end
4552
4418
  }
4553
- @data['포스트설정']['저장기능'] = checkbox('포스팅 글 [ 저장 ] 하기'){
4554
- top 16
4555
- left 1
4419
+ }
4420
+ @data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
4421
+ top 13+ aa1
4422
+ left 1
4423
+ text '최소수량'
4424
+ }
4425
+ label('~'){
4426
+ top 13+ aa1
4427
+ left 2
4428
+ }
4429
+ @data['포스트설정']['내용사진자동삽입끝숫자'] = entry(){
4430
+ top 13+ aa1
4431
+ left 3
4432
+ text '최대수량'
4433
+ }
4556
4434
 
4557
- on_toggled{
4558
- if @data['포스트설정']['저장기능'].checked?
4559
- if @data['포스트설정']['발행기능'].checked?
4560
- @data['포스트설정']['발행기능'].checked = false
4561
-
4562
- end
4563
- end
4564
- }
4435
+ @data['포스트설정']['내용사진링크'] = checkbox('내용 사진 자동 삽입시 링크 삽입'){
4436
+ enabled false # 기본적으로 비활성화
4437
+ top 14+ aa1
4438
+ left 0
4439
+ }
4440
+
4441
+ @data['포스트설정']['내용사진링크값'] = entry(){
4442
+ enabled false # 기본적으로 비활성화
4443
+ top 14+ aa1
4444
+ left 1
4445
+ text 'URL'
4446
+ }
4447
+
4448
+ @data['포스트설정']['ChatGPT사용'] = checkbox('Chat GPT 사용하기'){
4449
+ top 15+ aa1
4450
+ left 0
4451
+ }
4452
+
4453
+ @data['포스트설정']['api_key'] = entry(){
4454
+ top 15+ aa1
4455
+ left 1
4456
+ text 'api key 입력 필수!!'
4457
+ }
4458
+
4459
+ }
4460
+ }
4461
+
4462
+ vertical_separator{
4463
+ stretchy false
4464
+ }
4465
+
4466
+
4467
+ grid{
4468
+ @data['포스트설정']['특정단어키워드로변경'] = checkbox('내용 특정단어를 키워드로 변경'){
4469
+ top 0
4470
+ left 0
4471
+ }
4472
+ @data['포스트설정']['특정단어키워드로변경값'] = entry{
4473
+ top 0
4474
+ left 1
4475
+ text '특정단어'
4476
+ }
4477
+
4478
+ @data['포스트설정']['제외하고등록'] = checkbox('내용 특정단어를 제외하고 등록'){
4479
+ top 1
4480
+ left 0
4481
+ }
4482
+ @data['포스트설정']['제외하고등록값'] = entry{
4483
+ top 1
4484
+ left 1
4485
+ text '특정단어'
4486
+ }
4487
+
4488
+ @data['포스트설정']['단어링크적용'] = checkbox('내용 특정단어를 링크적용 등록'){
4489
+ top 2
4490
+ left 0
4491
+ }
4492
+ @data['포스트설정']['단어링크적용단어'] = entry{
4493
+ top 2
4494
+ left 1
4495
+ text '특정단어'
4496
+ }
4497
+
4498
+ label('ㄴ적용하려는 링크 URL 입력'){
4499
+ top 3
4500
+ left 0
4501
+ }
4502
+ @data['포스트설정']['단어링크적용url'] = entry{
4503
+ top 3
4504
+ left 1
4505
+ text 'URL'
4506
+ }
4507
+
4508
+ @data['포스트설정']['단어사진으로변경'] = checkbox('내용 특정단어를 사진으로 변경'){
4509
+ top 4
4510
+ left 0
4511
+ }
4512
+ @data['포스트설정']['단어사진으로변경단어'] = entry{
4513
+ top 4
4514
+ left 1
4515
+ text '특정단어1,@특정단어2 (앞에@붙이면 링크적용)'
4516
+ }
4517
+ label('ㄴ적용하려는 링크 URL 입력'){
4518
+ top 5
4519
+ left 0
4520
+ }
4521
+
4522
+ @data['포스트설정']['단어사진으로변경URL'] = entry{
4523
+ top 5
4524
+ left 1
4525
+ text 'URL'
4526
+ }
4527
+
4528
+ @data['포스트설정']['스티커로변경'] = checkbox('내용 특정단어를 스티커로 변경'){
4529
+ top 6
4530
+ left 0
4531
+ }
4532
+ @data['포스트설정']['스티커로변경단어'] = entry{
4533
+ top 6
4534
+ left 1
4535
+ text '특정단어'
4536
+ }
4537
+ @data['포스트설정']['영상으로변경'] = checkbox('내용 특정단어를 영상으로 변경'){
4538
+ top 7
4539
+ left 0
4540
+ }
4541
+ @data['포스트설정']['영상으로변경단어'] = entry{
4542
+ top 7
4543
+ left 1
4544
+ text '특정단어'
4545
+ }
4546
+ label('ㄴ동영상만 있는 폴더 지정하기'){
4547
+ top 8
4548
+ left 0
4549
+ }
4550
+ @data['포스트설정']['동영상폴더위치'] = entry{
4551
+ top 8
4552
+ left 1
4553
+ text "영상폴더위치 ex) C:\\영상\\폴더3"
4554
+ }
4555
+ @data['포스트설정']['지도로변경'] = checkbox('내용 특정단어를 지도로 변경'){
4556
+ top 9
4557
+ left 0
4558
+ }
4559
+ @data['포스트설정']['지도로변경단어'] = entry{
4560
+ top 9
4561
+ left 1
4562
+ text '특정단어'
4563
+ }
4564
+ label('ㄴ지도 삽입경우 적용 주소 입력'){
4565
+ top 10
4566
+ left 0
4567
+ }
4568
+ @data['포스트설정']['지도주소'] = entry{
4569
+ top 10
4570
+ left 1
4571
+ text 'ex) OO시 OO구 OO동 270-68'
4572
+ }
4573
+ @data['포스트설정']['인용구변경'] = checkbox('내용 특정단어를 인용구로 적용'){
4574
+ top 11
4575
+ left 0
4576
+ }
4577
+ @data['포스트설정']['인용구변경단어'] = entry{
4578
+ top 11
4579
+ left 1
4580
+ text '특정단어'
4581
+ }
4582
+ label('ㄴ인용구 사용시 들어갈 문구'){
4583
+ top 12
4584
+ left 0
4585
+ }
4586
+ button('설정 파일 불러오기'){
4587
+ top 12
4588
+ left 1
4589
+ on_clicked{
4590
+ file = open_file
4591
+ if file != nil
4592
+ file_data = File.open(file, 'r').read
4593
+ @data['포스트설정']['인용구'] = file_data.split(',')
4594
+ end
4595
+ }
4596
+ }
4597
+ @data['포스트설정']['내템플릿사용하기'] = checkbox('내 템플릿 사용하기'){
4598
+ top 13
4599
+ left 0
4600
+ }
4601
+ @data['포스트설정']['내템플릿변경단어'] = entry{
4602
+ top 13
4603
+ left 1
4604
+ text '탬플릿으로 전활시킬 특정단어'
4605
+ }
4606
+ }
4607
+ }
4608
+ }
4609
+ tab_item('포스트설정2'){
4610
+ vertical_box{
4611
+ grid{
4612
+ stretchy false
4613
+
4614
+ @data['포스트설정']['특정단어굵기'] = checkbox('내용 특정단어 굵기 변경(적용 단어 앞 뒤에 @@삽입)'){
4615
+ top 0
4616
+ left 0
4617
+ }
4618
+ @data['포스트설정']['단어색상변경'] = checkbox('내용 특정단어 색상 변경(적용 단어 앞 뒤에 %%삽입)'){
4619
+ top 1
4620
+ left 0
4621
+ }
4622
+ @data['포스트설정']['단어크기변경'] = checkbox('내용 특정단어 크기 변경(적용 단어 앞 &30& 뒤에 &&삽입) ex) &&19&& 카페 &&&&'){
4623
+ top 2
4624
+ left 0
4625
+ }
4626
+ @data['포스트설정']['중앙정렬'] = checkbox('내용 글 중앙 정렬'){
4627
+ top 3
4628
+ left 0
4629
+ on_toggled{
4630
+ if @data['포스트설정']['중앙정렬'].checked?
4631
+ @data['포스트설정']['좌측정렬'].checked = false
4632
+ @data['포스트설정']['우측정렬'].checked = false
4633
+ end
4634
+ }
4635
+ }
4636
+ @data['포스트설정']['좌측정렬'] = checkbox('내용 글 좌측 정렬'){
4637
+ top 4
4638
+ left 0
4639
+ on_toggled{
4640
+ if @data['포스트설정']['좌측정렬'].checked?
4641
+ @data['포스트설정']['중앙정렬'].checked = false
4642
+ @data['포스트설정']['우측정렬'].checked = false
4643
+ end
4644
+ }
4645
+ }
4646
+ @data['포스트설정']['우측정렬'] = checkbox('내용 글 우측 정렬'){
4647
+ top 5
4648
+ left 0
4649
+ on_toggled{
4650
+ if @data['포스트설정']['우측정렬'].checked?
4651
+ @data['포스트설정']['좌측정렬'].checked = false
4652
+ @data['포스트설정']['중앙정렬'].checked = false
4653
+ end
4654
+ }
4655
+ }
4656
+ @data['포스트설정']['막글삽입'] = checkbox('내용 하단에 막글 삽입'){
4657
+ top 6
4658
+ left 0
4659
+ #enabled false # 기본적으로 비활성화
4660
+ on_toggled {
4661
+ if @data['포스트설정']['막글삽입'].checked?
4662
+ @data['포스트설정']['막글투명'].enabled = true # '내용투명' 활성화
4663
+ @data['포스트설정']['막글그대로'].enabled = true # '내용투명' 활성화
4664
+ @data['포스트설정']['막글 수식에 입력'].enabled = true # '내용투명' 활성화
4665
+
4666
+ else
4667
+ @data['포스트설정']['막글투명'].checked = false # 체크 해제
4668
+ @data['포스트설정']['막글투명'].enabled = false # 비활성화
4669
+ @data['포스트설정']['막글그대로'].checked = false # 체크 해제
4670
+ @data['포스트설정']['막글그대로'].enabled = false # 비활성화
4671
+ @data['포스트설정']['막글 수식에 입력'].checked = false # 체크 해제
4672
+ @data['포스트설정']['막글 수식에 입력'].enabled = false # 비활성화
4673
+ end
4674
+ }
4675
+ }
4676
+ @data['포스트설정']['막글삽입시작숫자'] = entry{
4677
+ top 6
4678
+ left 1
4679
+ text '최소수량'
4680
+ }
4681
+ label('~'){
4682
+ top 6
4683
+ left 2
4684
+ }
4685
+ @data['포스트설정']['막글삽입끝숫자'] = entry{
4686
+ top 6
4687
+ left 3
4688
+ text '최대수량'
4689
+ }
4690
+ button('막글 파일 불러오기'){
4691
+ top 6
4692
+ left 4
4693
+ on_clicked{
4694
+ file = open_file
4695
+ if file != nil
4696
+ file_data = File.open(file, 'r', :encoding => 'utf-8').read()
4697
+ @data['포스트설정']['막글'] = file_data
4698
+ end
4699
+ }
4700
+ }
4701
+ @data['포스트설정']['막글투명'] = checkbox('막글 안보이게 처리'){
4702
+ top 7
4703
+ left 0
4704
+ enabled false # 기본적으로 비활성화
4705
+ }
4706
+ @data['포스트설정']['막글그대로'] = checkbox('막글 그대로 입력'){
4707
+ top 7
4708
+ left 1
4709
+ enabled false # 기본적으로 비활성화
4710
+ }
4711
+
4712
+ @data['포스트설정']['태그삽입1'] = checkbox('태그삽입'){
4713
+ top 8
4714
+ left 0
4715
+ }
4716
+ @data['포스트설정']['태그삽입1시작숫자'] = entry{
4717
+ top 8
4718
+ left 1
4719
+ text '최소수량'
4720
+ }
4721
+ label('~'){
4722
+ top 8
4723
+ left 2
4724
+ }
4725
+ @data['포스트설정']['태그삽입1끝숫자'] = entry{
4726
+ top 8
4727
+ left 3
4728
+ text '최대수량'
4729
+ }
4730
+
4731
+ @data['포스트설정']['자동글 수식에 입력'] = checkbox('자동글 수식에 입력'){
4732
+ top 9
4733
+ left 0
4734
+ enabled false # 기본적으로 비활성화
4735
+ on_toggled {
4736
+ if @data['포스트설정']['자동글 수식에 입력'].checked?
4737
+ @data['포스트설정']['내용을자동생성'].checked = false
4738
+ @data['포스트설정']['내용투명'].checked = false
4739
+ end
4565
4740
  }
4741
+ }
4742
+
4743
+ @data['포스트설정']['막글 수식에 입력'] = checkbox('막글 수식에 입력'){
4744
+ top 9
4745
+ left 1
4746
+ enabled false # 기본적으로 비활성화
4747
+ }
4748
+
4749
+
4750
+
4751
+ @data['포스트설정']['전체공개'] = checkbox('전체공개'){
4752
+ top 10
4753
+ left 0
4754
+ on_toggled{
4755
+ if @data['포스트설정']['전체공개'].checked?
4756
+ if @data['포스트설정']['비공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4757
+ @data['포스트설정']['멤버공개'].checked = false
4758
+ @data['포스트설정']['서로이웃공개'].checked = false
4759
+ @data['포스트설정']['비공개'].checked = false
4760
+ end
4761
+ end
4762
+ }
4763
+ }
4764
+ @data['포스트설정']['멤버공개'] = checkbox('이웃공개'){
4765
+ top 10
4766
+ left 1
4767
+ on_toggled{
4768
+ if @data['포스트설정']['멤버공개'].checked?
4769
+ if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['비공개'].checked?
4770
+ @data['포스트설정']['전체공개'].checked = false
4771
+ @data['포스트설정']['서로이웃공개'].checked = false
4772
+ @data['포스트설정']['비공개'].checked = false
4773
+ end
4774
+ end
4775
+ }
4776
+ }
4777
+ @data['포스트설정']['서로이웃공개'] = checkbox('서로이웃공개'){
4778
+ top 11
4779
+ left 0
4780
+ on_toggled{
4781
+ if @data['포스트설정']['서로이웃공개'].checked?
4782
+ if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['비공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4783
+ @data['포스트설정']['전체공개'].checked = false
4784
+ @data['포스트설정']['비공개'].checked = false
4785
+ @data['포스트설정']['멤버공개'].checked = false
4786
+ end
4787
+ end
4788
+ }
4789
+ }
4790
+
4791
+ @data['포스트설정']['비공개'] = checkbox('비공개'){
4792
+ top 11
4793
+ left 1
4794
+ on_toggled{
4795
+ if @data['포스트설정']['비공개'].checked?
4796
+ if @data['포스트설정']['전체공개'].checked? or @data['포스트설정']['서로이웃공개'].checked? or @data['포스트설정']['멤버공개'].checked?
4797
+ @data['포스트설정']['전체공개'].checked = false
4798
+ @data['포스트설정']['서로이웃공개'].checked = false
4799
+ @data['포스트설정']['멤버공개'].checked = false
4800
+ end
4801
+ end
4802
+ }
4803
+ }
4804
+
4805
+
4806
+
4807
+ @data['포스트설정']['댓글허용'] = checkbox('댓글허용'){
4808
+ top 12
4809
+ left 0
4810
+ }
4811
+ @data['포스트설정']['블로그,카페 공유허용'] = checkbox('블로그,카페 공유허용'){
4812
+ top 12
4813
+ left 1
4814
+ }
4815
+ @data['포스트설정']['외부공유허용'] = checkbox('외부공유허용'){
4816
+ top 13
4817
+ left 0
4818
+ }
4819
+ @data['포스트설정']['검색허용'] = checkbox('검색허용'){
4820
+ top 13
4821
+ left 1
4822
+ }
4823
+ @data['포스트설정']['공감허용'] = checkbox('공감허용'){
4824
+ top 14
4825
+ left 0
4826
+ }
4827
+
4828
+ @data['포스트설정']['테더링'] = checkbox('테더링 IP 사용'){
4829
+ top 15
4830
+ left 0
4831
+ on_toggled{
4832
+ if @data['포스트설정']['테더링'].checked?
4833
+ @data['포스트설정']['프록시'].checked = false
4834
+
4835
+ end
4836
+ }
4837
+ }
4838
+ @data['포스트설정']['프록시'] = checkbox('프록시 IP 사용'){
4839
+ top 15
4840
+ left 1
4841
+ on_toggled{
4842
+ if @data['포스트설정']['프록시'].checked?
4843
+ @data['포스트설정']['테더링'].checked = false
4844
+
4845
+ end
4846
+ }
4847
+ }
4848
+ button('프록시 IP 파일 불러오기'){
4849
+ top 15
4850
+ left 3
4851
+ on_clicked{
4852
+ file = open_file
4853
+ if file != nil
4854
+ file_data = File.open(file,'r').read
4855
+ @data['포스트설정']['프록시리스트'] = file_data.split("\n")
4856
+ end
4857
+ }
4858
+ }
4859
+
4860
+ @data['포스트설정']['발행기능'] = checkbox('포스팅 글 [ 발행 ] 하기'){
4861
+ top 16
4862
+ left 0
4863
+ on_toggled{
4864
+ if @data['포스트설정']['발행기능'].checked?
4865
+ if @data['포스트설정']['저장기능'].checked?
4866
+ @data['포스트설정']['저장기능'].checked = false
4867
+
4868
+ end
4869
+ end
4870
+ }
4871
+ }
4872
+ @data['포스트설정']['저장기능'] = checkbox('포스팅 글 [ 저장 ] 하기'){
4873
+ top 16
4874
+ left 1
4875
+
4876
+ on_toggled{
4877
+ if @data['포스트설정']['저장기능'].checked?
4878
+ if @data['포스트설정']['발행기능'].checked?
4879
+ @data['포스트설정']['발행기능'].checked = false
4880
+
4881
+ end
4882
+ end
4566
4883
  }
4567
4884
  }
4568
4885
  }
4569
4886
  }
4887
+ }
4888
+ }
4570
4889
 
4571
4890
  horizontal_box{
4572
4891
  stretchy false