Html2Feedbooks 1.0.10 → 1.1.0

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.
Files changed (3) hide show
  1. data/bin/html2fb.rb +27 -1
  2. data/lib/conf.rb +4 -0
  3. metadata +20 -42
data/bin/html2fb.rb CHANGED
@@ -8,6 +8,7 @@ require 'parser.rb'
8
8
  require 'feedbooks.rb'
9
9
  require 'tmpdir'
10
10
  require 'launchy'
11
+ require 'digest/md5'
11
12
 
12
13
  include HTML2FB
13
14
 
@@ -27,10 +28,13 @@ OptionParser.new do |opts|
27
28
  opts.on("-nc", "--no-conv","No charset conversion") do |f|
28
29
  options[:conv] = !f
29
30
  end
31
+ opts.on("-C", "--cache", String,"Configuration file") do |f|
32
+ options[:cache] = !f
33
+ end
30
34
  end.parse!
31
-
32
35
  valid=false
33
36
  entry=ARGV[0]
37
+ basedir=Dir.tmpdir+'/'
34
38
  while !valid
35
39
  url=nil
36
40
  begin
@@ -45,9 +49,31 @@ while !valid
45
49
  entry=STDIN.readline.strip unless valid
46
50
  end
47
51
  conf=Conf.new(options[:conf],options[:conv])
52
+ abridged_conf=conf.to_h.reject{|k,v| k=='fb'}
48
53
  content=Downloader.download(url)
54
+ cache={}
55
+ ok=false
56
+ if options[:cache] && File.exists?(basedir+'.cache')
57
+ cache=Marshal.restore(File.open(basedir+'.cache','r'))
58
+ ok=Digest::MD5.hexdigest(content)==Digest::MD5.hexdigest(cache[:content])
59
+ abridged_conf.each do |k,v|
60
+ # puts (abridged_conf[k]==cache[:conf][k]).inspect
61
+ # puts (abridged_conf[k]).inspect
62
+ # puts (cache[:conf][k]).inspect
63
+ # puts "-_-_-_-_"
64
+ ok&&=abridged_conf[k]==cache[:conf][k]
65
+ end
66
+ end
49
67
  #puts content.size
68
+ if options[:cache] && ok
69
+ puts "Using cache file"
70
+ doc=cache[:doc]
71
+ else
50
72
  doc=Parser.new(conf).parse(content)
73
+ end
74
+ File.open(basedir+'.cache','w') do |e|
75
+ Marshal.dump({:url => url,:conf => abridged_conf, :content => content, :doc => doc},e)
76
+ end
51
77
  puts doc.toc.to_yaml
52
78
  if options[:preview]
53
79
  page=File.join(Dir.tmpdir(),Digest::MD5.hexdigest(url.to_s))+'.html'
data/lib/conf.rb CHANGED
@@ -21,5 +21,9 @@ module HTML2FB
21
21
  def [](x)
22
22
  @conf[x]
23
23
  end
24
+
25
+ def to_h
26
+ @conf
27
+ end
24
28
  end
25
29
  end
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Html2Feedbooks
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 10
9
- version: 1.0.10
4
+ version: 1.1.0
10
5
  platform: ruby
11
6
  authors:
12
7
  - Benoit Larroque
@@ -19,59 +14,44 @@ default_executable: html2fb.rb
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: hpricot
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
24
20
  requirements:
25
21
  - - ">="
26
22
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 8
30
- - 1
31
23
  version: 0.8.1
32
- type: :runtime
33
- version_requirements: *id001
24
+ version:
34
25
  - !ruby/object:Gem::Dependency
35
26
  name: htmlentities
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
38
30
  requirements:
39
31
  - - ">="
40
32
  - !ruby/object:Gem::Version
41
- segments:
42
- - 4
43
- - 2
44
- - 1
45
33
  version: 4.2.1
46
- type: :runtime
47
- version_requirements: *id002
34
+ version:
48
35
  - !ruby/object:Gem::Dependency
49
36
  name: launchy
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
52
40
  requirements:
53
41
  - - ">="
54
42
  - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- - 3
58
43
  version: "0.3"
59
- type: :runtime
60
- version_requirements: *id003
44
+ version:
61
45
  - !ruby/object:Gem::Dependency
62
46
  name: progressbar
63
- prerelease: false
64
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
65
50
  requirements:
66
51
  - - ">="
67
52
  - !ruby/object:Gem::Version
68
- segments:
69
- - 0
70
- - 0
71
- - 3
72
53
  version: 0.0.3
73
- type: :runtime
74
- version_requirements: *id004
54
+ version:
75
55
  description: Html2Feedbooks is script to automate basic publishing on feedbooks.com
76
56
  email: zeta dot ben at gmail dot com
77
57
  executables:
@@ -103,20 +83,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
83
  requirements:
104
84
  - - ">="
105
85
  - !ruby/object:Gem::Version
106
- segments:
107
- - 0
108
86
  version: "0"
87
+ version:
109
88
  required_rubygems_version: !ruby/object:Gem::Requirement
110
89
  requirements:
111
90
  - - ">="
112
91
  - !ruby/object:Gem::Version
113
- segments:
114
- - 0
115
92
  version: "0"
93
+ version:
116
94
  requirements: []
117
95
 
118
96
  rubyforge_project:
119
- rubygems_version: 1.3.6
97
+ rubygems_version: 1.3.5
120
98
  signing_key:
121
99
  specification_version: 3
122
100
  summary: Html2Feedbooks is script to automate basic publishing on feedbooks.com