panchira 1.5.0 → 1.5.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9119f6e4ad4e4a3b551642f7d19a7853805d2c82b65c5fc868b472f265e7169c
4
- data.tar.gz: 03cbbf38e009cd326b4f40f467de1dcc1d0fb852de362b3dde05ed56eb65c2c2
3
+ metadata.gz: b0a6e502368c14a15073925a7c717646a8e59ff1fbb17240aba4abdedd93fec7
4
+ data.tar.gz: 42557986e00b95619e845c79b20a15f17370fbf72b8bf163f98e0a1660d2d244
5
5
  SHA512:
6
- metadata.gz: 6ff2fab3b4489ade9e7accb6f10dc2d391aa5ba5ebbbb08f130926df81acd31eeae36d2208b915848e5e1337e71ab2a7cbe300eeeb728ed8669593fc139573f8
7
- data.tar.gz: df76a29e1af2515d4eee99568426295e02fbcf8b1b6b835932633458f3f287d4ca2460ec1a497a73f2f8a5e66a100acf71aa37e35be3dd778c95ac83f2f808e7
6
+ metadata.gz: 7f500d879e81fda3ac9c3869b16293b1591da1ac60b149e679fa35be797524a63e01696995f9e4d46f3e0854f213dc276dc84427cbb4bd0086504b931e9ac3f0
7
+ data.tar.gz: 120c8d8c4d86b3a6dda82d14b9cc63a9e9854d930b835fb46681c2392cabce0807ee67332fe2aaafea4f7afd4f626001842a53a8aa8cdb853bb2c7ff6c1773c2
data/CHANGELOG.md CHANGED
@@ -4,10 +4,25 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 1.5.3 - 2022-06-04
8
+ ### Fixed
9
+ - Fixed an issue where Pixiv resolver can't retrieve image urls for manga.
10
+
11
+ ### Changed
12
+ - DLsite resolver now returns descriptions without platform PR sentences.
13
+
14
+ ## 1.5.2 - 2022-03-20
15
+ ### Fixed
16
+ - Fixed an issue where Pixiv resolver can't retrieve not-proxied image scales.
17
+
18
+ ## 1.5.1 - 2022-03-20
19
+ ### Added
20
+ - Pixiv resolver can now fetch image URIs that are not proxied.
21
+
7
22
  ## 1.5.0 - 2022-03-01
8
23
  ### Changed
9
24
  - You can now set options in Panchira::fetch and Resolver's constructors.
10
- - Twitter resolvers can now fetch datas from API (requires bearer token).
25
+ - Twitter resolver can now fetch datas from API (requires bearer token).
11
26
  - Max execution time is now set to 10 seconds.
12
27
 
13
28
  ## 1.4.0 - 2022-01-10
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- panchira (1.5.0)
4
+ panchira (1.5.3)
5
5
  fastimage (~> 2.1.7)
6
6
  nokogiri (>= 1.10.9, < 1.14.0)
7
7
 
@@ -12,35 +12,36 @@ GEM
12
12
  fastimage (2.1.7)
13
13
  mini_portile2 (2.8.0)
14
14
  minitest (5.15.0)
15
- nokogiri (1.13.3)
15
+ nokogiri (1.13.6)
16
16
  mini_portile2 (~> 2.8.0)
17
17
  racc (~> 1.4)
18
- parallel (1.21.0)
19
- parser (3.1.1.0)
18
+ parallel (1.22.1)
19
+ parser (3.1.2.0)
20
20
  ast (~> 2.4.1)
21
21
  racc (1.6.0)
22
22
  rainbow (3.1.1)
23
23
  rake (12.3.3)
24
- regexp_parser (2.2.1)
24
+ regexp_parser (2.5.0)
25
25
  rexml (3.2.5)
26
- rubocop (1.25.1)
26
+ rubocop (1.30.0)
27
27
  parallel (~> 1.10)
28
28
  parser (>= 3.1.0.0)
29
29
  rainbow (>= 2.2.2, < 4.0)
30
30
  regexp_parser (>= 1.8, < 3.0)
31
- rexml
32
- rubocop-ast (>= 1.15.1, < 2.0)
31
+ rexml (>= 3.2.5, < 4.0)
32
+ rubocop-ast (>= 1.18.0, < 2.0)
33
33
  ruby-progressbar (~> 1.7)
