Sha256: 3013f38acae50ffb3867f896cde31d7e1e87c4512dc7b93c668b926c1d308003

Contents?: true

Size: 1.19 KB

Versions: 20

Compression:

Stored size: 1.19 KB

Contents

class Link < ActiveRecord::Base
  include SocialStream::Models::Object

  validates_presence_of :url

  attr_accessor :loaded

  before_create :check_loaded

  define_index do
    activity_object_index

    indexes url
  end

  def fill linkser_object
    self.title = linkser_object.title if linkser_object.title
    self.description = linkser_object.description if linkser_object.description
    self.url = linkser_object.last_url
    r = linkser_object.resource
    if r and r.type and r.url      
      self.callback_url = r.url
    end
    self.width  = r.width  if r and r.width
    self.height = r.height if r and r.height
    if linkser_object.ogp and linkser_object.ogp.image
      self.image = linkser_object.ogp.image
    elsif linkser_object.images and linkser_object.images.first
      self.image = linkser_object.images.first.url
    end
  end

  def check_loaded
    return if loaded.present?
    begin
      o = Linkser.parse self.url, {:max_images => 1}

      if o.is_a? Linkser::Objects::HTML
        self.fill o
      end
    rescue
    end
  end

  def improved_callback_url
    if callback_url =~ /youtube\.com\/v\/.+/
      callback_url + '&autoplay=1'
    else
      callback_url
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
social_stream-2.2.2 linkser/app/models/link.rb
social_stream-linkser-2.2.1 app/models/link.rb
social_stream-2.2.1 linkser/app/models/link.rb
social_stream-2.2.0 linkser/app/models/link.rb
social_stream-linkser-2.2.0 app/models/link.rb
social_stream-2.1.1 linkser/app/models/link.rb
social_stream-2.1.0 linkser/app/models/link.rb
social_stream-linkser-2.1.0 app/models/link.rb
social_stream-2.0.4 linkser/app/models/link.rb
social_stream-2.0.3 linkser/app/models/link.rb
social_stream-2.0.2 linkser/app/models/link.rb
social_stream-2.0.1 linkser/app/models/link.rb
social_stream-2.0.0 linkser/app/models/link.rb
social_stream-linkser-2.0.0 app/models/link.rb
social_stream-2.0.0.beta3 linkser/app/models/link.rb
social_stream-linkser-2.0.0.beta3 app/models/link.rb
social_stream-2.0.0.beta2 linkser/app/models/link.rb
social_stream-linkser-2.0.0.beta2 app/models/link.rb
social_stream-2.0.0.beta1 linkser/app/models/link.rb
social_stream-linkser-2.0.0.beta1 app/models/link.rb