fixes #669
This commit is contained in:
@@ -8,7 +8,7 @@ class Post < ActiveRecord::Base
|
|||||||
after_destroy :delete_remote_files
|
after_destroy :delete_remote_files
|
||||||
after_save :create_version
|
after_save :create_version
|
||||||
after_save :update_parent_on_save
|
after_save :update_parent_on_save
|
||||||
after_save :apply_metatags, :on => :create
|
after_save :apply_post_metatags, :on => :create
|
||||||
before_save :merge_old_tags
|
before_save :merge_old_tags
|
||||||
before_save :normalize_tags
|
before_save :normalize_tags
|
||||||
before_save :create_tags
|
before_save :create_tags
|
||||||
@@ -385,22 +385,17 @@ class Post < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def filter_metatags(tags)
|
def filter_metatags(tags)
|
||||||
@metatags, tags = tags.partition {|x| x =~ /\A(?:-pool|pool|rating|fav|parent):/}
|
@pre_metatags, tags = tags.partition {|x| x =~ /\A(?:rating|parent):/}
|
||||||
apply_metatags
|
@post_metatags, tags = tags.partition {|x| x =~ /\A(?:-pool|pool|fav):/}
|
||||||
|
apply_pre_metatags
|
||||||
return tags
|
return tags
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply_metatags
|
def apply_post_metatags
|
||||||
return unless @metatags.is_a?(Array)
|
return unless @post_metatags
|
||||||
|
|
||||||
@metatags.each do |tag|
|
@post_metatags.each do |tag|
|
||||||
case tag
|
case tag
|
||||||
when /^parent:none$/, /^parent:0$/
|
|
||||||
self.parent_id = nil
|
|
||||||
|
|
||||||
when /^parent:(\d+)$/
|
|
||||||
self.parent_id = $1.to_i
|
|
||||||
|
|
||||||
when /^-pool:(\d+)$/
|
when /^-pool:(\d+)$/
|
||||||
pool = Pool.find_by_id($1.to_i)
|
pool = Pool.find_by_id($1.to_i)
|
||||||
remove_pool!(pool) if pool
|
remove_pool!(pool) if pool
|
||||||
@@ -420,15 +415,29 @@ class Post < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
add_pool!(pool) if pool
|
add_pool!(pool) if pool
|
||||||
|
|
||||||
when /^rating:([qse])/i
|
|
||||||
self.rating = $1.downcase
|
|
||||||
|
|
||||||
when /^fav:(.+)$/
|
when /^fav:(.+)$/
|
||||||
add_favorite!(CurrentUser.user)
|
add_favorite!(CurrentUser.user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def apply_pre_metatags
|
||||||
|
return unless @pre_metatags
|
||||||
|
|
||||||
|
@pre_metatags.each do |tag|
|
||||||
|
case tag
|
||||||
|
when /^parent:none$/, /^parent:0$/
|
||||||
|
self.parent_id = nil
|
||||||
|
|
||||||
|
when /^parent:(\d+)$/
|
||||||
|
self.parent_id = $1.to_i
|
||||||
|
|
||||||
|
when /^rating:([qse])/i
|
||||||
|
self.rating = $1.downcase
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def has_tag?(tag)
|
def has_tag?(tag)
|
||||||
tag_string =~ /(?:^| )#{tag}(?:$| )/
|
tag_string =~ /(?:^| )#{tag}(?:$| )/
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user