nblog_zon 111.116.779 → 111.117.789

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 +102 -11
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b960b4fb6c6f618360cb4f07e5bdecbe1e6a4c8da4c5af370f951b81c4b3faa
4
- data.tar.gz: 0f809fd5a57042a3a26b4c4e748667b5badef6b67ed4de04fbe73bea6da17131
3
+ metadata.gz: b8fa0de35ccb453ed183232c89506cc94d1e862495dbb7398100ac52848cfe64
4
+ data.tar.gz: 8dbca3b1ce745f549c442dfb0b3204c7ced2dcadca999ed05bbe23ff746c009f
5
5
  SHA512:
6
- metadata.gz: d4da117575fe77fae6f23e3c38e6c6984b6abb1cb0542c6490664c648835cc7fc482ea52ed2ad99e7754210f226edcba45672e3382fd5b647878fec217edccbe
7
- data.tar.gz: 69ea10c74cf7dc62d1ed71d4b695fcfa1a1cecbd33f01569f75bdcd0dec5dec33dd1bee047638a009a60b61fb3f8ae529eeb160cd8dd7fa4c491c704f8ba7124
6
+ metadata.gz: 37d160408f39c74f0598e6d1eab6f01373a2f69a2f851c60dd382cb3d7ac0afe8fccdb2a724c29401429a4d94413d8b7af1401fdc8697400cb24a44aa79018cc
7
+ data.tar.gz: 5699d00b22583c92f3cc9333038315c33aa659193860dad395bef83e592fb71228ad8d6e1f2e4812b964ed6445c79f0fa0a28403b6605d16f84058080cf987c4
data/lib/nblog_zon.rb CHANGED
@@ -17,6 +17,8 @@ require 'cgi'
17
17
  require 'digest'
18
18
  require 'auto_click'
19
19
  require 'rainbow/refinement'
20
+ require 'httpclient'
21
+ require 'win32ole'
20
22
  include AutoClickMethods
21
23
  using Rainbow
22
24
  include Glimmer
@@ -241,8 +243,37 @@ end
241
243
  class Naver
242
244
  def initialize
243
245
  @seed = 1
246
+ kill_selenium_chrome #기존 창 모두 닫는 명령
247
+ sleep(1)
244
248
  end
245
249
 
250
+ def kill_selenium_chrome #기존 창 모두 닫는 코드
251
+ wmi = WIN32OLE.connect("winmgmts://")
252
+ chrome_procs = wmi.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'chrome.exe'")
253
+
254
+ chrome_procs.each do |proc|
255
+ cmd = proc.CommandLine
256
+ if cmd && cmd.include?("user-data-dir=C:/naver_cookie")
257
+ puts "→ 크롬 창 초기화: PID #{proc.ProcessId}"
258
+ begin
259
+ proc.Terminate
260
+ rescue
261
+ #puts "→ 이미 종료된 프로세스: #{proc.ProcessId}"
262
+ end
263
+ end
264
+ end
265
+
266
+ # chromedriver도 같이 종료
267
+ chromedrivers = wmi.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'chromedriver.exe'")
268
+ chromedrivers.each do |proc|
269
+ puts "→ 크롬 창 초기화: PID #{proc.ProcessId}"
270
+ begin
271
+ proc.Terminate
272
+ rescue
273
+ #puts "→ 이미 종료된 chromedriver: #{proc.ProcessId}"
274
+ end
275
+ end
276
+ end
246
277
 
247
278
  def chrome_setup(user_id, proxy)
248
279
  naver_cookie_dir = "C:/naver_cookie"
@@ -2153,21 +2184,81 @@ class Wordpress
2153
2184
  return @data2
2154
2185
  end
2155
2186
 
2156
- def auto_image
2187
+ def auto_image(keyword = nil)
2188
+ keyword ||= @keyword
2189
+ puts "키워드: #{keyword}"
2190
+
2191
+ client = HTTPClient.new
2192
+ client.default_header = {
2193
+ 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '\
2194
+ '(KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36',
2195
+ 'Accept' => 'application/json, text/javascript, */*; q=0.01',
2196
+ 'Accept-Language' => 'en-US,en;q=0.9',
2197
+ 'Referer' => "https://unsplash.com/s/photos/#{URI.encode_www_form_component(keyword)}",
2198
+ 'X-Requested-With' => 'XMLHttpRequest'
2199
+ }
2200
+
2201
+ retry_count = 0
2202
+ max_retries = 10
2203
+ results = []
2204
+
2157
2205
  begin
2158
2206
  page = rand(1..15)
2159
- http = HTTP.get('https://unsplash.com/napi/photos?per_page=12&page='+page.to_s)
2160
- json = JSON.parse(http.to_s)
2161
- mm = Array.new
2162
- json.each do |i|
2163
- mm << i['urls']['full']
2207
+ url = "https://unsplash.com/napi/search/photos?query=#{URI.encode_www_form_component(keyword)}&page=#{page}&per_page=20"
2208
+ puts "Request URL: #{url}"
2209
+ res = client.get(url)
2210
+
2211
+ unless res.status == 200
2212
+ puts "HTTP Error: #{res.status}"
2213
+ raise "HTTP Error"
2164
2214
  end
2165
- url = mm.sample
2166
- Down.download(url, destination: "./image/memory.png")
2167
- rescue
2168
- puts 'auto_image 일시적 error 5초후 제시도...'
2169
- sleep(5)
2215
+
2216
+ json = JSON.parse(res.body)
2217
+ results = json['results']
2218
+ mm = []
2219
+
2220
+ results.each do |photo|
2221
+ full_url = photo.dig('urls', 'full').to_s
2222
+ regular_url = photo.dig('urls', 'regular').to_s
2223
+
2224
+ if full_url.start_with?("https://images.unsplash.com/photo-") &&
2225
+ regular_url.include?("1080")
2226
+ mm << full_url
2227
+ end
2228
+ end
2229
+
2230
+ if mm.empty?
2231
+ raise "No matching image"
2232
+ end
2233
+
2234
+ selected_url = mm.sample
2235
+ Down.download(selected_url, destination: "./image/memory.png")
2236
+ puts "이미지 다운로드 완료: #{selected_url}"
2237
+
2238
+ rescue => e
2239
+ retry_count += 1
2240
+ puts "auto_image 에러: #{e.message} (재시도 #{retry_count}/#{max_retries})"
2241
+ sleep(3)
2242
+ if retry_count < max_retries
2170
2243
  retry
2244
+ else
2245
+ puts "최대 재시도 초과. 조건 무시하고 랜덤 이미지 다운로드 시도..."
2246
+
2247
+ if results && !results.empty?
2248
+ random_photo = results.sample
2249
+ fallback_url = random_photo.dig('urls', 'full')
2250
+ if fallback_url
2251
+ Down.download(fallback_url, destination: "./image/memory.png")
2252
+ puts "랜덤 이미지 다운로드 완료: #{fallback_url}"
2253
+ else
2254
+ puts "랜덤 이미지 URL을 찾을 수 없습니다. 단색 배경 이미지 생성합니다."
2255
+ color_image
2256
+ end
2257
+ else
2258
+ puts "이미지 결과가 없어 다운로드할 수 없습니다. 단색 배경 이미지 생성합니다."
2259
+ color_image
2260
+ end
2261
+ end
2171
2262
  end
2172
2263
  end
2173
2264
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nblog_zon
3
3
  version: !ruby/object:Gem::Version
4
- version: 111.116.779
4
+ version: 111.117.789
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-23 00:00:00.000000000 Z
10
+ date: 2025-05-29 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: File to Clipboard gem
13
13
  email: rnjstnswp123@naver.com