better error message when searching comments with metatags

This commit is contained in:
albert
2013-03-02 20:55:46 -05:00
parent c6c1da5de0
commit 43a32efdc5
3 changed files with 26 additions and 4 deletions

View File

@@ -2,7 +2,8 @@ class CommentsController < ApplicationController
respond_to :html, :xml, :json
before_filter :member_only, :only => [:update, :create, :edit, :destroy]
rescue_from User::PrivilegeError, :with => "static/access_denied"
rescue_from ActiveRecord::StatementInvalid, :with => :search_error
def index
if params[:group_by] == "comment"
index_by_comment
@@ -90,4 +91,16 @@ private
raise User::PrivilegeError
end
end
protected
def search_error(e)
if e.message =~ /syntax error in tsquery/
@error_message = "Meta-tags are not supported in comment searches by tag"
render :template => "static/error", :status => 500
else
@exception = e
render :template => "static/error", :status => 500
end
end
end

View File

@@ -42,12 +42,21 @@ module PostSets
raise SearchError.new("Upgrade your account to search more than two tags at once")
end
timeout = 3000
if tag_array.any? {|x| x =~ /^source:.*\*.*pixiv/}
raise SearchError.new("Your search took too long to execute and was canceled")
timeout = 300
end
@posts ||= begin
temp = ::Post.tag_match(tag_string).paginate(page, :count => ::Post.fast_count(tag_string), :limit => per_page)
temp = ::Post.with_timeout(500, nil) do
::Post.tag_match(tag_string).paginate(page, :count => ::Post.fast_count(tag_string), :limit => per_page)
end
if temp.nil?
raise SearchError.new("Your search took too long to execute and was canceled")
end
temp.all
temp
end

View File

@@ -7,7 +7,7 @@
<%= search_field "body_matches", :label => "Body" %>
<%= search_field "creator_name", :label => "User" %>
<%= search_field "post_tags_match", :label => "Tags" %>
<%= search_field "post_tags_match", :label => "Tags", :hint => "Meta-tags not supported" %>
<%= submit_tag "Search" %>
<% end %>
</div>