mini-douban 0.0.4 → 0.0.5
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.
- data/README.md +11 -3
- data/lib/mini/douban.rb +11 -11
- data/lib/mini/douban/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -18,16 +18,24 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Requirement
|
20
20
|
|
21
|
-
gem install
|
21
|
+
gem install xml-simple
|
22
22
|
|
23
23
|
## Example
|
24
24
|
|
25
25
|
require 'mini/douban'
|
26
26
|
Mini::Douban.book_api :id=>3420144
|
27
27
|
|
28
|
-
参数格式大致为
|
28
|
+
参数格式大致为
|
29
29
|
|
30
|
-
|
30
|
+
{:id=>3420144, :isbn=>'9781430218333', original=>false}.
|
31
|
+
|
32
|
+
其中Id 和ISBN至少有一个.Id优先.original默认为false,可以不填.
|
33
|
+
|
34
|
+
具体含义:
|
35
|
+
* id表示豆瓣对应的图书id;
|
36
|
+
* isbn表示对应豆瓣图书的isbn编号(10或13位即可);
|
37
|
+
* original表示是否显示原本信息.
|
38
|
+
* 由于获取的原本图片尺寸太小,如果需要较大的尺寸可以将原本的作稍微修改,例如:[:image_url].gsub('spic','mpic')
|
31
39
|
|
32
40
|
|
33
41
|
|
data/lib/mini/douban.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "mini/douban/version"
|
2
|
-
require '
|
2
|
+
require 'json'
|
3
3
|
require 'net/http'
|
4
4
|
|
5
5
|
module Mini
|
@@ -17,23 +17,23 @@ module Mini
|
|
17
17
|
opts = opts.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
|
18
18
|
|
19
19
|
if opts[:id]
|
20
|
-
|
20
|
+
book_with_json = Net::HTTP.get_response(URI.parse(BOOK_API_WITH_ID + opts[:id].to_s + '?alt=json')).body
|
21
21
|
elsif opts[:isbn]
|
22
|
-
|
22
|
+
book_with_json = Net::HTTP.get_response(URI.parse(BOOK_API_WITH_ISBN + opts[:isbn].to_s + '?alt=json')).body
|
23
23
|
else
|
24
24
|
return 'input options lack id or isbn'
|
25
25
|
end
|
26
26
|
|
27
|
-
hash_book =
|
27
|
+
hash_book = JSON.parse(book_with_json)
|
28
28
|
|
29
|
-
if hash_book.include?('attribute') and opts[:original] != true
|
29
|
+
if hash_book.include?('db:attribute') and opts[:original] != true
|
30
30
|
sample_book = {}
|
31
|
-
hash_book['attribute'].map{|attr| sample_book[attr['name']] = attr['
|
32
|
-
sample_book['tags'] = hash_book['tag'].map{ |tag| tag['name'] } if hash_book['tag']
|
33
|
-
sample_book['summary'] = hash_book['summary']
|
34
|
-
sample_book['links'] = hash_book['link'].map{ |m| m['href']} if hash_book['link']
|
35
|
-
sample_book['rating'] = hash_book['rating']
|
36
|
-
sample_book['rater_number'] = hash_book['rating']
|
31
|
+
hash_book['db:attribute'].map{|attr| sample_book[attr['@name']] = attr['$t']}
|
32
|
+
sample_book['tags'] = hash_book['db:tag'].map{ |tag| tag['@name'] } if hash_book['db:tag']
|
33
|
+
sample_book['summary'] = hash_book['summary']['$t'] if hash_book['summary']
|
34
|
+
sample_book['links'] = hash_book['link'].map{ |m| m['@href']} if hash_book['link']
|
35
|
+
sample_book['rating'] = hash_book['gd:rating']['@average'] if hash_book['gd:rating']
|
36
|
+
sample_book['rater_number'] = hash_book['gd:rating']['@numRaters'] if hash_book['gd:rating']
|
37
37
|
if sample_book['links']
|
38
38
|
sample_book['image_url'] = sample_book['links'].select{ |s| s.start_with?('http://img')}.join
|
39
39
|
sample_book['api_url'] = sample_book['links'].select{ |s| s.start_with?('http://api')}.join
|
data/lib/mini/douban/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini-douban
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|