added humanized tag strings
This commit is contained in:
@@ -455,8 +455,32 @@ class Post < ActiveRecord::Base
|
|||||||
tag_string =~ /(?:^| )#{tag}(?:$| )/
|
tag_string =~ /(?:^| )#{tag}(?:$| )/
|
||||||
end
|
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
|
def essential_tag_string
|
||||||
tag_categories = Tag.categories_for(tag_array)
|
|
||||||
tag_array.each do |tag|
|
tag_array.each do |tag|
|
||||||
if tag_categories[tag] == Danbooru.config.tag_category_mapping["copyright"]
|
if tag_categories[tag] == Danbooru.config.tag_category_mapping["copyright"]
|
||||||
return tag
|
return tag
|
||||||
@@ -852,6 +876,9 @@ class Post < ActiveRecord::Base
|
|||||||
def reload(options = nil)
|
def reload(options = nil)
|
||||||
super
|
super
|
||||||
reset_tag_array_cache
|
reset_tag_array_cache
|
||||||
|
@tag_categories = nil
|
||||||
|
@typed_tags = nil
|
||||||
|
self
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,30 @@ class PostPresenter < Presenter
|
|||||||
PostPresenter.preview(@post)
|
PostPresenter.preview(@post)
|
||||||
end
|
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)
|
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", "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)
|
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-deleted" content="<%= @post.is_deleted? %>">
|
||||||
<meta name="post-is-flagged" content="<%= @post.is_flagged? %>">
|
<meta name="post-is-flagged" content="<%= @post.is_flagged? %>">
|
||||||
<meta name="config-large-width" content="<%= Danbooru.config.large_image_width %>">
|
<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:title" content="<%= @post.presenter.humanized_essential_tag_string %> - <%= Danbooru.config.app_name %>">
|
||||||
<meta property="og:description" content="Check out this image on <%= Danbooru.config.app_name %>: <%= @post.essential_tag_string %>">
|
<meta property="og:description" content="<%= @post.presenter.humanized_tag_string %> - <%= Danbooru.config.app_name %>">
|
||||||
<meta property="og:image" content="<%= @post.preview_file_url %>">
|
<meta property="og:image" content="<%= @post.preview_file_url %>">
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user