posting_duo 3.111.015 → 3.111.019
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/posting_duo.rb +249 -66
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0af24a0477564008729b41a9b8f9304d87e7230092978f7dfc7cff72ed4c8d0e
|
4
|
+
data.tar.gz: 46d8956da32e88aa0d6b1982f257cff62dded37e895a3fa72136aa13d902bebc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f46bfeb2c3e53bb47488e9bfc14a45df2c594e85618fcc181f5bb795943eeee12c10b52030dbc80e060639a4a2be106b36f91579ccd78c9bcf1ee13d0d0a9959
|
7
|
+
data.tar.gz: 4875757cca6f8d4925d0035165e1838d684e207b1a48a0a36da75b158e05f34f315ab2b71ed2dd915fcc513d4a9df262ed8472ad0c2e7e78c558121cf0bbc09b
|
data/lib/posting_duo.rb
CHANGED
@@ -10066,11 +10066,13 @@ if check_captcha == 0
|
|
10066
10066
|
puts '-[√] 캡챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
|
10067
10067
|
puts '-[√] 캡챠 코드 code 3.......'.red
|
10068
10068
|
sleep(1)
|
10069
|
+
begin
|
10069
10070
|
#요소 자체 제거 하기 기능
|
10070
10071
|
chat_box = @driver.find_element(:xpath, '//*[@for="captcha_key"]')
|
10071
10072
|
@driver.execute_script("arguments[0].remove();", chat_box)
|
10072
10073
|
sleep(1)
|
10073
|
-
|
10074
|
+
rescue
|
10075
|
+
end
|
10074
10076
|
sleep(1)
|
10075
10077
|
@driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
|
10076
10078
|
sleep(1)
|
@@ -13241,51 +13243,126 @@ class Wordpress
|
|
13241
13243
|
# return m.join("\n")
|
13242
13244
|
# end
|
13243
13245
|
|
13246
|
+
# ✔ 문장 정리 함수
|
13247
|
+
def clean_sentence(s, aa33)
|
13248
|
+
return '' if s.nil? || s.strip.empty?
|
13249
|
+
s.strip!
|
13250
|
+
|
13251
|
+
return '' if s.length < 10
|
13252
|
+
|
13253
|
+
# 종결어가 포함된 경우 → 종결어 기준으로 문장 잘라냄
|
13254
|
+
end_patterns = /(다|요|입니다|했습니다|하였습니다|했어요|해요|였습니다|었어요|네요|였어요|죠|시죠|되었어요|하더라고요|이랍니다|같습니다|같아요|드릴게요|드렸어요|보였습니다|느껴졌어요)/
|
13255
|
+
|
13256
|
+
if match = s.match(/(.+?#{end_patterns})(\s|$)/)
|
13257
|
+
clean = match[1]
|
13258
|
+
return clean.end_with?('.') ? clean : clean + '.'
|
13259
|
+
end
|
13260
|
+
|
13261
|
+
# 종결어 없으면 aa33 붙이기
|
13262
|
+
s + aa33.sample
|
13263
|
+
end
|
13264
|
+
|
13265
|
+
# ✔ 마지막 문장이 자연스럽게 끝나는지 보정
|
13266
|
+
def ensure_ending(text)
|
13267
|
+
text.strip!
|
13268
|
+
return text if text.match?(/(다|요)\.\s*$/)
|
13269
|
+
return text + %w[다. 요.].sample
|
13270
|
+
end
|
13271
|
+
|
13272
|
+
# ✔ 마지막 '완성된 문장'까지만 추출
|
13273
|
+
def trim_to_last_complete_sentence(text)
|
13274
|
+
sentences = text.strip.split(/(?<=\.)/)
|
13275
|
+
last_good_index = nil
|
13276
|
+
|
13277
|
+
sentences.each_with_index.reverse_each do |sentence, idx|
|
13278
|
+
if sentence.strip.match?(/(다|요)\.\s*$/)
|
13279
|
+
last_good_index = idx
|
13280
|
+
break
|
13281
|
+
end
|
13282
|
+
end
|
13283
|
+
|
13284
|
+
return sentences[0..last_good_index].join(' ').strip if last_good_index
|
13285
|
+
return sentences.first.strip
|
13286
|
+
end
|
13287
|
+
|
13288
|
+
# ✔ 본문 수집 및 생성
|
13244
13289
|
def get_naver_text(q)
|
13245
|
-
|
13246
|
-
|
13247
|
-
aa33 = '하였습니다,하였어요,하게됬어요,했답니다,했었는데요,하게되었어요,했어요,그랬답니다,그랬어요,합니다,그랬어요,그랬답니다,그랬답니다,그러합니다,좋아요,좋습니다,됬어요,되었어요,되었답니다,되었구요,되었어요,되네요,하네요,해요,할거예요,할수었이요,입니다,인데요,이예요,이랍니다,이였어요,그랬어요,그랬거든요,그랬습니다,었어요,었습니다,있었어요,하였고,하였으며,했는데,했지만,했고,그랬으며,하고,하며,좋았고,좋고,되었으며'.split(',')
|
13248
|
-
for page in 1..3
|
13249
|
-
begin
|
13250
|
-
http = HTTP.get('https://search.zum.com/search.zum?method=blog&option=accu&query='+q.to_s.split(' ').join('')+'&rd=1&page='+page.to_s+'&mm=direct')
|
13251
|
-
sleep(3)
|
13252
|
-
noko = Nokogiri::HTML(http.to_s)
|
13253
|
-
for n in 1..2
|
13254
|
-
begin
|
13255
|
-
text_array << noko.xpath('//*[@id="blogItemUl"]/li['+n.to_s+']/dl/dd[2]').text.split('...').join('') + aa33.sample
|
13256
|
-
rescue
|
13290
|
+
puts '자동 글 생성을 시작합니다.......'.green
|
13291
|
+
text_array = []
|
13257
13292
|
|
13258
|
-
|
13259
|
-
|
13260
|
-
|
13261
|
-
|
13293
|
+
aa33 = '하였습니다,하였어요,하게 되었어요,했어요,그랬답니다,합니다,좋아요,좋습니다,되었어요,되었네요,하네요,해요,할 거예요,입니다,이예요,이랍니다,그랬습니다,었습니다,있었어요,했지만,했고,하고,하며,좋고,되었으며'.split(',')
|
13294
|
+
|
13295
|
+
# --- ZUM 블로그 크롤링 ---
|
13296
|
+
(1..3).each do |page|
|
13297
|
+
begin
|
13298
|
+
url = "https://search.zum.com/search.zum?method=blog&option=accu&query=#{q.gsub(' ', '')}&rd=1&page=#{page}&mm=direct"
|
13299
|
+
http = HTTP.get(url)
|
13300
|
+
sleep(2)
|
13301
|
+
noko = Nokogiri::HTML(http.to_s)
|
13302
|
+
(1..2).each do |n|
|
13303
|
+
raw = noko.xpath("//*[@id='blogItemUl']/li[#{n}]/dl/dd[2]").text
|
13304
|
+
raw.split(/[.!?]/).map(&:strip).each do |s|
|
13305
|
+
cleaned = clean_sentence(s, aa33)
|
13306
|
+
text_array << cleaned unless cleaned.empty?
|
13262
13307
|
end
|
13263
13308
|
end
|
13309
|
+
rescue
|
13310
|
+
puts 'ZUM 검색 오류 발생'
|
13311
|
+
end
|
13312
|
+
end
|
13264
13313
|
|
13265
|
-
|
13314
|
+
# --- DAUM 블로그 크롤링 ---
|
13315
|
+
(2..4).each do |page|
|
13316
|
+
begin
|
13317
|
+
http = HTTP.get("https://search.daum.net/search?w=fusion&col=blog&q=#{q.gsub(' ', '')}&DA=TWA&p=#{page}")
|
13318
|
+
sleep(2)
|
13319
|
+
noko = Nokogiri::HTML(http.to_s)
|
13320
|
+
puts '자동글 수집 및 생성 중 (약 5~30초 소요) ...'
|
13321
|
+
giri = noko.xpath('//c-contents-desc').to_s
|
13322
|
+
giri.split('</c-contents-desc>')[1..-1].each do |n|
|
13266
13323
|
begin
|
13267
|
-
|
13268
|
-
|
13269
|
-
|
13270
|
-
|
13271
|
-
|
13272
|
-
|
13273
|
-
giri = noko.xpath('//c-contents-desc').to_s #글만 또는 옆에 이미지있음 같이 블럭씌워지는곳(div class=.... 아래 xpath 의 < 빼고 첫 코드 아래와 동일 xpath)
|
13274
|
-
for n in giri.split('</c-contents-desc>')[1..-1] #div class=.... 아래 xpath 의 < 넣고 / 넣고 첫 코드
|
13275
|
-
#puts n
|
13276
|
-
begin
|
13277
|
-
text_array << n.split('\'>')[1].split('"')[0] #
|
13278
|
-
#puts n.split('>')[1].split('"')[0]
|
13279
|
-
#puts "\n"
|
13280
|
-
rescue
|
13281
|
-
end
|
13282
|
-
end
|
13324
|
+
text = n.split('>')[1].split('<')[0].strip
|
13325
|
+
next if text.length < 10
|
13326
|
+
text.split(/[.!?]/).map(&:strip).each do |s|
|
13327
|
+
cleaned = clean_sentence(s, aa33)
|
13328
|
+
text_array << cleaned unless cleaned.empty?
|
13329
|
+
end
|
13283
13330
|
rescue
|
13284
|
-
puts 'DAUM 검색 http error ...'
|
13285
13331
|
end
|
13286
13332
|
end
|
13287
|
-
|
13288
|
-
|
13333
|
+
rescue
|
13334
|
+
puts 'DAUM 검색 오류 발생'
|
13335
|
+
end
|
13336
|
+
end
|
13337
|
+
|
13338
|
+
# 중복 제거 및 필터링
|
13339
|
+
text_array.uniq!
|
13340
|
+
text_array.reject! { |s| s.length < 15 || s.count(' ') < 2 }
|
13341
|
+
|
13342
|
+
# 자연스럽게 이어붙이기
|
13343
|
+
connectors = [
|
13344
|
+
'그리고', '또한', '더불어', '한편', '그러므로', '이러한 점에서',
|
13345
|
+
'이와 함께', '이처럼', '게다가', '뿐만 아니라', '즉', '결국', '그래서',
|
13346
|
+
'하지만', '반면에', '따라서', '그에 따라', '다시 말해', '예를 들어',
|
13347
|
+
'요약하자면', '중요한 것은', '먼저', '마지막으로', '특히', '실제로',
|
13348
|
+
'사실상', '종합해 보면', '한 가지 더', '이로 인해', '말하자면'
|
13349
|
+
]
|
13350
|
+
|
13351
|
+
final_text = ''
|
13352
|
+
text_array.each_with_index do |sentence, idx|
|
13353
|
+
if idx > 0 && idx % 3 == 0
|
13354
|
+
final_text << "\n\n"
|
13355
|
+
elsif idx > 0
|
13356
|
+
final_text << "#{connectors.sample} "
|
13357
|
+
end
|
13358
|
+
final_text << sentence + ' '
|
13359
|
+
end
|
13360
|
+
|
13361
|
+
# 마지막 문장이 자연스럽게 끝나도록 정리
|
13362
|
+
trimmed = trim_to_last_complete_sentence(final_text)
|
13363
|
+
trimmed = ensure_ending(trimmed)
|
13364
|
+
|
13365
|
+
return trimmed[0..5000] # 최대 5000자 반환
|
13289
13366
|
end
|
13290
13367
|
|
13291
13368
|
|
@@ -13624,6 +13701,8 @@ class Wordpress
|
|
13624
13701
|
title_soon = 0
|
13625
13702
|
keyword_soon = 0
|
13626
13703
|
content_soon = 0
|
13704
|
+
keyword_link_soon1 = 0
|
13705
|
+
keyword_link_soon2 = 0
|
13627
13706
|
@my_ip = 'init'
|
13628
13707
|
@image_counter = 0
|
13629
13708
|
@inumber2 = 0
|
@@ -13768,6 +13847,43 @@ class Wordpress
|
|
13768
13847
|
@data['table'] << []
|
13769
13848
|
@data['table'].pop
|
13770
13849
|
|
13850
|
+
|
13851
|
+
if @data['포스트설정']['링크파일'].length == 0
|
13852
|
+
keyword_link_path1 = ''
|
13853
|
+
else
|
13854
|
+
if @data['포스트설정']['링크삽입랜덤'].checked?
|
13855
|
+
keyword_link_path1 = @data['포스트설정']['링크파일'].sample[1]
|
13856
|
+
else
|
13857
|
+
keyword_link_path1 = @data['포스트설정']['링크파일'][keyword_link_soon1][1]
|
13858
|
+
keyword_link_soon1 += 1
|
13859
|
+
if keyword_link_soon1 > @data['포스트설정']['링크파일'].length-1
|
13860
|
+
keyword_link_soon1 = 0
|
13861
|
+
end
|
13862
|
+
end
|
13863
|
+
end
|
13864
|
+
@data['table'][index][-1] = 6
|
13865
|
+
@data['table'] << []
|
13866
|
+
@data['table'].pop
|
13867
|
+
|
13868
|
+
|
13869
|
+
if @data['포스트설정']['링크파일1'].length == 0
|
13870
|
+
keyword_link_path2 = ''
|
13871
|
+
else
|
13872
|
+
if @data['포스트설정']['링크삽입랜덤1'].checked?
|
13873
|
+
keyword_link_path2 = @data['포스트설정']['링크파일1'].sample[1]
|
13874
|
+
else
|
13875
|
+
keyword_link_path2 = @data['포스트설정']['링크파일1'][keyword_link_soon2][1]
|
13876
|
+
keyword_link_soon2 += 1
|
13877
|
+
if keyword_link_soon2 > @data['포스트설정']['링크파일1'].length-1
|
13878
|
+
keyword_link_soon2 = 0
|
13879
|
+
end
|
13880
|
+
end
|
13881
|
+
end
|
13882
|
+
@data['table'][index][-1] = 7
|
13883
|
+
@data['table'] << []
|
13884
|
+
@data['table'].pop
|
13885
|
+
|
13886
|
+
|
13771
13887
|
if @data['키워드설정']['키워드'].length == 0
|
13772
13888
|
keyword = ''
|
13773
13889
|
else
|
@@ -13995,17 +14111,20 @@ class Wordpress
|
|
13995
14111
|
# if check10 == 0
|
13996
14112
|
# break
|
13997
14113
|
# end
|
13998
|
-
# end
|
13999
|
-
|
14114
|
+
# end
|
14000
14115
|
|
14001
14116
|
content3 = Array.new
|
14002
14117
|
|
14118
|
+
|
14119
|
+
|
14120
|
+
|
14121
|
+
|
14003
14122
|
if @data['포스트설정']['내용을자동생성'].checked?
|
14004
14123
|
content2.each_with_index do |con, index|
|
14005
14124
|
if position.include?(index)
|
14006
14125
|
insert_keyword_text = keyword.to_s
|
14007
|
-
if @data['포스트설정']['
|
14008
|
-
insert_keyword_text = '<a href="'
|
14126
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14127
|
+
insert_keyword_text = '<a href="'+keyword_link_path1.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
|
14009
14128
|
end
|
14010
14129
|
con2 = con.split('')
|
14011
14130
|
if con == '(자동생성글)'
|
@@ -14025,8 +14144,8 @@ class Wordpress
|
|
14025
14144
|
content2.each_with_index do |con, index|
|
14026
14145
|
if position.include?(index)
|
14027
14146
|
insert_keyword_text = keyword.to_s
|
14028
|
-
if @data['포스트설정']['
|
14029
|
-
insert_keyword_text = ' <a href="'
|
14147
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14148
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
|
14030
14149
|
end
|
14031
14150
|
con2 = con.split('')
|
14032
14151
|
if con == '(자동생성글)'
|
@@ -14039,7 +14158,7 @@ class Wordpress
|
|
14039
14158
|
content3 << con
|
14040
14159
|
end
|
14041
14160
|
end
|
14042
|
-
content = content.split("(자동생성글)")[0]+"\n\n"+ ' <a href="'
|
14161
|
+
content = content.split("(자동생성글)")[0]+"\n\n"+ ' <a href="'+keyword_link_path1.to_s+'" title="'+keyword.to_s+'">'+keyword.to_s+'</a> ' + "\n(자동생성글)\n" + content3.join("\n")
|
14043
14162
|
end
|
14044
14163
|
|
14045
14164
|
|
@@ -14059,8 +14178,8 @@ class Wordpress
|
|
14059
14178
|
content2.each_with_index do |con, index|
|
14060
14179
|
if position2.include?(index)
|
14061
14180
|
insert_keyword_text = keyword.to_s
|
14062
|
-
if @data['포스트설정']['
|
14063
|
-
insert_keyword_text = ' <a href="'
|
14181
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14182
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14064
14183
|
end
|
14065
14184
|
con2 = con.split('')
|
14066
14185
|
content3 << con2.join('')
|
@@ -14074,8 +14193,8 @@ class Wordpress
|
|
14074
14193
|
content2.each_with_index do |con, index|
|
14075
14194
|
if position.include?(index)
|
14076
14195
|
insert_keyword_text = keyword.to_s
|
14077
|
-
if @data['포스트설정']['
|
14078
|
-
insert_keyword_text = ' <a href="'
|
14196
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14197
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14079
14198
|
end
|
14080
14199
|
con2 = con.split('')
|
14081
14200
|
content3 << con2.join('')
|
@@ -14164,15 +14283,15 @@ class Wordpress
|
|
14164
14283
|
|
14165
14284
|
content = last_text.split(" ")
|
14166
14285
|
insert_keyword_text = keyword.to_s
|
14167
|
-
if @data['포스트설정']['
|
14168
|
-
insert_keyword_text = ' <a href="'
|
14286
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14287
|
+
insert_keyword_text = ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14169
14288
|
end
|
14170
14289
|
content.each_with_index do |con, index|
|
14171
14290
|
begin
|
14172
14291
|
if position3[1..-1].include?(index)
|
14173
14292
|
insert_keyword_text = keyword.to_s
|
14174
|
-
if @data['포스트설정']['
|
14175
|
-
insert_keyword_text = ' <a href="'
|
14293
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14294
|
+
insert_keyword_text = ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14176
14295
|
end
|
14177
14296
|
con2 = con.split('')
|
14178
14297
|
content333 << con2.join('')
|
@@ -14211,8 +14330,8 @@ class Wordpress
|
|
14211
14330
|
if position10.include?(index)
|
14212
14331
|
puts index
|
14213
14332
|
text99 = text9.split(' ')
|
14214
|
-
if @data['포스트설정']['
|
14215
|
-
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'
|
14333
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14334
|
+
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+@data['키워드설정']['키워드'].sample[1]+'</a> ')
|
14216
14335
|
else
|
14217
14336
|
itext = text99.insert(rand(0..(text99.length-1)), @data['키워드설정']['키워드'].sample[1])
|
14218
14337
|
end
|
@@ -14266,8 +14385,8 @@ class Wordpress
|
|
14266
14385
|
if position10.include?(index)
|
14267
14386
|
puts index
|
14268
14387
|
text99 = text9.split(' ')
|
14269
|
-
if @data['포스트설정']['
|
14270
|
-
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'
|
14388
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14389
|
+
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+@data['키워드설정']['키워드'].sample[1]+'</a> ')
|
14271
14390
|
else
|
14272
14391
|
itext = text99.insert(rand(0..(text99.length-1)), @data['키워드설정']['키워드'].sample[1])
|
14273
14392
|
end
|
@@ -14432,6 +14551,8 @@ class Wordpress
|
|
14432
14551
|
@data['포스트설정']['내용자동변경값'] = Hash.new
|
14433
14552
|
@data['포스트설정']['막글'] = ''
|
14434
14553
|
@data['포스트설정']['프록시리스트'] = Array.new
|
14554
|
+
@data['포스트설정']['링크파일'] = Array.new
|
14555
|
+
@data['포스트설정']['링크파일1'] = Array.new
|
14435
14556
|
|
14436
14557
|
@user_login_ok = 4
|
14437
14558
|
window('커뮤니티(게시판) 자동 포스팅 프로그램', 800, 620) {
|
@@ -15137,7 +15258,7 @@ class Wordpress
|
|
15137
15258
|
}
|
15138
15259
|
button(' 폴더째로 불러오기 '){
|
15139
15260
|
stretchy false
|
15140
|
-
|
15261
|
+
on_clicked {
|
15141
15262
|
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')
|
15142
15263
|
|
15143
15264
|
# 경로가 유효한지 확인
|
@@ -15574,7 +15695,7 @@ class Wordpress
|
|
15574
15695
|
on_toggled{
|
15575
15696
|
if @data['포스트설정']['내용키워드삽입'].checked?
|
15576
15697
|
@data['포스트설정']['막글삽입2'].checked = false
|
15577
|
-
@data['포스트설정']['
|
15698
|
+
@data['포스트설정']['키워드링크삽입1'].checked = false
|
15578
15699
|
end
|
15579
15700
|
}
|
15580
15701
|
}
|
@@ -15589,15 +15710,44 @@ class Wordpress
|
|
15589
15710
|
text '최대수량'
|
15590
15711
|
}
|
15591
15712
|
|
15592
|
-
@data['포스트설정']['
|
15713
|
+
@data['포스트설정']['키워드링크삽입'] = checkbox('키워드 링크 적용'){
|
15593
15714
|
top 1
|
15594
15715
|
left 3
|
15595
15716
|
}
|
15596
|
-
|
15717
|
+
button('링크 파일 불러오기'){
|
15597
15718
|
top 1
|
15598
15719
|
left 4
|
15599
|
-
|
15720
|
+
|
15721
|
+
on_clicked {
|
15722
|
+
file = open_file
|
15723
|
+
if file != nil
|
15724
|
+
file_data = File.open(file, 'r').read
|
15725
|
+
@data['포스트설정']['링크파일'] = file_data.split("\n").map { |line| ["링크", line.strip] }
|
15726
|
+
end
|
15727
|
+
}
|
15728
|
+
}
|
15729
|
+
|
15730
|
+
@data['포스트설정']['링크삽입순서'] = checkbox('링크 순서 사용'){
|
15731
|
+
top 1
|
15732
|
+
left 5
|
15733
|
+
on_toggled {
|
15734
|
+
if @data['포스트설정']['링크삽입순서'].checked?
|
15735
|
+
@data['포스트설정']['링크삽입랜덤'].checked = false
|
15736
|
+
end
|
15737
|
+
}
|
15738
|
+
|
15600
15739
|
}
|
15740
|
+
@data['포스트설정']['링크삽입랜덤'] = checkbox('링크랜덤 사용'){
|
15741
|
+
top 1
|
15742
|
+
left 6
|
15743
|
+
on_toggled {
|
15744
|
+
if @data['포스트설정']['링크삽입랜덤'].checked?
|
15745
|
+
@data['포스트설정']['링크삽입순서'].checked = false
|
15746
|
+
end
|
15747
|
+
}
|
15748
|
+
}
|
15749
|
+
|
15750
|
+
|
15601
15751
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('이미지 자동 삽입 '){
|
15602
15752
|
top 2
|
15603
15753
|
left 0
|
@@ -15802,7 +15952,7 @@ class Wordpress
|
|
15802
15952
|
on_toggled{
|
15803
15953
|
if @data['포스트설정']['막글삽입2'].checked?
|
15804
15954
|
@data['포스트설정']['내용키워드삽입'].checked = false
|
15805
|
-
@data['포스트설정']['
|
15955
|
+
@data['포스트설정']['키워드링크삽입'].checked = false
|
15806
15956
|
end
|
15807
15957
|
}
|
15808
15958
|
}
|
@@ -15818,15 +15968,46 @@ class Wordpress
|
|
15818
15968
|
text '최대수량'
|
15819
15969
|
}
|
15820
15970
|
|
15821
|
-
@data['포스트설정']['
|
15971
|
+
@data['포스트설정']['키워드링크삽입1'] = checkbox('키워드 링크 적용'){
|
15822
15972
|
top 0
|
15823
15973
|
left 3
|
15824
15974
|
}
|
15825
|
-
|
15975
|
+
|
15976
|
+
button(' 링크 파일 불러오기 '){
|
15826
15977
|
top 0
|
15827
15978
|
left 4
|
15828
|
-
|
15979
|
+
|
15980
|
+
on_clicked {
|
15981
|
+
file = open_file
|
15982
|
+
if file != nil
|
15983
|
+
file_data = File.open(file, 'r').read
|
15984
|
+
@data['포스트설정']['링크파일1'] = file_data.split("\n").map { |line| ["링크", line.strip] }
|
15985
|
+
end
|
15986
|
+
}
|
15987
|
+
}
|
15988
|
+
|
15989
|
+
@data['포스트설정']['링크삽입순서1'] = checkbox('링크 순서 사용'){
|
15990
|
+
top 0
|
15991
|
+
left 5
|
15992
|
+
on_toggled {
|
15993
|
+
if @data['포스트설정']['링크삽입순서1'].checked?
|
15994
|
+
@data['포스트설정']['링크삽입랜덤1'].checked = false
|
15995
|
+
end
|
15996
|
+
}
|
15997
|
+
|
15998
|
+
}
|
15999
|
+
@data['포스트설정']['링크삽입랜덤1'] = checkbox('링크랜덤 사용'){
|
16000
|
+
top 0
|
16001
|
+
left 6
|
16002
|
+
on_toggled {
|
16003
|
+
if @data['포스트설정']['링크삽입랜덤1'].checked?
|
16004
|
+
@data['포스트설정']['링크삽입순서1'].checked = false
|
16005
|
+
end
|
16006
|
+
}
|
15829
16007
|
}
|
16008
|
+
|
16009
|
+
|
16010
|
+
|
15830
16011
|
}
|
15831
16012
|
vertical_separator{
|
15832
16013
|
stretchy false
|
@@ -15978,7 +16159,9 @@ class Wordpress
|
|
15978
16159
|
@data['포스트설정']['원고로만포스팅'].checked = true
|
15979
16160
|
@data['포스트설정']['제목에도적용'].checked = true
|
15980
16161
|
@data['포스트설정']['제목리스트사용'].checked = true
|
15981
|
-
|
16162
|
+
@data['포스트설정']['링크삽입순서'].checked = true
|
16163
|
+
@data['포스트설정']['링크삽입순서1'].checked = true
|
16164
|
+
|
15982
16165
|
}.show
|
15983
16166
|
end
|
15984
16167
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_duo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.111.
|
4
|
+
version: 3.111.019
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-07-
|
10
|
+
date: 2025-07-04 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: File to Clipboard gem
|
13
13
|
email: mymin26@naver.com
|