Class: Feed
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Feed
- Includes:
- HTTParty
- Defined in:
- app/models/feed.rb
Overview
Schema Information
Table name: feeds
id :integer(4) not null, primary key
uri :string(2083)
display_uri :string(2083)
title :string(1000)
short_title :string(100)
description :text
tag_filter :string(1000)
top_tags :text
priority :integer(4) default(10)
status :integer(4) default(1)
last_requested_at :datetime
last_harvested_at :datetime
harvest_interval :integer(4) default(86400)
failed_requests :integer(4) default(0)
error_message :text
service_id :integer(4) default(0)
login :string(255)
password :string(255)
created_at :datetime
updated_at :datetime
entries_changed_at :datetime
harvested_from_display_uri :string(2083)
harvested_from_title :string(1000)
harvested_from_short_title :string(100)
entries_count :integer(4)
default_language_id :integer(4) default(0)
default_grain_size :string(255) default("unknown")
contributor_id :integer(4)
Class Method Summary collapse
-
.discover_feeds(uri) ⇒ Object
Looks for feeds from a given url.
-
.gather_information(uri) ⇒ Object
Gathers all available feed uris from the given uri and parses them into feed objects.
-
.make_feed(feed) ⇒ Object
Turns a feed from feedzirra into a muck feed.
Instance Method Summary collapse
-
#after_create ⇒ Object
named_scope :ready_to_harvest, lambda { |*args| { :conditions => [ “feeds.last_harvested_at < ?”, args.first || 1.day.ago.end_of_day ] } }.
-
#refresh_interval_hours ⇒ Object
harvest_interval is stored in seconds.
- #refresh_interval_hours=(interval) ⇒ Object
Class Method Details
.discover_feeds(uri) ⇒ Object
Looks for feeds from a given url
102 103 104 |
# File 'app/models/feed.rb', line 102 def self.discover_feeds(uri) Feedbag.find(uri) end |
.gather_information(uri) ⇒ Object
Gathers all available feed uris from the given uri and parses them into feed objects
84 85 86 87 88 89 90 91 |
# File 'app/models/feed.rb', line 84 def self.gather_information(uri) feeds = [] @available_feeds = discover_feeds(uri) @available_feeds.each do |feed| feeds << make_feed(Feedzirra::Feed.fetch_and_parse(feed.url)) end feeds end |
.make_feed(feed) ⇒ Object
Turns a feed from feedzirra into a muck feed
94 95 96 97 98 99 |
# File 'app/models/feed.rb', line 94 def self.make_feed(feed) Feed.new(:short_title => feed.title, :title => feed.title, :display_uri => feed.url, :uri => feed.feed_url) end |
Instance Method Details
#after_create ⇒ Object
named_scope :ready_to_harvest, lambda { |*args| { :conditions => [ “feeds.last_harvested_at < ?”, args.first || 1.day.ago.end_of_day ] } }
56 57 58 59 60 |
# File 'app/models/feed.rb', line 56 def after_create if GlobalConfig.inform_admin_of_global_feed && self.feed_parents.empty? RakerMailer.deliver_notification_feed_added(self) # Global feed. Email the admin to let them know a feed has been added end end |
#refresh_interval_hours ⇒ Object
harvest_interval is stored in seconds
63 64 65 66 67 68 69 70 71 |
# File 'app/models/feed.rb', line 63 def refresh_interval_hours if self.harvest_interval self.harvest_interval/3600 else 168 # Once a week # Looks like 168 = 24 * 7 (1 week) # harvest_interval is currently stored in seconds. I'm guessing it used to be stored in hours and this is a relic end end |
#refresh_interval_hours=(interval) ⇒ Object
73 74 75 |
# File 'app/models/feed.rb', line 73 def refresh_interval_hours=(interval) self.harvest_interval = interval + ":00:00" end |