clean up previous commit that adds answer metadata
This commit is contained in:
parent
4e00693c76
commit
54dc2b06ca
67
plugin.rb
67
plugin.rb
|
@ -213,22 +213,32 @@ SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
def before_head_close_meta(controller)
|
def before_head_close_meta(controller)
|
||||||
return "" if not controller.instance_of? TopicsController
|
return "" if !controller.instance_of? TopicsController
|
||||||
topic = Topic.with_deleted.where(id: controller.params[:topic_id]).first
|
|
||||||
return "" if not controller.guardian.allow_accepted_answers_on_category?(topic.category_id)
|
topic_view = controller.instance_variable_get(:@topic_view)
|
||||||
first_post = topic.first_post
|
topic = topic_view&.topic
|
||||||
question_json = {
|
return "" if !topic
|
||||||
'@type' => 'Question',
|
# note, we have canonicals so we only do this for page 1 at the moment
|
||||||
'name' => topic&.title,
|
# it can get confusing to have this on every page and it should make page 1
|
||||||
'text' => first_post&.raw,
|
# a bit more prominent + cut down on pointless work
|
||||||
'upvoteCount' => first_post&.like_count,
|
return "" if topic_view.post_number != 1
|
||||||
'answerCount' => topic&.reply_count,
|
return "" if !controller.guardian.allow_accepted_answers_on_category?(topic.category_id)
|
||||||
'dateCreated' => first_post&.created_at,
|
|
||||||
'author' => {
|
if first_post = topic_view.posts&.first
|
||||||
'@type' => 'Person',
|
question_json = {
|
||||||
'name' => first_post&.user&.username
|
'@type' => 'Question',
|
||||||
|
'name' => topic.title,
|
||||||
|
'text' => first_post.excerpt,
|
||||||
|
'upvoteCount' => first_post.like_count,
|
||||||
|
'answerCount' => topic.reply_count,
|
||||||
|
'dateCreated' => topic.created_at,
|
||||||
|
'author' => {
|
||||||
|
'@type' => 'Person',
|
||||||
|
'name' => topic.user&.name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
end
|
||||||
|
|
||||||
page_json = {
|
page_json = {
|
||||||
'@type' => 'QAPage',
|
'@type' => 'QAPage',
|
||||||
'name' => topic&.title,
|
'name' => topic&.title,
|
||||||
|
@ -236,37 +246,24 @@ SQL
|
||||||
if accepted_answer = Post.find_by(id: topic.custom_fields["accepted_answer_post_id"])
|
if accepted_answer = Post.find_by(id: topic.custom_fields["accepted_answer_post_id"])
|
||||||
question_json[:acceptedAnswer] = {
|
question_json[:acceptedAnswer] = {
|
||||||
'@type' => 'Answer',
|
'@type' => 'Answer',
|
||||||
'text' => accepted_answer&.raw,
|
'text' => accepted_answer.excerpt,
|
||||||
'upvoteCount' => accepted_answer&.like_count,
|
'upvoteCount' => accepted_answer.like_count,
|
||||||
'dateCreated' => accepted_answer&.created_at,
|
'dateCreated' => accepted_answer.created_at,
|
||||||
'url' => accepted_answer&.full_url,
|
'url' => accepted_answer.full_url,
|
||||||
'author' => {
|
'author' => {
|
||||||
'@type' => 'Person',
|
'@type' => 'Person',
|
||||||
'name' => accepted_answer&.user&.username
|
'name' => accepted_answer.user&.username
|
||||||
}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
suggested_answer = Post.find_by(topic_id: topic.id, post_number: controller.params[:post_number])
|
|
||||||
if suggested_answer && suggested_answer.post_number != 1
|
|
||||||
question_json[:suggestedAnswer] = {
|
|
||||||
'@type' => 'Answer',
|
|
||||||
'text' => suggested_answer&.raw,
|
|
||||||
'upvoteCount' => suggested_answer&.like_count,
|
|
||||||
'dateCreated' => suggested_answer&.created_at,
|
|
||||||
'url' => suggested_answer&.full_url,
|
|
||||||
'author' => {
|
|
||||||
'@type' => 'Person',
|
|
||||||
'name' => suggested_answer&.user&.username
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
['<script type="application/ld+json">', MultiJson.dump(
|
['<script type="application/ld+json">', MultiJson.dump(
|
||||||
'@context' => 'http://schema.org',
|
'@context' => 'http://schema.org',
|
||||||
'@graph' => [
|
'@graph' => [
|
||||||
page_json,
|
page_json,
|
||||||
question_json,
|
question_json,
|
||||||
]
|
]
|
||||||
).html_safe, '</script>'].join("")
|
).gsub("</", "<\\/").html_safe, '</script>'].join("")
|
||||||
end
|
end
|
||||||
|
|
||||||
register_html_builder('server:before-head-close-crawler') do |controller|
|
register_html_builder('server:before-head-close-crawler') do |controller|
|
||||||
|
|
Loading…
Reference in New Issue