34
34
  unicode-display_width (>= 1.4.0, < 3.0)
35
- rubocop-ast (1.16.0)
35
+ rubocop-ast (1.18.0)
36
36
  parser (>= 3.1.1.0)
37
- rubocop-minitest (0.17.2)
37
+ rubocop-minitest (0.20.0)
38
38
  rubocop (>= 0.90, < 2.0)
39
39
  ruby-progressbar (1.11.0)
40
40
  unicode-display_width (2.1.0)
41
41
 
42
42
  PLATFORMS
43
43
  ruby
44
+ x86_64-linux
44
45
 
45
46
  DEPENDENCIES
46
47
  bundler (~> 2.0)
data/README.md CHANGED
@@ -56,6 +56,14 @@ To use Twitter API instead of normal scraping, please set Twitter's bearer token
56
56
  > Panchira.fetch("https://twitter.com/example/status/1234567890", options: {twitter: {bearer_token: 'ABC...123'}})
57
57
  ```
58
58
 
59
+ ### About Pixiv proxy
60
+
61
+ By default, Panchira returns a link to [Pixiv.cat](https://pixiv.cat/) as a image URI, but you can change this behavior by setting `fetch_raw_image_url` as an option. To access not-proxied URI, pximg.net, you have to set Referer as `https://app-api.pixiv.net/` in HTTP request header.
62
+
63
+ ```
64
+ > Panchira.fetch("https://pixiv.net/artworks/12345678", options: {pixiv: {fetch_raw_image_url: true}})
65
+ ```
66
+
59
67
  ## Development
60
68
 
61
69
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -18,6 +18,10 @@ module Panchira
18
18
  @title_md[1]
19
19
  end
20
20
 
21
+ def parse_description
22
+ super.split('「DLsite').first
23
+ end
24
+
21
25
  def parse_authors
22
26
  @page.css('table[id*="work_"] tr').each do |tr|
23
27
  next unless tr.css('th').text =~ /(作|著)者/
@@ -10,6 +10,8 @@ module Panchira
10
10
 
11
11
  raw_json = URI.parse("https://www.pixiv.net/ajax/illust/#{@illust_id}").read('User-Agent' => user_agent)
12
12
  @json = JSON.parse(raw_json)
13
+
14
+ @fetch_raw_image_url = options&.dig(:pixiv, :fetch_raw_image_url)
13
15
  end
14
16
 
15
17
  private
@@ -26,11 +28,24 @@ module Panchira
26
28
  "https://pixiv.net/member_illust.php?mode=medium&illust_id=#{@illust_id}"
27
29
  end
28
30
 
31
+ def parse_image
32
+ image = PanchiraImage.new
33
+ image.url = parse_image_url
34
+ image.width, image.height = FastImage.size(image.url, http_header: {'Referer' => 'https://app-api.pixiv.net/'})
35
+
36
+ image
37
+ end
38
+
29
39
  def parse_image_url
40
+ if @fetch_raw_image_url
41
+ return @json['body']['urls']['original']
42
+ end
43
+
30
44
  proxy_url = "https://pixiv.cat/#{@illust_id}.jpg"
31
45
 
32
- case Net::HTTP.get_response(URI.parse(proxy_url))
33
- when Net::HTTPNotFound
46
+ case res = Net::HTTP.get_response(URI.parse(proxy_url))
47
+ when Net::HTTPMovedPermanently
48
+ # 301が返された場合、locationで渡されたURIにホストが含まれず扱いづらいため決め打ちする
34
49
  proxy_url = "https://pixiv.cat/#{@illust_id}-1.jpg"
35
50
  end
36
51
 
@@ -10,6 +10,9 @@ module Panchira
10
10
  @id = @url.slice(URL_REGEXP, 2)
11
11
 
12
12
  @bearer_token = options&.dig(:twitter, :bearer_token)
13
+
14
+ @author = nil
15
+ @response = nil
13
16
  end
14
17
 
15
18
  def fetch
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Panchira
4
- VERSION = '1.5.0'
4
+ VERSION = '1.5.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panchira
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kyp
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-01 00:00:00.000000000 Z
11
+ date: 2022-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler