planet 0.4.1 → 0.5.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3b41f2c2e719bea8b0245cd84911d31287a40df4
4
+ data.tar.gz: af039754a9c06fcbbfabf412253ac85351c2239d
5
+ SHA512:
6
+ metadata.gz: 47e0a708f32784cf166372fbd7e73558bdb0b3f29de3c5740700afdddf387491d19d411ac1e1c02bd78300cf603160b3bee2ec4ff8e13c905c76104efc304c09
7
+ data.tar.gz: 3f52250663f7a55612edf7d7c77c9b9b0573a8168bad9a2f8d1f274f3a00ca03eaf718d44e2d10f79895ec98ba49bc07c679d76b696514cfb8763a46ccc43c02
data/bin/planet CHANGED
@@ -151,6 +151,7 @@ layout: post
151
151
  planet:
152
152
  posts_directory: source/_posts/
153
153
  templates_directory: source/_layouts/
154
+ whitelisted_tags: []
154
155
 
155
156
  blogs:
156
157
  # Bare minimum to get it working
@@ -5,12 +5,13 @@ require 'planet/importer'
5
5
 
6
6
  class Planet
7
7
 
8
- attr_accessor :config, :blogs
8
+ attr_accessor :config, :blogs, :whitelisted_tags
9
9
 
10
10
  def initialize(config_file_path)
11
11
  config_file = read_config_file(config_file_path)
12
12
  self.config = config_file[:planet]
13
13
  self.blogs = config_file[:blogs]
14
+ self.whitelisted_tags = self.config['whitelisted_tags']
14
15
  end
15
16
 
16
17
  def posts
@@ -26,8 +26,12 @@ class Planet
26
26
  parser = self.type ? @parsers.get_parser(self.type) : @parsers.get_parser_for(self.feed)
27
27
 
28
28
  # parser instances should mimick Feedzirra interface
29
- feed = parser.fetch_and_parse(self.feed)
29
+ parser.fetch_and_parse(self.feed,
30
+ :on_success => lambda { |url, feed| on_fetch_success(feed) },
31
+ :on_failure => lambda { |url, response_code, response_header, response_body| puts "\t=> Failed to fetch #{url} with response_code: #{response_code}" })
32
+ end
30
33
 
34
+ def on_fetch_success(feed)
31
35
  self.name ||= feed.title || 'the source'
32
36
  self.url ||= feed.url
33
37
 
@@ -36,6 +40,7 @@ class Planet
36
40
  end
37
41
 
38
42
  feed.entries.each do |entry|
43
+ next unless whitelisted?(entry)
39
44
  content = if entry.content
40
45
  self.sanitize_images(entry.content.strip)
41
46
  elsif entry.summary
@@ -69,5 +74,12 @@ class Planet
69
74
 
70
75
  html
71
76
  end
77
+
78
+ def whitelisted?(entry)
79
+ return true if self.planet.whitelisted_tags.empty?
80
+ result = !(entry.categories & self.planet.whitelisted_tags).empty?
81
+ puts "\t=> Ignored post titled: #{entry.title} with categories: [#{entry.categories.join(', ')}]" unless result
82
+ result
83
+ end
72
84
  end
73
85
  end
@@ -1,8 +1,8 @@
1
1
  class Planet
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 4
5
- PATCH = 1
4
+ MINOR = 5
5
+ PATCH = 0
6
6
 
7
7
  def self.to_s
8
8
  [MAJOR, MINOR, PATCH].join('.')
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: planet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pablo Astigarraga
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-18 00:00:00.000000000 Z
11
+ date: 2013-09-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: gli
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: feedzirra
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mustache
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: box
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description:
@@ -92,27 +83,26 @@ files:
92
83
  - lib/planet.rb
93
84
  homepage: http://github.com/pote/planet.rb
94
85
  licenses: []
86
+ metadata: {}
95
87
  post_install_message:
96
88
  rdoc_options: []
97
89
  require_paths:
98
90
  - lib
99
91
  - lib
100
92
  required_ruby_version: !ruby/object:Gem::Requirement
101
- none: false
102
93
  requirements:
103
- - - ! '>='
94
+ - - '>='
104
95
  - !ruby/object:Gem::Version
105
96
  version: '0'
106
97
  required_rubygems_version: !ruby/object:Gem::Requirement
107
- none: false
108
98
  requirements:
109
- - - ! '>='
99
+ - - '>='
110
100
  - !ruby/object:Gem::Version
111
101
  version: '0'
112
102
  requirements: []
113
103
  rubyforge_project:
114
- rubygems_version: 1.8.24
104
+ rubygems_version: 2.0.0
115
105
  signing_key:
116
- specification_version: 3
106
+ specification_version: 4
117
107
  summary: An rss/atom feed aggregator designed to work with Octopress/Jekyll
118
108
  test_files: []