diaspora/app/models/service.rb
Ruxton 48b48470bc Service.delete_post now more generic, for future implementations
Service.delete_post now accepts post to be more generic and supports deleting post from any service that overrides delete_post(post)
2013-05-20 12:19:39 +08:00

46 lines
1.4 KiB
Ruby

# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
class Service < ActiveRecord::Base
include ActionView::Helpers::TextHelper
include MarkdownifyHelper
belongs_to :user
validates_uniqueness_of :uid, :scope => :type
def self.titles(service_strings)
service_strings.map{|s| "Services::#{s.titleize}"}
end
def public_message(post, length, url = "", always_include_post_url = true, markdown = false)
Rails.logger.info("Posting out to #{self.class}")
if ! markdown
post_text = strip_markdown(post.text(:plain_text => true))
else
post_text = post.text(:plain_text => true)
end
if post_text.length <= length && ! always_include_post_url
# include url to diaspora when posting only when it exceeds length
url = ""
space_for_url = 0
else
url = " " + Rails.application.routes.url_helpers.short_post_url(post, :protocol => AppConfig.pod_uri.scheme, :host => AppConfig.pod_uri.authority)
space_for_url = 21 + 1
end
truncated = truncate(post_text, :length => (length - space_for_url))
truncated = "#{truncated}#{url}"
return truncated
end
def profile_photo_url
nil
end
def delete_post(post)
#don't do anything (should be overriden by service extensions)
end
end
require 'services/facebook'
require 'services/twitter'