fixes #1149
This commit is contained in:
@@ -157,6 +157,8 @@ class PostQueryBuilder
|
|||||||
if q[:source]
|
if q[:source]
|
||||||
if q[:source] == "none%"
|
if q[:source] == "none%"
|
||||||
relation = relation.where("(posts.source = '' OR posts.source IS NULL)")
|
relation = relation.where("(posts.source = '' OR posts.source IS NULL)")
|
||||||
|
elsif q[:source] == "http%"
|
||||||
|
relation = relation.where("(posts.source like ?)", "http%")
|
||||||
elsif q[:source] =~ /^%\.?pixiv(?:\.net(?:\/img)?)?(?:%\/|(?=%$))(.+)$/
|
elsif q[:source] =~ /^%\.?pixiv(?:\.net(?:\/img)?)?(?:%\/|(?=%$))(.+)$/
|
||||||
relation = relation.where("SourcePattern(posts.source) LIKE ? ESCAPE E'\\\\'", "pixiv/" + $1)
|
relation = relation.where("SourcePattern(posts.source) LIKE ? ESCAPE E'\\\\'", "pixiv/" + $1)
|
||||||
has_constraints!
|
has_constraints!
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ class Artist < ActiveRecord::Base
|
|||||||
Artist.new.tap do |artist|
|
Artist.new.tap do |artist|
|
||||||
if params[:name]
|
if params[:name]
|
||||||
artist.name = params[:name]
|
artist.name = params[:name]
|
||||||
post = Post.tag_match("source:http* #{artist.name}").first
|
post = Post.tag_match("source:http #{artist.name}").first
|
||||||
unless post.nil? || post.source.blank?
|
unless post.nil? || post.source.blank?
|
||||||
artist.url_string = post.source
|
artist.url_string = post.source
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -935,10 +935,10 @@ class PostTest < ActiveSupport::TestCase
|
|||||||
should "return posts for a pixiv source search" do
|
should "return posts for a pixiv source search" do
|
||||||
url = "http://i1.pixiv.net/img123/img/artist-name/789.png"
|
url = "http://i1.pixiv.net/img123/img/artist-name/789.png"
|
||||||
post = FactoryGirl.create(:post, :source => url)
|
post = FactoryGirl.create(:post, :source => url)
|
||||||
assert_equal(1, Post.tag_match("source:pixiv/artist-name/*").count)
|
|
||||||
assert_equal(0, Post.tag_match("source:pixiv/artist-fake/*").count)
|
|
||||||
assert_equal(1, Post.tag_match("source:*.pixiv.net/img*/artist-name/*").count)
|
assert_equal(1, Post.tag_match("source:*.pixiv.net/img*/artist-name/*").count)
|
||||||
assert_equal(0, Post.tag_match("source:*.pixiv.net/img*/artist-fake/*").count)
|
assert_equal(0, Post.tag_match("source:*.pixiv.net/img*/artist-fake/*").count)
|
||||||
|
assert_equal(1, Post.tag_match("source:pixiv/artist-name/*").count)
|
||||||
|
assert_equal(0, Post.tag_match("source:pixiv/artist-fake/*").count)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "return posts for a pixiv id search (type 1)" do
|
should "return posts for a pixiv id search (type 1)" do
|
||||||
|
|||||||
Reference in New Issue
Block a user