jekyll-artisync 0.8 → 0.9

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: 01afb17eccd2097c95f4071c0dce0074ec1156b70e455b78ec8c0c961e6aaf3e
4
- data.tar.gz: 72720da82e6a39b40b0682f427c4d75397559cd7ecc23e802e9088675db60616
3
+ metadata.gz: 4c873706255f4f85ab61f889ae05671eb1af5018c00e5b2af34e6851f4e3e4e7
4
+ data.tar.gz: 19b8bd6759dff4e8422ff8cbb898bf793161d193dfd56756002bfcb029db56a2
5
5
  SHA512:
6
- metadata.gz: fd53ace05990ec40ebe945eebc5981cbddf8c8270417f7885297e8a827dada3a1fd8fb7c7f74dae13efa5a2a4beb0b704a795c752041df16da816e3c249bbd0e
7
- data.tar.gz: e9df8042e29b3301787bb4247e826f0b8b6ae8d247a61e31e2a9978383b0e5f39a89d66981ea558140fe2e166f03721f19faf99757c9604d43544fae9d16899b
6
+ metadata.gz: 5d7ed874e3156de1a2385afac0e4cae009f9b02e4a29386d0d6fa6b30b77a89b1476de3c0e8bafd7cf51013548712a060c07af15e765b9e43b18b5b376041479
7
+ data.tar.gz: c7629c9b9a6350fc3c6c8828c25879342cfda299b12bd5f93334159eca0139be599bde675478d2e0dad9b58045911ce819f551d2783b822a395511431b0282c2
@@ -0,0 +1,26 @@
1
+ require_relative 'per_node_syncer'
2
+ require 'nokogiri'
3
+
4
+
5
+ class JianshuSyncer < PerNodeSyncer
6
+ def get_article_xpath
7
+ '//article'
8
+ end
9
+
10
+ def _handle_node(node)
11
+ case node.name
12
+ when 'div'
13
+ img_node = node.css('img')[-1]
14
+ if img_node
15
+ node = img_node
16
+ # jianshu.com uses a //<url> style, therefore
17
+ # append an 'https' in front of '//' part to
18
+ # make it a valid image url.
19
+ node['src'] = 'https:' + node['data-original-src']
20
+ end
21
+ end
22
+
23
+ node.to_html
24
+ end
25
+
26
+ end
@@ -1,27 +1,37 @@
1
+ require_relative 'jianshu_syncer'
1
2
  require_relative 'zhihu_syncer'
2
3
  require_relative 'weixin_syncer'
3
4
  require_relative 'medium_syncer'
4
5
  require_relative 'csdn_syncer'
5
6
 
6
7
 
7
- ZHIHU_ZHUANLAN = 'zhuanlan.zhihu.com'
8
- WEIXIN = 'mp.weixin.qq.com'
9
- MEDIUM = 'medium.com'
10
8
  CSDN = 'blog.csdn.net'
9
+ JIANSHU = 'www.jianshu.com'
10
+ MEDIUM = 'medium.com'
11
+ WEIXIN = 'mp.weixin.qq.com'
12
+ ZHIHU_ZHUANLAN = 'zhuanlan.zhihu.com'
13
+
11
14
 
12
15
  class SyncerFactory
13
16
  def self.get_syncer(uri)
14
17
  host_name = uri.host
15
18
 
16
19
  case host_name
17
- when ZHIHU_ZHUANLAN
18
- return ZhihuSyncer.new(uri)
19
- when WEIXIN
20
- return WeixinSyncer.new(uri)
21
- when MEDIUM
22
- return MediumSyncer.new(uri)
23
20
  when CSDN
24
21
  return CSDNSyncer.new(uri)
22
+
23
+ when JIANSHU
24
+ return JianshuSyncer.new(uri)
25
+
26
+ when MEDIUM
27
+ return MediumSyncer.new(uri)
28
+
29
+ when WEIXIN
30
+ return WeixinSyncer.new(uri)
31
+
32
+ when ZHIHU_ZHUANLAN
33
+ return ZhihuSyncer.new(uri)
34
+
25
35
  else
26
36
  raise "Not supported website for host: #{host_name}"
27
37
  end
@@ -13,7 +13,10 @@ class ZhihuSyncer < PerNodeSyncer
13
13
  img_node = node.css('img')[-1]
14
14
  if img_node
15
15
  node = img_node
16
- node['src'] = node['data-actualsrc']
16
+ img_url = node['data-actualsrc']
17
+ img_url['/v2'] = '/80/v2'
18
+ img_url = img_url.gsub(/_[a-zA-Z]\.jpg/, '_720w.jpg') # _[a-z].jpg -> _720.jpg
19
+ node['src'] = img_url
17
20
  end
18
21
  end
19
22
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-artisync
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.8'
4
+ version: '0.9'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Junhan Zhu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-06 00:00:00.000000000 Z
11
+ date: 2020-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -34,6 +34,7 @@ files:
34
34
  - lib/jekyll-artisync.rb
35
35
  - lib/syncers/abstract_syncer.rb
36
36
  - lib/syncers/csdn_syncer.rb
37
+ - lib/syncers/jianshu_syncer.rb
37
38
  - lib/syncers/medium_syncer.rb
38
39
  - lib/syncers/per_node_syncer.rb
39
40
  - lib/syncers/syncer_factory.rb