Move tumblr post formatting into a separate helper class

This commit is contained in:
Andreas Nedbal 2021-12-26 22:04:46 +01:00
parent b64b039d21
commit ed64a0990e
2 changed files with 40 additions and 15 deletions

View File

@ -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

View File

@ -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'
) )