posting_zon 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_zon.rb +247 -64
- 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: 6c67e58187c2b52e4c7d7d0ce12e65a45f92c043d794001640a92ecf4877680a
|
4
|
+
data.tar.gz: 952bcf6b295c069659296f90a3ce73f4cece51ff7cc33cbcac85d55f5d09357c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 932281111b073289e7a5ee25f255ab69fca0c0a56fc2dd108adc1db894b168941d3447aa63cacaca0505275eca10a90dd7d9dccb10f965b7526f84cb254b81b6
|
7
|
+
data.tar.gz: 01d8db21afa132bb7703e73802482cf1e54cfd49d33044f1620df08f1f4a0b0f556f50908c4b69059d05778767e8dd77838a7b210ad94ee3f706d4dd1218f28a
|
data/lib/posting_zon.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)
|
@@ -13138,51 +13140,126 @@ class Wordpress
|
|
13138
13140
|
end
|
13139
13141
|
end
|
13140
13142
|
|
13143
|
+
# ✔ 문장 정리 함수
|
13144
|
+
def clean_sentence(s, aa33)
|
13145
|
+
return '' if s.nil? || s.strip.empty?
|
13146
|
+
s.strip!
|
13147
|
+
|
13148
|
+
return '' if s.length < 10
|
13149
|
+
|
13150
|
+
# 종결어가 포함된 경우 → 종결어 기준으로 문장 잘라냄
|
13151
|
+
end_patterns = /(다|요|입니다|했습니다|하였습니다|했어요|해요|였습니다|었어요|네요|였어요|죠|시죠|되었어요|하더라고요|이랍니다|같습니다|같아요|드릴게요|드렸어요|보였습니다|느껴졌어요)/
|
13152
|
+
|
13153
|
+
if match = s.match(/(.+?#{end_patterns})(\s|$)/)
|
13154
|
+
clean = match[1]
|
13155
|
+
return clean.end_with?('.') ? clean : clean + '.'
|
13156
|
+
end
|
13157
|
+
|
13158
|
+
# 종결어 없으면 aa33 붙이기
|
13159
|
+
s + aa33.sample
|
13160
|
+
end
|
13161
|
+
|
13162
|
+
# ✔ 마지막 문장이 자연스럽게 끝나는지 보정
|
13163
|
+
def ensure_ending(text)
|
13164
|
+
text.strip!
|
13165
|
+
return text if text.match?(/(다|요)\.\s*$/)
|
13166
|
+
return text + %w[다. 요.].sample
|
13167
|
+
end
|
13168
|
+
|
13169
|
+
# ✔ 마지막 '완성된 문장'까지만 추출
|
13170
|
+
def trim_to_last_complete_sentence(text)
|
13171
|
+
sentences = text.strip.split(/(?<=\.)/)
|
13172
|
+
last_good_index = nil
|
13173
|
+
|
13174
|
+
sentences.each_with_index.reverse_each do |sentence, idx|
|
13175
|
+
if sentence.strip.match?(/(다|요)\.\s*$/)
|
13176
|
+
last_good_index = idx
|
13177
|
+
break
|
13178
|
+
end
|
13179
|
+
end
|
13180
|
+
|
13181
|
+
return sentences[0..last_good_index].join(' ').strip if last_good_index
|
13182
|
+
return sentences.first.strip
|
13183
|
+
end
|
13184
|
+
|
13185
|
+
# ✔ 본문 수집 및 생성
|
13141
13186
|
def get_naver_text(q)
|
13142
|
-
|
13143
|
-
|
13144
|
-
aa33 = '하였습니다,하였어요,하게됬어요,했답니다,했었는데요,하게되었어요,했어요,그랬답니다,그랬어요,합니다,그랬어요,그랬답니다,그랬답니다,그러합니다,좋아요,좋습니다,됬어요,되었어요,되었답니다,되었구요,되었어요,되네요,하네요,해요,할거예요,할수었이요,입니다,인데요,이예요,이랍니다,이였어요,그랬어요,그랬거든요,그랬습니다,었어요,었습니다,있었어요,하였고,하였으며,했는데,했지만,했고,그랬으며,하고,하며,좋았고,좋고,되었으며'.split(',')
|
13145
|
-
for page in 1..3
|
13146
|
-
begin
|
13147
|
-
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')
|
13148
|
-
sleep(3)
|
13149
|
-
noko = Nokogiri::HTML(http.to_s)
|
13150
|
-
for n in 1..2
|
13151
|
-
begin
|
13152
|
-
text_array << noko.xpath('//*[@id="blogItemUl"]/li['+n.to_s+']/dl/dd[2]').text.split('...').join('') + aa33.sample
|
13153
|
-
rescue
|
13187
|
+
puts '자동 글 생성을 시작합니다.......'.green
|
13188
|
+
text_array = []
|
13154
13189
|
|
13155
|
-
|
13156
|
-
|
13157
|
-
|
13158
|
-
|
13190
|
+
aa33 = '하였습니다,하였어요,하게 되었어요,했어요,그랬답니다,합니다,좋아요,좋습니다,되었어요,되었네요,하네요,해요,할 거예요,입니다,이예요,이랍니다,그랬습니다,었습니다,있었어요,했지만,했고,하고,하며,좋고,되었으며'.split(',')
|
13191
|
+
|
13192
|
+
# --- ZUM 블로그 크롤링 ---
|
13193
|
+
(1..3).each do |page|
|
13194
|
+
begin
|
13195
|
+
url = "https://search.zum.com/search.zum?method=blog&option=accu&query=#{q.gsub(' ', '')}&rd=1&page=#{page}&mm=direct"
|
13196
|
+
http = HTTP.get(url)
|
13197
|
+
sleep(2)
|
13198
|
+
noko = Nokogiri::HTML(http.to_s)
|
13199
|
+
(1..2).each do |n|
|
13200
|
+
raw = noko.xpath("//*[@id='blogItemUl']/li[#{n}]/dl/dd[2]").text
|
13201
|
+
raw.split(/[.!?]/).map(&:strip).each do |s|
|
13202
|
+
cleaned = clean_sentence(s, aa33)
|
13203
|
+
text_array << cleaned unless cleaned.empty?
|
13159
13204
|
end
|
13160
13205
|
end
|
13206
|
+
rescue
|
13207
|
+
puts 'ZUM 검색 오류 발생'
|
13208
|
+
end
|
13209
|
+
end
|
13161
13210
|
|
13162
|
-
|
13211
|
+
# --- DAUM 블로그 크롤링 ---
|
13212
|
+
(2..4).each do |page|
|
13213
|
+
begin
|
13214
|
+
http = HTTP.get("https://search.daum.net/search?w=fusion&col=blog&q=#{q.gsub(' ', '')}&DA=TWA&p=#{page}")
|
13215
|
+
sleep(2)
|
13216
|
+
noko = Nokogiri::HTML(http.to_s)
|
13217
|
+
puts '자동글 수집 및 생성 중 (약 5~30초 소요) ...'
|
13218
|
+
giri = noko.xpath('//c-contents-desc').to_s
|
13219
|
+
giri.split('</c-contents-desc>')[1..-1].each do |n|
|
13163
13220
|
begin
|
13164
|
-
|
13165
|
-
|
13166
|
-
|
13167
|
-
|
13168
|
-
|
13169
|
-
|
13170
|
-
giri = noko.xpath('//c-contents-desc').to_s #글만 또는 옆에 이미지있음 같이 블럭씌워지는곳(div class=.... 아래 xpath 의 < 빼고 첫 코드 아래와 동일 xpath)
|
13171
|
-
for n in giri.split('</c-contents-desc>')[1..-1] #div class=.... 아래 xpath 의 < 넣고 / 넣고 첫 코드
|
13172
|
-
#puts n
|
13173
|
-
begin
|
13174
|
-
text_array << n.split('\'>')[1].split('"')[0] #
|
13175
|
-
#puts n.split('>')[1].split('"')[0]
|
13176
|
-
#puts "\n"
|
13177
|
-
rescue
|
13178
|
-
end
|
13179
|
-
end
|
13221
|
+
text = n.split('>')[1].split('<')[0].strip
|
13222
|
+
next if text.length < 10
|
13223
|
+
text.split(/[.!?]/).map(&:strip).each do |s|
|
13224
|
+
cleaned = clean_sentence(s, aa33)
|
13225
|
+
text_array << cleaned unless cleaned.empty?
|
13226
|
+
end
|
13180
13227
|
rescue
|
13181
|
-
puts 'DAUM 검색 http error ...'
|
13182
13228
|
end
|
13183
13229
|
end
|
13184
|
-
|
13185
|
-
|
13230
|
+
rescue
|
13231
|
+
puts 'DAUM 검색 오류 발생'
|
13232
|
+
end
|
13233
|
+
end
|
13234
|
+
|
13235
|
+
# 중복 제거 및 필터링
|
13236
|
+
text_array.uniq!
|
13237
|
+
text_array.reject! { |s| s.length < 15 || s.count(' ') < 2 }
|
13238
|
+
|
13239
|
+
# 자연스럽게 이어붙이기
|
13240
|
+
connectors = [
|
13241
|
+
'그리고', '또한', '더불어', '한편', '그러므로', '이러한 점에서',
|
13242
|
+
'이와 함께', '이처럼', '게다가', '뿐만 아니라', '즉', '결국', '그래서',
|
13243
|
+
'하지만', '반면에', '따라서', '그에 따라', '다시 말해', '예를 들어',
|
13244
|
+
'요약하자면', '중요한 것은', '먼저', '마지막으로', '특히', '실제로',
|
13245
|
+
'사실상', '종합해 보면', '한 가지 더', '이로 인해', '말하자면'
|
13246
|
+
]
|
13247
|
+
|
13248
|
+
final_text = ''
|
13249
|
+
text_array.each_with_index do |sentence, idx|
|
13250
|
+
if idx > 0 && idx % 3 == 0
|
13251
|
+
final_text << "\n\n"
|
13252
|
+
elsif idx > 0
|
13253
|
+
final_text << "#{connectors.sample} "
|
13254
|
+
end
|
13255
|
+
final_text << sentence + ' '
|
13256
|
+
end
|
13257
|
+
|
13258
|
+
# 마지막 문장이 자연스럽게 끝나도록 정리
|
13259
|
+
trimmed = trim_to_last_complete_sentence(final_text)
|
13260
|
+
trimmed = ensure_ending(trimmed)
|
13261
|
+
|
13262
|
+
return trimmed[0..5000] # 최대 5000자 반환
|
13186
13263
|
end
|
13187
13264
|
|
13188
13265
|
|
@@ -13521,6 +13598,8 @@ class Wordpress
|
|
13521
13598
|
title_soon = 0
|
13522
13599
|
keyword_soon = 0
|
13523
13600
|
content_soon = 0
|
13601
|
+
keyword_link_soon1 = 0
|
13602
|
+
keyword_link_soon2 = 0
|
13524
13603
|
@my_ip = 'init'
|
13525
13604
|
@image_counter = 0
|
13526
13605
|
@inumber2 = 0
|
@@ -13665,6 +13744,43 @@ class Wordpress
|
|
13665
13744
|
@data['table'] << []
|
13666
13745
|
@data['table'].pop
|
13667
13746
|
|
13747
|
+
|
13748
|
+
if @data['포스트설정']['링크파일'].length == 0
|
13749
|
+
keyword_link_path1 = ''
|
13750
|
+
else
|
13751
|
+
if @data['포스트설정']['링크삽입랜덤'].checked?
|
13752
|
+
keyword_link_path1 = @data['포스트설정']['링크파일'].sample[1]
|
13753
|
+
else
|
13754
|
+
keyword_link_path1 = @data['포스트설정']['링크파일'][keyword_link_soon1][1]
|
13755
|
+
keyword_link_soon1 += 1
|
13756
|
+
if keyword_link_soon1 > @data['포스트설정']['링크파일'].length-1
|
13757
|
+
keyword_link_soon1 = 0
|
13758
|
+
end
|
13759
|
+
end
|
13760
|
+
end
|
13761
|
+
@data['table'][index][-1] = 6
|
13762
|
+
@data['table'] << []
|
13763
|
+
@data['table'].pop
|
13764
|
+
|
13765
|
+
|
13766
|
+
if @data['포스트설정']['링크파일1'].length == 0
|
13767
|
+
keyword_link_path2 = ''
|
13768
|
+
else
|
13769
|
+
if @data['포스트설정']['링크삽입랜덤1'].checked?
|
13770
|
+
keyword_link_path2 = @data['포스트설정']['링크파일1'].sample[1]
|
13771
|
+
else
|
13772
|
+
keyword_link_path2 = @data['포스트설정']['링크파일1'][keyword_link_soon2][1]
|
13773
|
+
keyword_link_soon2 += 1
|
13774
|
+
if keyword_link_soon2 > @data['포스트설정']['링크파일1'].length-1
|
13775
|
+
keyword_link_soon2 = 0
|
13776
|
+
end
|
13777
|
+
end
|
13778
|
+
end
|
13779
|
+
@data['table'][index][-1] = 7
|
13780
|
+
@data['table'] << []
|
13781
|
+
@data['table'].pop
|
13782
|
+
|
13783
|
+
|
13668
13784
|
if @data['키워드설정']['키워드'].length == 0
|
13669
13785
|
keyword = ''
|
13670
13786
|
else
|
@@ -13892,17 +14008,20 @@ class Wordpress
|
|
13892
14008
|
# if check10 == 0
|
13893
14009
|
# break
|
13894
14010
|
# end
|
13895
|
-
# end
|
13896
|
-
|
14011
|
+
# end
|
13897
14012
|
|
13898
14013
|
content3 = Array.new
|
13899
14014
|
|
14015
|
+
|
14016
|
+
|
14017
|
+
|
14018
|
+
|
13900
14019
|
if @data['포스트설정']['내용을자동생성'].checked?
|
13901
14020
|
content2.each_with_index do |con, index|
|
13902
14021
|
if position.include?(index)
|
13903
14022
|
insert_keyword_text = keyword.to_s
|
13904
|
-
if @data['포스트설정']['
|
13905
|
-
insert_keyword_text = '<a href="'
|
14023
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14024
|
+
insert_keyword_text = '<a href="'+keyword_link_path1.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
|
13906
14025
|
end
|
13907
14026
|
con2 = con.split('')
|
13908
14027
|
if con == '(자동생성글)'
|
@@ -13922,8 +14041,8 @@ class Wordpress
|
|
13922
14041
|
content2.each_with_index do |con, index|
|
13923
14042
|
if position.include?(index)
|
13924
14043
|
insert_keyword_text = keyword.to_s
|
13925
|
-
if @data['포스트설정']['
|
13926
|
-
insert_keyword_text = ' <a href="'
|
14044
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14045
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+insert_keyword_text+'">'+insert_keyword_text.to_s+'</a> '
|
13927
14046
|
end
|
13928
14047
|
con2 = con.split('')
|
13929
14048
|
if con == '(자동생성글)'
|
@@ -13936,7 +14055,7 @@ class Wordpress
|
|
13936
14055
|
content3 << con
|
13937
14056
|
end
|
13938
14057
|
end
|
13939
|
-
content = content.split("(자동생성글)")[0]+"\n\n"+ ' <a href="'
|
14058
|
+
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")
|
13940
14059
|
end
|
13941
14060
|
|
13942
14061
|
|
@@ -13956,8 +14075,8 @@ class Wordpress
|
|
13956
14075
|
content2.each_with_index do |con, index|
|
13957
14076
|
if position2.include?(index)
|
13958
14077
|
insert_keyword_text = keyword.to_s
|
13959
|
-
if @data['포스트설정']['
|
13960
|
-
insert_keyword_text = ' <a href="'
|
14078
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14079
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
13961
14080
|
end
|
13962
14081
|
con2 = con.split('')
|
13963
14082
|
content3 << con2.join('')
|
@@ -13971,8 +14090,8 @@ class Wordpress
|
|
13971
14090
|
content2.each_with_index do |con, index|
|
13972
14091
|
if position.include?(index)
|
13973
14092
|
insert_keyword_text = keyword.to_s
|
13974
|
-
if @data['포스트설정']['
|
13975
|
-
insert_keyword_text = ' <a href="'
|
14093
|
+
if @data['포스트설정']['키워드링크삽입'].checked?
|
14094
|
+
insert_keyword_text = ' <a href="'+keyword_link_path1.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
13976
14095
|
end
|
13977
14096
|
con2 = con.split('')
|
13978
14097
|
content3 << con2.join('')
|
@@ -14061,15 +14180,15 @@ class Wordpress
|
|
14061
14180
|
|
14062
14181
|
content = last_text.split(" ")
|
14063
14182
|
insert_keyword_text = keyword.to_s
|
14064
|
-
if @data['포스트설정']['
|
14065
|
-
insert_keyword_text = ' <a href="'
|
14183
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14184
|
+
insert_keyword_text = ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14066
14185
|
end
|
14067
14186
|
content.each_with_index do |con, index|
|
14068
14187
|
begin
|
14069
14188
|
if position3[1..-1].include?(index)
|
14070
14189
|
insert_keyword_text = keyword.to_s
|
14071
|
-
if @data['포스트설정']['
|
14072
|
-
insert_keyword_text = ' <a href="'
|
14190
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14191
|
+
insert_keyword_text = ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+insert_keyword_text.to_s+'</a> '
|
14073
14192
|
end
|
14074
14193
|
con2 = con.split('')
|
14075
14194
|
content333 << con2.join('')
|
@@ -14108,8 +14227,8 @@ class Wordpress
|
|
14108
14227
|
if position10.include?(index)
|
14109
14228
|
puts index
|
14110
14229
|
text99 = text9.split(' ')
|
14111
|
-
if @data['포스트설정']['
|
14112
|
-
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'
|
14230
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14231
|
+
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+@data['키워드설정']['키워드'].sample[1]+'</a> ')
|
14113
14232
|
else
|
14114
14233
|
itext = text99.insert(rand(0..(text99.length-1)), @data['키워드설정']['키워드'].sample[1])
|
14115
14234
|
end
|
@@ -14163,8 +14282,8 @@ class Wordpress
|
|
14163
14282
|
if position10.include?(index)
|
14164
14283
|
puts index
|
14165
14284
|
text99 = text9.split(' ')
|
14166
|
-
if @data['포스트설정']['
|
14167
|
-
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'
|
14285
|
+
if @data['포스트설정']['키워드링크삽입1'].checked?
|
14286
|
+
itext = text99.insert(rand(0..(text99.length-1)), ' <a href="'+keyword_link_path2.to_s+'" title="'+keyword.to_s+'">'+@data['키워드설정']['키워드'].sample[1]+'</a> ')
|
14168
14287
|
else
|
14169
14288
|
itext = text99.insert(rand(0..(text99.length-1)), @data['키워드설정']['키워드'].sample[1])
|
14170
14289
|
end
|
@@ -14329,6 +14448,8 @@ class Wordpress
|
|
14329
14448
|
@data['포스트설정']['내용자동변경값'] = Hash.new
|
14330
14449
|
@data['포스트설정']['막글'] = ''
|
14331
14450
|
@data['포스트설정']['프록시리스트'] = Array.new
|
14451
|
+
@data['포스트설정']['링크파일'] = Array.new
|
14452
|
+
@data['포스트설정']['링크파일1'] = Array.new
|
14332
14453
|
|
14333
14454
|
@user_login_ok = "1"
|
14334
14455
|
window('커뮤니티(게시판) 자동 포스팅 프로그램', 800, 620) {
|
@@ -15465,7 +15586,7 @@ class Wordpress
|
|
15465
15586
|
on_toggled{
|
15466
15587
|
if @data['포스트설정']['내용키워드삽입'].checked?
|
15467
15588
|
@data['포스트설정']['막글삽입2'].checked = false
|
15468
|
-
@data['포스트설정']['
|
15589
|
+
@data['포스트설정']['키워드링크삽입1'].checked = false
|
15469
15590
|
end
|
15470
15591
|
}
|
15471
15592
|
}
|
@@ -15480,15 +15601,44 @@ class Wordpress
|
|
15480
15601
|
text '최대수량'
|
15481
15602
|
}
|
15482
15603
|
|
15483
|
-
@data['포스트설정']['
|
15604
|
+
@data['포스트설정']['키워드링크삽입'] = checkbox('키워드 링크 적용'){
|
15484
15605
|
top 1
|
15485
15606
|
left 3
|
15486
15607
|
}
|
15487
|
-
|
15608
|
+
button('링크 파일 불러오기'){
|
15488
15609
|
top 1
|
15489
15610
|
left 4
|
15490
|
-
|
15611
|
+
|
15612
|
+
on_clicked {
|
15613
|
+
file = open_file
|
15614
|
+
if file != nil
|
15615
|
+
file_data = File.open(file, 'r').read
|
15616
|
+
@data['포스트설정']['링크파일'] = file_data.split("\n").map { |line| ["링크", line.strip] }
|
15617
|
+
end
|
15618
|
+
}
|
15619
|
+
}
|
15620
|
+
|
15621
|
+
@data['포스트설정']['링크삽입순서'] = checkbox('링크 순서 사용'){
|
15622
|
+
top 1
|
15623
|
+
left 5
|
15624
|
+
on_toggled {
|
15625
|
+
if @data['포스트설정']['링크삽입순서'].checked?
|
15626
|
+
@data['포스트설정']['링크삽입랜덤'].checked = false
|
15627
|
+
end
|
15628
|
+
}
|
15629
|
+
|
15491
15630
|
}
|
15631
|
+
@data['포스트설정']['링크삽입랜덤'] = checkbox('링크랜덤 사용'){
|
15632
|
+
top 1
|
15633
|
+
left 6
|
15634
|
+
on_toggled {
|
15635
|
+
if @data['포스트설정']['링크삽입랜덤'].checked?
|
15636
|
+
@data['포스트설정']['링크삽입순서'].checked = false
|
15637
|
+
end
|
15638
|
+
}
|
15639
|
+
}
|
15640
|
+
|
15641
|
+
|
15492
15642
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('이미지 자동 삽입 '){
|
15493
15643
|
top 2
|
15494
15644
|
left 0
|
@@ -15693,7 +15843,7 @@ class Wordpress
|
|
15693
15843
|
on_toggled{
|
15694
15844
|
if @data['포스트설정']['막글삽입2'].checked?
|
15695
15845
|
@data['포스트설정']['내용키워드삽입'].checked = false
|
15696
|
-
@data['포스트설정']['
|
15846
|
+
@data['포스트설정']['키워드링크삽입'].checked = false
|
15697
15847
|
end
|
15698
15848
|
}
|
15699
15849
|
}
|
@@ -15709,15 +15859,46 @@ class Wordpress
|
|
15709
15859
|
text '최대수량'
|
15710
15860
|
}
|
15711
15861
|
|
15712
|
-
@data['포스트설정']['
|
15862
|
+
@data['포스트설정']['키워드링크삽입1'] = checkbox('키워드 링크 적용'){
|
15713
15863
|
top 0
|
15714
15864
|
left 3
|
15715
15865
|
}
|
15716
|
-
|
15866
|
+
|
15867
|
+
button(' 링크 파일 불러오기 '){
|
15717
15868
|
top 0
|
15718
15869
|
left 4
|
15719
|
-
|
15870
|
+
|
15871
|
+
on_clicked {
|
15872
|
+
file = open_file
|
15873
|
+
if file != nil
|
15874
|
+
file_data = File.open(file, 'r').read
|
15875
|
+
@data['포스트설정']['링크파일1'] = file_data.split("\n").map { |line| ["링크", line.strip] }
|
15876
|
+
end
|
15877
|
+
}
|
15878
|
+
}
|
15879
|
+
|
15880
|
+
@data['포스트설정']['링크삽입순서1'] = checkbox('링크 순서 사용'){
|
15881
|
+
top 0
|
15882
|
+
left 5
|
15883
|
+
on_toggled {
|
15884
|
+
if @data['포스트설정']['링크삽입순서1'].checked?
|
15885
|
+
@data['포스트설정']['링크삽입랜덤1'].checked = false
|
15886
|
+
end
|
15887
|
+
}
|
15888
|
+
|
15720
15889
|
}
|
15890
|
+
@data['포스트설정']['링크삽입랜덤1'] = checkbox('링크랜덤 사용'){
|
15891
|
+
top 0
|
15892
|
+
left 6
|
15893
|
+
on_toggled {
|
15894
|
+
if @data['포스트설정']['링크삽입랜덤1'].checked?
|
15895
|
+
@data['포스트설정']['링크삽입순서1'].checked = false
|
15896
|
+
end
|
15897
|
+
}
|
15898
|
+
}
|
15899
|
+
|
15900
|
+
|
15901
|
+
|
15721
15902
|
}
|
15722
15903
|
vertical_separator{
|
15723
15904
|
stretchy false
|
@@ -15869,6 +16050,8 @@ class Wordpress
|
|
15869
16050
|
@data['포스트설정']['원고로만포스팅'].checked = true
|
15870
16051
|
@data['포스트설정']['제목에도적용'].checked = true
|
15871
16052
|
@data['포스트설정']['제목리스트사용'].checked = true
|
16053
|
+
@data['포스트설정']['링크삽입순서'].checked = true
|
16054
|
+
@data['포스트설정']['링크삽입순서1'].checked = true
|
15872
16055
|
|
15873
16056
|
}.show
|
15874
16057
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_zon
|
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: posting app
|
13
13
|
email: mymin26@naver.com
|