added humanized tag strings
This commit is contained in:
@@ -455,8 +455,32 @@ class Post < ActiveRecord::Base
|
||||
tag_string =~ /(?:^| )#{tag}(?:$| )/
|
||||
end
|
||||
|
||||
def tag_categories
|
||||
@tag_categories ||= Tag.categories_for(tag_array)
|
||||
end
|
||||
|
||||
def copyright_tags
|
||||
typed_tags("copyright")
|
||||
end
|
||||
|
||||
def character_tags
|
||||
typed_tags("character")
|
||||
end
|
||||
|
||||
def artist_tags
|
||||
typed_tags("artist")
|
||||
end
|
||||
|
||||
def typed_tags(name)
|
||||
@typed_tags ||= {}
|
||||
@typed_tags[name] ||= begin
|
||||
tag_array.select do |tag|
|
||||
tag_categories[tag] == Danbooru.config.tag_category_mapping[name]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def essential_tag_string
|
||||
tag_categories = Tag.categories_for(tag_array)
|
||||
tag_array.each do |tag|
|
||||
if tag_categories[tag] == Danbooru.config.tag_category_mapping["copyright"]
|
||||
return tag
|
||||
@@ -852,6 +876,9 @@ class Post < ActiveRecord::Base
|
||||
def reload(options = nil)
|
||||
super
|
||||
reset_tag_array_cache
|
||||
@tag_categories = nil
|
||||
@typed_tags = nil
|
||||
self
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -27,6 +27,30 @@ class PostPresenter < Presenter
|
||||
PostPresenter.preview(@post)
|
||||
end
|
||||
|
||||
def humanized_tag_string
|
||||
@post.tag_string.split(/ /).join(", ").tr("_", " ")
|
||||
end
|
||||
|
||||
def humanized_essential_tag_string
|
||||
string = []
|
||||
|
||||
if @post.character_tags.any?
|
||||
string << @post.character_tags.slice(0, 5).to_sentence
|
||||
end
|
||||
|
||||
if @post.copyright_tags.any?
|
||||
string << "from"
|
||||
string << @post.copyright_tags.slice(0, 5).to_sentence
|
||||
end
|
||||
|
||||
if @post.artist_tags.any?
|
||||
string << "by"
|
||||
string << @post.artist_tags.to_sentence
|
||||
end
|
||||
|
||||
string.join(" ").tr("_", " ")
|
||||
end
|
||||
|
||||
def image_html(template)
|
||||
return template.content_tag("p", "This image was deleted.") if @post.is_deleted? && !CurrentUser.user.is_janitor?
|
||||
return template.content_tag("p", "You need a privileged account to see this image.") if !Danbooru.config.can_user_see_post?(CurrentUser.user, @post)
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
<meta name="post-is-deleted" content="<%= @post.is_deleted? %>">
|
||||
<meta name="post-is-flagged" content="<%= @post.is_flagged? %>">
|
||||
<meta name="config-large-width" content="<%= Danbooru.config.large_image_width %>">
|
||||
<meta property="og:title" content="Check out this image on <%= Danbooru.config.app_name %>: <%= @post.essential_tag_string %>">
|
||||
<meta property="og:description" content="Check out this image on <%= Danbooru.config.app_name %>: <%= @post.essential_tag_string %>">
|
||||
<meta property="og:title" content="<%= @post.presenter.humanized_essential_tag_string %> - <%= Danbooru.config.app_name %>">
|
||||
<meta property="og:description" content="<%= @post.presenter.humanized_tag_string %> - <%= Danbooru.config.app_name %>">
|
||||
<meta property="og:image" content="<%= @post.preview_file_url %>">
|
||||
<% end %>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user