tblog_duopack 0.0.39 → 0.0.50

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/tblog_duopack.rb +72 -11
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44cd103f7388e3c3b8d273b70b1e8e922d9c943f75c15b954f3c6b51bf9cae98
4
- data.tar.gz: 96fe769e09a7a8dfd5654c4d12d9eede886dd61a1187ab149a9088a1d7257ac9
3
+ metadata.gz: bb08b4c28392011498f8a6683f49c393d6a5fe70d83839f5185719143c1954d1
4
+ data.tar.gz: ab184f85d87dbea4323e2c4c8a2ac558ddd6d3dce2cf22fd476e737c276a43cc
5
5
  SHA512:
6
- metadata.gz: 005f2424612bab332af9179a7e25a49c7795ad52e2e4ab1a3b3da0d0599b4db504b7fe66e4be823a8f2bd8baf3397cfce4468d6a41dfaf531e4cabf502df83bf
7
- data.tar.gz: 2201f3fdcfc633f45fddabee86f78d80ea6299c5acaba2eb0b65b88fe85180e68114e3ffee8047757bd39d8a7e0ff3c3fe9bb18e82f71ea5c52a530de95293f7
6
+ metadata.gz: 86af3d2f53bb272ae1be71a518aa8df37b62fd9ba9b344c1f308d3b64aa5fe0257e09cc7cf1836e5d95e03edf7ad79830467c65b2c0495a46814cb6378e09397
7
+ data.tar.gz: 3469d71fd2b555ec39f895870e3c68c1f245c274058e86b957a9845b7a91cdf702b2db96cf1133c81ccd09f34eb58102b4a0a792521e828fc123ffe76dda25f2
data/lib/tblog_duopack.rb CHANGED
@@ -15,6 +15,7 @@ require 'uri'
15
15
  require 'cgi'
16
16
  require 'auto_click'
17
17
  require 'rainbow/refinement'
18
+ require 'httpclient'
18
19
  include AutoClickMethods
19
20
  using Rainbow
20
21
  include Glimmer
@@ -1636,21 +1637,81 @@ class Wordpress
1636
1637
 
1637
1638
 
1638
1639
 
1639
- def auto_image
1640
+ def auto_image(keyword = nil)
1641
+ keyword ||= @keyword
1642
+ puts "키워드: #{keyword}"
1643
+
1644
+ client = HTTPClient.new
1645
+ client.default_header = {
1646
+ 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '\
1647
+ '(KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36',
1648
+ 'Accept' => 'application/json, text/javascript, */*; q=0.01',
1649
+ 'Accept-Language' => 'en-US,en;q=0.9',
1650
+ 'Referer' => "https://unsplash.com/s/photos/#{URI.encode_www_form_component(keyword)}",
1651
+ 'X-Requested-With' => 'XMLHttpRequest'
1652
+ }
1653
+
1654
+ retry_count = 0
1655
+ max_retries = 10
1656
+ results = []
1657
+
1640
1658
  begin
1641
1659
  page = rand(1..15)
1642
- http = HTTP.get('https://unsplash.com/napi/photos?per_page=12&page='+page.to_s)
1643
- json = JSON.parse(http.to_s)
1644
- mm = Array.new
1645
- json.each do |i|
1646
- mm << i['urls']['full']
1660
+ url = "https://unsplash.com/napi/search/photos?query=#{URI.encode_www_form_component(keyword)}&page=#{page}&per_page=20"
1661
+ puts "Request URL: #{url}"
1662
+ res = client.get(url)
1663
+
1664
+ unless res.status == 200
1665
+ puts "HTTP Error: #{res.status}"
1666
+ raise "HTTP Error"
1647
1667
  end
1648
- url = mm.sample
1649
- Down.download(url, destination: "./image/memory.png")
1650
- rescue
1651
- puts 'auto_image 일시적 error 5초후 제시도...'
1652
- sleep(5)
1668
+
1669
+ json = JSON.parse(res.body)
1670
+ results = json['results']
1671
+ mm = []
1672
+
1673
+ results.each do |photo|
1674
+ full_url = photo.dig('urls', 'full').to_s
1675
+ regular_url = photo.dig('urls', 'regular').to_s
1676
+
1677
+ if full_url.start_with?("https://images.unsplash.com/photo-") &&
1678
+ regular_url.include?("1080")
1679
+ mm << full_url
1680
+ end
1681
+ end
1682
+
1683
+ if mm.empty?
1684
+ raise "No matching image"
1685
+ end
1686
+
1687
+ selected_url = mm.sample
1688
+ Down.download(selected_url, destination: "./image/memory.png")
1689
+ puts "이미지 다운로드 완료: #{selected_url}"
1690
+
1691
+ rescue => e
1692
+ retry_count += 1
1693
+ puts "auto_image 에러: #{e.message} (재시도 #{retry_count}/#{max_retries})"
1694
+ sleep(3)
1695
+ if retry_count < max_retries
1653
1696
  retry
1697
+ else
1698
+ puts "최대 재시도 초과. 조건 무시하고 랜덤 이미지 다운로드 시도..."
1699
+
1700
+ if results && !results.empty?
1701
+ random_photo = results.sample
1702
+ fallback_url = random_photo.dig('urls', 'full')
1703
+ if fallback_url
1704
+ Down.download(fallback_url, destination: "./image/memory.png")
1705
+ puts "랜덤 이미지 다운로드 완료: #{fallback_url}"
1706
+ else
1707
+ puts "랜덤 이미지 URL을 찾을 수 없습니다. 단색 배경 이미지 생성합니다."
1708
+ color_image
1709
+ end
1710
+ else
1711
+ puts "이미지 결과가 없어 다운로드할 수 없습니다. 단색 배경 이미지 생성합니다."
1712
+ color_image
1713
+ end
1714
+ end
1654
1715
  end
1655
1716
  end
1656
1717
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tblog_duopack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.39
4
+ version: 0.0.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-12 00:00:00.000000000 Z
10
+ date: 2025-05-23 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: File to Clipboard gem
13
13
  email: mymin26@naver.com