kindler 0.0.2 → 0.0.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.
data/Readme.md CHANGED
@@ -1,14 +1,23 @@
1
1
  ### Todo
2
- 1.show images within page
3
- 2.support magzine like format
2
+ support magzine like format
4
3
 
4
+ ### Installation
5
+ ```ruby
6
+ gem 'kindler'
7
+ ```
8
+
9
+ or
10
+
11
+ ```ruby
12
+ gem 'kindler',:git=>'git@github.com:29decibel/kindler.git'
13
+ ```
5
14
  ### A kindle mobi book generator
6
15
  which receive a couple of urls then output one mobi file
7
16
 
8
17
  ### Command Line Use [Todo]
9
- kindler url1 url2 url3 url4 -o test.mobi
18
+ kindler url1 url2 url3 url4 -t my_book
10
19
 
11
- outputs : test.mobi
20
+ outputs : my_book.mobi
12
21
 
13
22
  ### Api use
14
23
  ```ruby
data/kindler.gemspec CHANGED
@@ -4,8 +4,8 @@ require File.expand_path('../lib/kindler/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["dongbin.li"]
6
6
  gem.email = ["mike.d.1984@gmail.com"]
7
- gem.description = %q{a simple gem to generate kindle mobi book}
8
- gem.summary = %q{a simple gem to generate kindle mobi book}
7
+ gem.description = %q{kindler is a rubygem allow you to generate kindle mobi book from urls very easily}
8
+ gem.summary = %q{kindler is a rubygem allow you to generate kindle mobi book from urls very easily}
9
9
  gem.homepage = "https://github.com/29decibel/kindler"
10
10
 
11
11
  gem.rubyforge_project = "kindler"
@@ -1,3 +1,3 @@
1
1
  module Kindler
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/kindler.rb CHANGED
@@ -112,34 +112,6 @@ module Kindler
112
112
  </docAuthor>
113
113
  <navMap>
114
114
  NCX
115
- # this navPoint seems not useful
116
- # contents << <<-NAV
117
- # <navPoint id="navpoint-1" playOrder="1">
118
- # <navLabel><text>Table Of Contents</text></navLabel>
119
- # <content src="contents.html"/>
120
- # </navPoint>
121
- # NAV
122
- ####################### periodocal , magzine like format #########################
123
- # <navPoint playOrder="0" class="periodical" id="periodical">
124
- # <mbp:meta-img src="masthead.gif" name="mastheadImage"/>
125
- # <navLabel>
126
- # <text>Table of Contents</text>
127
- # </navLabel>
128
- # <content src="contents.html"/>
129
- # <navPoint playOrder="1" class="section" id="Main-section">
130
- # <navLabel>
131
- # <text>Main section</text>
132
- # </navLabel>
133
- # <content src="001.html"/>
134
- # <navPoint playOrder="2" class="article" id="item-001">
135
- # <navLabel>
136
- # <text>Nick Clegg and David Cameron agree key changes on NHS plans</text>
137
- # </navLabel>
138
- # <content src="001.html"/>
139
- # <mbp:meta name="description">Deputy PM tells Andrew Marr show that GPs should not be forced to sign up to new commissioning consortiums</mbp:meta>
140
- # <mbp:meta name="author">Nicholas Watt and Denis Campbell</mbp:meta>
141
- # </navPoint>
142
- # ####################################################################################
143
115
  files_count = 2
144
116
  @doc_infos.each do |url,infos|
145
117
  nav_point = <<-NAV
@@ -203,10 +175,13 @@ module Kindler
203
175
  def generate_html
204
176
  @doc_infos.each do |url,infos|
205
177
  article = readable_article(url)
206
- # puts article.images
207
- infos[:content] = html_wrap(article.title,article.content)
208
- infos[:title] = article.title
178
+ if article
179
+ # puts article.images
180
+ infos[:content] = html_wrap(article.title,article.content)
181
+ infos[:title] = article.title
182
+ end
209
183
  end
184
+ @doc_infos = @doc_infos.reject{|url,infos| infos[:content]==nil or infos[:title]==nil }
210
185
  end
211
186
 
212
187
  def localize_images
@@ -255,7 +230,12 @@ module Kindler
255
230
  # get readable document by url, using ruby-readability here
256
231
  def readable_article(url)
257
232
  debug "begin fetch url : #{url}"
258
- source = open(url).read
233
+ begin
234
+ source = open(url).read
235
+ rescue Exception => e
236
+ debug "got some erros,#{e}"
237
+ return nil
238
+ end
259
239
  if @keep_image
260
240
  Readability::Document.new(source,:tags=>%w(div p img a),:attributes => %w[src href],:remove_empty_nodes => false)
261
241
  else
@@ -1,43 +1,84 @@
1
1
  require 'spec_helper'
2
2
  describe "Mobi html file generator" do
3
3
 
4
- it "should generate html files by urls" do
5
- title = "Test_book"
6
- book = Kindler::Book.new ({:urls=>["http://blog.farmostwood.net/643.html",
7
- "http://www.ifanr.com/69878","http://www.oneplus.info/archives/455"],
8
- :title=>title,:author=>'mike',:debug=>true})
9
- book.generate
10
- File.exist?(mobi_book_path(title)).should == true
11
- end
4
+ # it "should generate html files by urls" do
5
+ # title = "Test_book"
6
+ # book = Kindler::Book.new ({:urls=>["http://blog.farmostwood.net/643.html",
7
+ # "http://www.ifanr.com/69878","http://www.oneplus.info/archives/455"],
8
+ # :title=>title,:author=>'mike',:debug=>true})
9
+ # book.generate
10
+ # File.exist?(mobi_book_path(title)).should == true
11
+ # end
12
12
 
13
13
 
14
- it "should generate hacker news book" do
15
- title = 'haker_news'
16
- urls = []
17
- urls << "http://jseliger.com/2010/09/26/how-universities-work-or-what-i-wish-i%E2%80%99d-known-freshman-year-a-guide-to-american-university-life-for-the-uninitiated/"
18
- urls << "http://randykepple.com/photoblog/2010/10/8-bad-habits-that-crush-your-creativity-and-stifle-your-success/"
19
- urls << "http://nathanmarz.com/blog/how-to-get-a-job-at-a-kick-ass-startup-for-programmers.html"
20
- urls << "http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux"
21
- urls << "http://antirez.com/post/what-is-wrong-with-2006-programming.html"
22
- urls << "http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/"
23
- book = Kindler::Book.new :urls=>urls,:title=>title,:author=>'mike',:debug=>true
24
- book.generate
25
- File.exist?(mobi_book_path(title)).should == true
26
- end
14
+ # it "should generate hacker news book" do
15
+ # title = 'haker_news'
16
+ # urls = []
17
+ # urls << "http://jseliger.com/2010/09/26/how-universities-work-or-what-i-wish-i%E2%80%99d-known-freshman-year-a-guide-to-american-university-life-for-the-uninitiated/"
18
+ # urls << "http://randykepple.com/photoblog/2010/10/8-bad-habits-that-crush-your-creativity-and-stifle-your-success/"
19
+ # urls << "http://nathanmarz.com/blog/how-to-get-a-job-at-a-kick-ass-startup-for-programmers.html"
20
+ # urls << "http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux"
21
+ # urls << "http://antirez.com/post/what-is-wrong-with-2006-programming.html"
22
+ # urls << "http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/"
23
+ # book = Kindler::Book.new :urls=>urls,:title=>title,:author=>'mike',:debug=>true
24
+ # book.generate
25
+ # File.exist?(mobi_book_path(title)).should == true
26
+ # end
27
27
 
28
- it "should generate book and infos on output_dir" do
29
- title = 'my_dir_book'
28
+ # it "should generate book and infos on output_dir" do
29
+ # title = 'my_dir_book'
30
+ # urls = []
31
+ # urls << "http://www.wowsai.com/home/space.php?uid=1&do=blog&id=4362&classid=2"
32
+ # urls << "http://www.honeykennedy.com/2012/01/miss-moss-love-letters/"
33
+ # urls << "http://www.mysenz.com/?p=3692"
34
+ # book = Kindler::Book.new :urls=>urls,:title=>title,:author=>'mike',:output_dir=>'/Users/lidongbin/projects',:debug=>true
35
+ # book.generate
36
+ # File.exist?(mobi_book_path(title,'/Users/lidongbin/projects')).should == true
37
+ # end
38
+
39
+ it "should not say error when got redirect page" do
40
+ title = 'good_book'
30
41
  urls = []
31
- urls << "http://www.wowsai.com/home/space.php?uid=1&do=blog&id=4362&classid=2"
32
- urls << "http://www.honeykennedy.com/2012/01/miss-moss-love-letters/"
42
+ urls << "http://droplr.com"
33
43
  urls << "http://www.mysenz.com/?p=3692"
34
- book = Kindler::Book.new :urls=>urls,:title=>title,:author=>'mike',:output_dir=>'/Users/lidongbin/projects',:debug=>true
44
+ book = Kindler::Book.new :urls=>urls,:title=>title,:author=>'mike',:debug=>true
35
45
  book.generate
36
- File.exist?(mobi_book_path(title,'/Users/lidongbin/projects')).should == true
46
+ File.exist?(mobi_book_path(title)).should == true
37
47
  end
38
48
 
39
49
  def mobi_book_path(title,output_dir='.')
40
50
  File.join(output_dir,"kindler_generated_mobi_#{title}/#{title}.mobi")
41
51
  end
42
52
 
53
+
54
+ # this navPoint seems not useful
55
+ # contents << <<-NAV
56
+ # <navPoint id="navpoint-1" playOrder="1">
57
+ # <navLabel><text>Table Of Contents</text></navLabel>
58
+ # <content src="contents.html"/>
59
+ # </navPoint>
60
+ # NAV
61
+ ####################### periodocal , magzine like format #########################
62
+ # <navPoint playOrder="0" class="periodical" id="periodical">
63
+ # <mbp:meta-img src="masthead.gif" name="mastheadImage"/>
64
+ # <navLabel>
65
+ # <text>Table of Contents</text>
66
+ # </navLabel>
67
+ # <content src="contents.html"/>
68
+ # <navPoint playOrder="1" class="section" id="Main-section">
69
+ # <navLabel>
70
+ # <text>Main section</text>
71
+ # </navLabel>
72
+ # <content src="001.html"/>
73
+ # <navPoint playOrder="2" class="article" id="item-001">
74
+ # <navLabel>
75
+ # <text>Nick Clegg and David Cameron agree key changes on NHS plans</text>
76
+ # </navLabel>
77
+ # <content src="001.html"/>
78
+ # <mbp:meta name="description">Deputy PM tells Andrew Marr show that GPs should not be forced to sign up to new commissioning consortiums</mbp:meta>
79
+ # <mbp:meta name="author">Nicholas Watt and Denis Campbell</mbp:meta>
80
+ # </navPoint>
81
+ # ####################################################################################
82
+
83
+
43
84
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kindler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-30 00:00:00.000000000Z
12
+ date: 2012-02-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mini_magick
16
- requirement: &2157488800 !ruby/object:Gem::Requirement
16
+ requirement: &2161043520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157488800
24
+ version_requirements: *2161043520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ruby-readability
27
- requirement: &2157488380 !ruby/object:Gem::Requirement
27
+ requirement: &2161042240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,8 +32,9 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2157488380
36
- description: a simple gem to generate kindle mobi book
35
+ version_requirements: *2161042240
36
+ description: kindler is a rubygem allow you to generate kindle mobi book from urls
37
+ very easily
37
38
  email:
38
39
  - mike.d.1984@gmail.com
39
40
  executables:
@@ -76,7 +77,8 @@ rubyforge_project: kindler
76
77
  rubygems_version: 1.8.11
77
78
  signing_key:
78
79
  specification_version: 3
79
- summary: a simple gem to generate kindle mobi book
80
+ summary: kindler is a rubygem allow you to generate kindle mobi book from urls very
81
+ easily
80
82
  test_files:
81
83
  - spec/cases/generator_spec.rb
82
84
  - spec/spec_helper.rb