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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nblog_zon.rb +137 -86
  3. metadata +3 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7438551d416d02f78b75304e49666305400ff57188befde6c2945167301b5347
4
- data.tar.gz: 41f283ba45d5c6e25af95221cbde6b44b5a71510352817348f93253f2ced7dac
3
+ metadata.gz: 12b41759a6005b39dfc1b2c867c7f4a48bc0c1c975973baef98d8503937f03be
4
+ data.tar.gz: cf03b591242b7514d3086224499551e4562a77401917fe3689621c331c312664
5
5
  SHA512:
6
- metadata.gz: 4cc94f5770ad56fc7dee0c903c698d94ac1def7160ca633c7ebf54993bd6faca65a9915df05ff15f6d1103ab416719d1286175c108db026056d271cd16ec0e91
7
- data.tar.gz: bc4dba9457bcb7a25e9aa00396410cd8af13f02285d127b9c32c85add1abbde28030f24532046fc29a18e27c01a24637647d2c6161982aa3a4609b1e65453e76
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
- if @data['이미지설정']['순서사용'].checked?
2148
- image_path = @data['이미지설정']['이미지'][@image_counter][2]
2149
- @image_counter += 1
2150
- if @image_counter > @data['이미지설정']['이미지'].length-1
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
- img = Magick::Image.read(image_path).first
2157
- img.write('./image/memory.png')
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
- begin
2166
- if @data['image_type'][0].checked? or @data['image_type'][2].checked?
2167
- img.resize!(w, w*(height.to_f/width.to_f))
2168
- else
2169
- img.resize!(w, w)
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
- image_size = [480,740,650,550,480]
2283
+
2284
+ # '원본'을 포함한 이미지 크기 옵션 추가
2285
+ image_size = [480, 740, 650, 550, 480, 'original']
2246
2286
  size = 0
2247
- for n in 0..4
2287
+
2288
+ for n in 0..5 # 0부터 5까지 반복, '원본' 옵션까지 포함
2248
2289
  if @data['image_size'][n].checked?
2249
- if n == 0
2250
- size = image_size.sample
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
- position = Array.new
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
- content5 = content.split("(자동생성글)")[0].to_s.split("\n")
3023
+ position = content5.length.times.to_a.sample(cn).sort.reverse
2989
3024
  end
2990
-
2991
- p content5
2992
- puts content55
2993
- p position
2994
-
3025
+
3026
+ # 중복 필터링 로직
2995
3027
  while true
2996
3028
  check11 = 0
2997
- for nn in 0..position.length-1
2998
- if content5[position[nn]].to_s.include?('style') or content5[position[nn]].to_s.include?('<') or content5[position[nn]].to_s.include?('>')
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[nn] += 4
3032
+ position[idx] += 4
3001
3033
  end
3002
3034
  end
3003
- if check11 == 0
3004
- break
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
- end
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: 0.0.100
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-03-07 00:00:00.000000000 Z
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.3.7
40
- signing_key:
37
+ rubygems_version: 3.6.7
41
38
  specification_version: 4
42
39
  summary: file to clipboard
43
40
  test_files: []