nblog_zon 0.0.100 → 111.113.777
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/nblog_zon.rb +137 -86
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12b41759a6005b39dfc1b2c867c7f4a48bc0c1c975973baef98d8503937f03be
|
4
|
+
data.tar.gz: cf03b591242b7514d3086224499551e4562a77401917fe3689621c331c312664
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9baef2b794c44c2b3311fd7e84a1608b54c278f6658b36318ffce4a1093aef0df76013ec3673a052d5be9db0e86157781c2234a291b4bcf1c63a1c6191247c54
|
7
|
+
data.tar.gz: e456183f6f1c6a51207fc19d6b1d4435e87c8933501fab2cad3ce8a1ab60644cb11ed0ef3cb98fbf042841829d42059a0fbe548184761f9e3af451039f567766
|
data/lib/nblog_zon.rb
CHANGED
@@ -669,8 +669,29 @@ class Naver
|
|
669
669
|
puts myJSON
|
670
670
|
return myJSON
|
671
671
|
end
|
672
|
-
|
673
672
|
|
673
|
+
def clear_image_directory
|
674
|
+
# ./image/ 폴더 경로
|
675
|
+
directory_path = './image'
|
676
|
+
|
677
|
+
# 폴더가 존재하는지 확인
|
678
|
+
if Dir.exist?(directory_path)
|
679
|
+
# 폴더 내의 모든 파일을 삭제
|
680
|
+
Dir.foreach(directory_path) do |file|
|
681
|
+
# .과 ..은 제외
|
682
|
+
if file != '.' && file != '..'
|
683
|
+
file_path = File.join(directory_path, file)
|
684
|
+
if File.exist?(file_path)
|
685
|
+
File.delete(file_path)
|
686
|
+
end
|
687
|
+
end
|
688
|
+
end
|
689
|
+
puts "세탁 후 사용한 이미지 삭제 처리 완료"
|
690
|
+
else
|
691
|
+
puts "사용한 이미지가 없으므로 삭제 미 처리"
|
692
|
+
end
|
693
|
+
end
|
694
|
+
|
674
695
|
def update(title, content, option, soosick_1, soosick_2, dd_time)
|
675
696
|
#@driver.get(@url+'?Redirect=Write')
|
676
697
|
#sleep(15)
|
@@ -1852,6 +1873,7 @@ class Naver
|
|
1852
1873
|
end
|
1853
1874
|
|
1854
1875
|
@driver.find_element(:xpath, '//*[@data-testid="seOnePublishBtn"]').click #최종 등록버튼
|
1876
|
+
clear_image_directory
|
1855
1877
|
sleep(7)
|
1856
1878
|
else
|
1857
1879
|
|
@@ -2142,35 +2164,52 @@ class Wordpress
|
|
2142
2164
|
|
2143
2165
|
def save_image
|
2144
2166
|
if @data['이미지설정']['이미지'].length == 0
|
2145
|
-
|
2167
|
+
return
|
2168
|
+
end
|
2169
|
+
|
2170
|
+
if @data['이미지설정']['순서사용'].checked?
|
2171
|
+
image_path = @data['이미지설정']['이미지'][@image_counter][2]
|
2172
|
+
@image_counter += 1
|
2173
|
+
if @image_counter > @data['이미지설정']['이미지'].length - 1
|
2174
|
+
@image_counter = 0
|
2175
|
+
end
|
2146
2176
|
else
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
@image_counter = 0
|
2152
|
-
end
|
2153
|
-
else
|
2154
|
-
image_path = @data['이미지설정']['이미지'].sample[2]
|
2177
|
+
# 초기화가 안됐거나 다 썼으면 새롭게 섞는다
|
2178
|
+
@shuffled_images ||= []
|
2179
|
+
if @shuffled_images.empty?
|
2180
|
+
@shuffled_images = @data['이미지설정']['이미지'].shuffle
|
2155
2181
|
end
|
2156
|
-
|
2157
|
-
|
2182
|
+
|
2183
|
+
image_path = @shuffled_images.shift[2]
|
2158
2184
|
end
|
2185
|
+
|
2186
|
+
img = Magick::Image.read(image_path).first
|
2187
|
+
img.write('./image/memory.png')
|
2159
2188
|
end
|
2160
2189
|
|
2161
2190
|
def change_image_size(w)
|
2162
2191
|
img = Magick::Image.read('./image/memory.png').first
|
2163
2192
|
width = img.columns
|
2164
2193
|
height = img.rows
|
2165
|
-
|
2166
|
-
|
2167
|
-
|
2168
|
-
|
2169
|
-
|
2194
|
+
|
2195
|
+
# '원본'이 선택된 경우, 리사이징을 하지 않고 원본 이미지를 그대로 반환
|
2196
|
+
if w == 'original'
|
2197
|
+
return img # 원본 이미지 그대로 반환
|
2198
|
+
else
|
2199
|
+
begin
|
2200
|
+
if @data['image_type'][0].checked? or @data['image_type'][2].checked?
|
2201
|
+
# 비율을 맞추어 리사이징
|
2202
|
+
img.resize!(w, w * (height.to_f / width.to_f))
|
2203
|
+
else
|
2204
|
+
# 정사각형으로 리사이징
|
2205
|
+
img.resize!(w, w)
|
2206
|
+
end
|
2207
|
+
rescue
|
2208
|
+
img.resize!(w, w) # 예외 처리 시에도 리사이징
|
2170
2209
|
end
|
2171
|
-
rescue
|
2172
|
-
img.resize!(w, w)
|
2173
2210
|
end
|
2211
|
+
|
2212
|
+
# 리사이징된 이미지 저장
|
2174
2213
|
img.write('./image/memory.png')
|
2175
2214
|
end
|
2176
2215
|
|
@@ -2241,23 +2280,30 @@ class Wordpress
|
|
2241
2280
|
else
|
2242
2281
|
auto_image()
|
2243
2282
|
end
|
2244
|
-
|
2245
|
-
|
2283
|
+
|
2284
|
+
# '원본'을 포함한 이미지 크기 옵션 추가
|
2285
|
+
image_size = [480, 740, 650, 550, 480, 'original']
|
2246
2286
|
size = 0
|
2247
|
-
|
2287
|
+
|
2288
|
+
for n in 0..5 # 0부터 5까지 반복, '원본' 옵션까지 포함
|
2248
2289
|
if @data['image_size'][n].checked?
|
2249
|
-
if n ==
|
2250
|
-
size =
|
2290
|
+
if n == 5 # '원본'이 선택되었을 경우
|
2291
|
+
size = 'original'
|
2292
|
+
elsif n == 0
|
2293
|
+
size = image_size.sample # 랜덤 선택
|
2251
2294
|
else
|
2252
2295
|
size = image_size[n]
|
2253
2296
|
end
|
2254
2297
|
end
|
2255
2298
|
end
|
2299
|
+
|
2300
|
+
# '원본'이 선택되지 않았다면 기본 값 설정
|
2256
2301
|
if size == 0
|
2257
2302
|
size = 480
|
2258
2303
|
end
|
2304
|
+
|
2305
|
+
change_image_size(size) # 크기 변경 함수 호출
|
2259
2306
|
|
2260
|
-
change_image_size(size)
|
2261
2307
|
|
2262
2308
|
if @data['이미지설정']['필터사용'].checked?
|
2263
2309
|
image_filter()
|
@@ -2946,94 +2992,83 @@ class Wordpress
|
|
2946
2992
|
puts '내용사진자동삽입...'
|
2947
2993
|
sn = @data['포스트설정']['내용사진자동삽입시작숫자'].text.to_s.force_encoding('utf-8').to_i
|
2948
2994
|
en = @data['포스트설정']['내용사진자동삽입끝숫자'].text.to_s.force_encoding('utf-8').to_i
|
2995
|
+
|
2949
2996
|
begin
|
2950
2997
|
cn = rand(sn..en)
|
2951
2998
|
rescue
|
2952
2999
|
cn = 0
|
2953
3000
|
puts 'cn = rand(sn..en) error cn = 1'
|
2954
3001
|
end
|
2955
|
-
|
3002
|
+
|
2956
3003
|
if cn != 0
|
2957
|
-
|
3004
|
+
# content5 구성 및 위치 배열 생성
|
2958
3005
|
if @data['포스트설정']['내용과자동생성'].checked?
|
2959
|
-
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2960
|
-
for n in 1..cn
|
2961
|
-
position << rand(0..(content.split("(자동생성글)")[0].split("\n").length-1))
|
2962
|
-
sleep(2)
|
2963
|
-
end
|
2964
|
-
else
|
2965
|
-
for n in 1..cn
|
2966
|
-
position << rand(0..(content.split("(자동생성글)")[0].split("\n").length-1))
|
2967
|
-
sleep(2)
|
2968
|
-
end
|
2969
|
-
end
|
2970
|
-
# position.pop
|
2971
|
-
else
|
2972
|
-
for n in 1..cn
|
2973
|
-
position << rand(0..(content.split("\n").length-2))
|
2974
|
-
sleep(2)
|
2975
|
-
end
|
2976
|
-
end
|
2977
|
-
|
2978
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
2979
3006
|
if @data['포스트설정']['자동글 수식에 입력'].checked?
|
2980
3007
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2981
3008
|
content55 = content.split("(자동생성글)")[1].to_s
|
3009
|
+
position = content5.length.times.to_a.sample(cn).sort.reverse
|
2982
3010
|
else
|
2983
3011
|
content5 = content.split("(자동생성글)")[0].to_s.split("\n")
|
2984
3012
|
content55 = content.split("(자동생성글)")[1].to_s
|
3013
|
+
position = content5.length.times.to_a.sample(cn).sort.reverse
|
2985
3014
|
end
|
3015
|
+
elsif @data['포스트설정']['gpt키워드'].checked?
|
3016
|
+
content5 = content.split("(자동생성글)")[1].to_s.split("\n")
|
3017
|
+
content_prefix = content.split("(자동생성글)")[0].to_s
|
3018
|
+
content55 = ''
|
3019
|
+
position = content5.length.times.to_a.sample(cn).sort.reverse
|
2986
3020
|
else
|
3021
|
+
content5 = content.split("\n")
|
2987
3022
|
content55 = ''
|
2988
|
-
|
3023
|
+
position = content5.length.times.to_a.sample(cn).sort.reverse
|
2989
3024
|
end
|
2990
|
-
|
2991
|
-
|
2992
|
-
puts content55
|
2993
|
-
p position
|
2994
|
-
|
3025
|
+
|
3026
|
+
# 중복 필터링 로직
|
2995
3027
|
while true
|
2996
3028
|
check11 = 0
|
2997
|
-
|
2998
|
-
if content5[
|
3029
|
+
position.each_with_index do |pos, idx|
|
3030
|
+
if content5[pos].to_s.include?('style') || content5[pos].to_s.include?('<') || content5[pos].to_s.include?('>')
|
2999
3031
|
check11 = 1
|
3000
|
-
position[
|
3032
|
+
position[idx] += 4
|
3001
3033
|
end
|
3002
3034
|
end
|
3003
|
-
if check11 == 0
|
3004
|
-
|
3035
|
+
break if check11 == 0
|
3036
|
+
end
|
3037
|
+
|
3038
|
+
if @data['포스트설정']['내용과자동생성'].checked? || @data['포스트설정']['gpt키워드'].checked?
|
3039
|
+
sleep(2)
|
3040
|
+
puts '이미지 자동 세탁 중 · · · '
|
3041
|
+
end
|
3042
|
+
|
3043
|
+
p content5
|
3044
|
+
puts content55
|
3045
|
+
p position
|
3046
|
+
|
3047
|
+
sleep(2)
|
3048
|
+
position.each do |i|
|
3049
|
+
image_url22 = get_image_file().force_encoding('utf-8')
|
3050
|
+
if @data['포스트설정']['내용사진링크'].checked?
|
3051
|
+
image_tag = '<a href="' + @data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8') +
|
3052
|
+
'"><img src="' + image_url22 + '" alt="' + keyword.force_encoding('utf-8') + '" class="aligncenter size-full"></a>'
|
3053
|
+
else
|
3054
|
+
image_tag = '<img src="' + image_url22 + '" alt="' + keyword + '" class="aligncenter size-full">'
|
3005
3055
|
end
|
3056
|
+
content5.insert(i, image_tag)
|
3057
|
+
end
|
3058
|
+
|
3059
|
+
sleep(2)
|
3060
|
+
puts '이미지 자동 세탁 완료 · · · '
|
3061
|
+
|
3062
|
+
if @data['포스트설정']['내용과자동생성'].checked?
|
3063
|
+
content = content5.join("\n") + '(자동생성글)' + content55
|
3064
|
+
elsif @data['포스트설정']['gpt키워드'].checked?
|
3065
|
+
content = content_prefix + "(자동생성글)" + content5.join("\n")
|
3066
|
+
else
|
3067
|
+
content = content5.join("\n")
|
3006
3068
|
end
|
3007
|
-
|
3008
|
-
position = position.sort
|
3009
|
-
|
3010
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
3011
|
-
sleep(2)
|
3012
|
-
puts '이미지 자동 세탁 중 · · · '
|
3013
|
-
end
|
3014
|
-
sleep(2)
|
3015
|
-
position.each do |i|
|
3016
|
-
image_url22 = get_image_file().force_encoding('utf-8')
|
3017
|
-
puts image_url22
|
3018
|
-
puts '사진넣는위치 => '+i.to_s
|
3019
|
-
if @data['포스트설정']['내용사진링크'].checked?
|
3020
|
-
image_memory << ""+'<a href="'+@data['포스트설정']['내용사진링크값'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')+'"><img src="'+image_url22+'" alt="'+keyword.force_encoding('utf-8')+'"></a>'+""
|
3021
|
-
content5.insert(i, '**image**')
|
3022
|
-
else
|
3023
|
-
image_memory << ""+'<img src="'+image_url22+'" alt="'+keyword+'" class="aligncenter size-full">'+""
|
3024
|
-
content5.insert(i, '**image**')
|
3025
|
-
end
|
3026
|
-
end
|
3027
|
-
sleep(2)
|
3028
|
-
puts '이미지 자동 세탁 완료 · · · '
|
3029
|
-
if @data['포스트설정']['내용과자동생성'].checked? or @data['포스트설정']['gpt키워드'].checked?
|
3030
|
-
content = content5.join("\n")+'(자동생성글)'+content55
|
3031
|
-
puts content
|
3032
|
-
else
|
3033
|
-
content = content5.join("\n")
|
3034
3069
|
end
|
3035
3070
|
end
|
3036
|
-
|
3071
|
+
|
3037
3072
|
|
3038
3073
|
|
3039
3074
|
##여기서부터 이미지 순서대로 수정코드 변경####-------------------------------------------------------------------------------
|
@@ -4694,6 +4729,7 @@ class Wordpress
|
|
4694
4729
|
@data['image_size'][2].checked = false
|
4695
4730
|
@data['image_size'][3].checked = false
|
4696
4731
|
@data['image_size'][4].checked = false
|
4732
|
+
@data['image_size'][5].checked = false
|
4697
4733
|
end
|
4698
4734
|
}
|
4699
4735
|
}
|
@@ -4704,6 +4740,7 @@ class Wordpress
|
|
4704
4740
|
@data['image_size'][2].checked = false
|
4705
4741
|
@data['image_size'][3].checked = false
|
4706
4742
|
@data['image_size'][4].checked = false
|
4743
|
+
@data['image_size'][5].checked = false
|
4707
4744
|
end
|
4708
4745
|
}
|
4709
4746
|
}
|
@@ -4714,6 +4751,7 @@ class Wordpress
|
|
4714
4751
|
@data['image_size'][0].checked = false
|
4715
4752
|
@data['image_size'][3].checked = false
|
4716
4753
|
@data['image_size'][4].checked = false
|
4754
|
+
@data['image_size'][5].checked = false
|
4717
4755
|
end
|
4718
4756
|
}
|
4719
4757
|
}
|
@@ -4724,6 +4762,7 @@ class Wordpress
|
|
4724
4762
|
@data['image_size'][2].checked = false
|
4725
4763
|
@data['image_size'][0].checked = false
|
4726
4764
|
@data['image_size'][4].checked = false
|
4765
|
+
@data['image_size'][5].checked = false
|
4727
4766
|
end
|
4728
4767
|
}
|
4729
4768
|
}
|
@@ -4734,6 +4773,18 @@ class Wordpress
|
|
4734
4773
|
@data['image_size'][2].checked = false
|
4735
4774
|
@data['image_size'][3].checked = false
|
4736
4775
|
@data['image_size'][0].checked = false
|
4776
|
+
@data['image_size'][5].checked = false
|
4777
|
+
end
|
4778
|
+
}
|
4779
|
+
}
|
4780
|
+
@data['image_size'][5] = checkbox('원본 px'){
|
4781
|
+
on_toggled{
|
4782
|
+
if @data['image_size'][5].checked?
|
4783
|
+
@data['image_size'][1].checked = false
|
4784
|
+
@data['image_size'][2].checked = false
|
4785
|
+
@data['image_size'][3].checked = false
|
4786
|
+
@data['image_size'][0].checked = false
|
4787
|
+
@data['image_size'][4].checked = false
|
4737
4788
|
end
|
4738
4789
|
}
|
4739
4790
|
}
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nblog_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 111.113.777
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date: 2025-
|
10
|
+
date: 2025-04-17 00:00:00.000000000 Z
|
12
11
|
dependencies: []
|
13
12
|
description: File to Clipboard gem
|
14
13
|
email: rnjstnswp123@naver.com
|
@@ -21,7 +20,6 @@ homepage: ''
|
|
21
20
|
licenses:
|
22
21
|
- zon
|
23
22
|
metadata: {}
|
24
|
-
post_install_message:
|
25
23
|
rdoc_options: []
|
26
24
|
require_paths:
|
27
25
|
- lib
|
@@ -36,8 +34,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
34
|
- !ruby/object:Gem::Version
|
37
35
|
version: '0'
|
38
36
|
requirements: []
|
39
|
-
rubygems_version: 3.
|
40
|
-
signing_key:
|
37
|
+
rubygems_version: 3.6.7
|
41
38
|
specification_version: 4
|
42
39
|
summary: file to clipboard
|
43
40
|
test_files: []
|