jekyll-artisync 0.8 → 0.9

Sign up to get free protection for your applications and to get access to all the features.
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