Move tumblr post formatting into a separate helper class
This commit is contained in:
parent
b64b039d21
commit
ed64a0990e
|
@ -0,0 +1,37 @@
|
||||||
|
require 'cgi'
|
||||||
|
|
||||||
|
module SocialHelper::TumblrMethods
|
||||||
|
include Rails.application.routes.url_helpers
|
||||||
|
|
||||||
|
def tumblr_title(answer)
|
||||||
|
asker = if answer.question.author_is_anonymous?
|
||||||
|
APP_CONFIG['anonymous_name']
|
||||||
|
else
|
||||||
|
answer.question.user.profile.display_name.blank? ? answer.question.user.screen_name : answer.question.user.profile.display_name
|
||||||
|
end
|
||||||
|
|
||||||
|
"#{asker} asked: #{answer.question.content}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def tumblr_body(answer)
|
||||||
|
answer_url = show_user_answer_url(
|
||||||
|
id: answer.id,
|
||||||
|
username: answer.user.screen_name,
|
||||||
|
host: APP_CONFIG['hostname'],
|
||||||
|
protocol: (APP_CONFIG['https'] ? :https : :http)
|
||||||
|
)
|
||||||
|
|
||||||
|
"#{answer.content}\n\n[Smile or comment on the answer here](#{answer_url})"
|
||||||
|
end
|
||||||
|
|
||||||
|
def tumblr_share_url(answer)
|
||||||
|
answer_url = show_user_answer_url(
|
||||||
|
id: answer.id,
|
||||||
|
username: answer.user.screen_name,
|
||||||
|
host: APP_CONFIG['hostname'],
|
||||||
|
protocol: (APP_CONFIG['https'] ? :https : :http)
|
||||||
|
)
|
||||||
|
|
||||||
|
"https://www.tumblr.com/widgets/share/tool?shareSource=legacy&posttype=text&title=#{CGI.escape(tumblr_title(answer))}&url=#{CGI.escape(answer_url)}&caption=&content=#{CGI.escape(tumblr_body(answer))}"
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,6 +1,5 @@
|
||||||
class Services::Tumblr < Service
|
class Services::Tumblr < Service
|
||||||
include Rails.application.routes.url_helpers
|
include SocialHelper::TumblrMethods
|
||||||
include MarkdownHelper
|
|
||||||
|
|
||||||
def provider
|
def provider
|
||||||
"tumblr"
|
"tumblr"
|
||||||
|
@ -23,21 +22,10 @@ class Services::Tumblr < Service
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_post(answer)
|
def create_post(answer)
|
||||||
answer_url = show_user_answer_url(
|
|
||||||
id: answer.id,
|
|
||||||
username: answer.user.screen_name,
|
|
||||||
host: APP_CONFIG['hostname'],
|
|
||||||
protocol: (APP_CONFIG['https'] ? :https : :http)
|
|
||||||
)
|
|
||||||
asker = if answer.question.author_is_anonymous?
|
|
||||||
APP_CONFIG['anonymous_name']
|
|
||||||
else
|
|
||||||
answer.question.user.profile.display_name.blank? ? answer.question.user.screen_name : answer.question.user.profile.display_name
|
|
||||||
end
|
|
||||||
client.text(
|
client.text(
|
||||||
self.uid,
|
self.uid,
|
||||||
title: "#{asker} asked: #{answer.question.content}",
|
title: tumblr_title(answer),
|
||||||
body: "#{answer.content}\n\n[Smile or comment on the answer here](#{answer_url})",
|
body: tumblr_body(answer),
|
||||||
format: 'markdown',
|
format: 'markdown',
|
||||||
tweet: 'off'
|
tweet: 'off'
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue