Fix planet feed reader script
This commit is contained in:
parent
d7f6b0e503
commit
18ef9d106d
1 changed files with 18 additions and 11 deletions
|
|
@ -7,6 +7,7 @@ require 'bundler/setup'
|
||||||
require 'yaml'
|
require 'yaml'
|
||||||
require 'feedjira'
|
require 'feedjira'
|
||||||
|
|
||||||
|
|
||||||
def getBlogroll(blogroll_file)
|
def getBlogroll(blogroll_file)
|
||||||
blogroll_raw = YAML.load_file(blogroll_file)
|
blogroll_raw = YAML.load_file(blogroll_file)
|
||||||
blogroll = { }
|
blogroll = { }
|
||||||
|
|
@ -33,22 +34,28 @@ blogroll = getBlogroll(blogroll_file)
|
||||||
posturls = blogposts['blogposts'].map { |post| post['url'] }
|
posturls = blogposts['blogposts'].map { |post| post['url'] }
|
||||||
|
|
||||||
# Read feed
|
# Read feed
|
||||||
feeds = Feedjira::Feed.fetch_and_parse(blogroll.keys)
|
#feeds = blogroll.keys.map { |url| Feedjira::Feed.fetch_and_parse(url) }
|
||||||
|
|
||||||
# Add feed data
|
# Read feeds, add feed data
|
||||||
feeds.each do |feed,data|
|
blogroll.keys.each do |url|
|
||||||
data.entries.each do |posting|
|
begin
|
||||||
|
f = Feedjira::Feed.fetch_and_parse(url)
|
||||||
|
f.entries.each do |posting|
|
||||||
if !posturls.include?(posting.url)
|
if !posturls.include?(posting.url)
|
||||||
postdata = { }
|
postdata = { }
|
||||||
postdata['user'] = blogroll[feed]
|
postdata['user'] = blogroll[url]
|
||||||
postdata['date'] = posting.published
|
postdata['date'] = posting.published
|
||||||
postdata['title'] = posting.title
|
postdata['title'] = posting.title
|
||||||
postdata['url'] = posting.url
|
postdata['url'] = posting.url
|
||||||
blogposts['blogposts'] << postdata
|
blogposts['blogposts'] << postdata
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
rescue StandardError => err
|
||||||
|
puts "Unable to parse #{url}: #{err}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# Sort, limit list
|
# Sort, limit list
|
||||||
blogposts['blogposts'].sort! do |a,b|
|
blogposts['blogposts'].sort! do |a,b|
|
||||||
if (b['date'] <=> a['date'])==0
|
if (b['date'] <=> a['date'])==0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue