diff options
author | Yorhel <git@yorhel.nl> | 2009-07-05 15:48:38 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-07-05 15:52:47 +0200 |
commit | ba1d4aed3e9b081a55d306c96c134eee5117284b (patch) | |
tree | ba33209f9e0762b3783e6e73e4750936c8ce1534 /lib/VNDB/DB/VN.pm | |
parent | 58e7d6f87e7533e03606b06c1be80c59bcba92bc (diff) |
Added spoiler options for tag filters on VN search
Diffstat (limited to 'lib/VNDB/DB/VN.pm')
-rw-r--r-- | lib/VNDB/DB/VN.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index 5058c367..5228a371 100644 --- a/lib/VNDB/DB/VN.pm +++ b/lib/VNDB/DB/VN.pm @@ -32,7 +32,9 @@ sub dbVNGet { $o{platform} && @{$o{platform}} ? ( '('.join(' OR ', map "v.c_platforms ILIKE '%%$_%%'", @{$o{platform}}).')' => 1 ) : (), $o{tags_include} && @{$o{tags_include}} ? ( - 'v.id IN(SELECT vid FROM tags_vn_bayesian WHERE tag IN(!l) GROUP BY vid HAVING COUNT(tag) = ?)' => [ $o{tags_include}, $#{$o{tags_include}}+1 ]) : (), + 'v.id IN(SELECT vid FROM tags_vn_bayesian WHERE tag IN(!l) AND spoiler <= ? GROUP BY vid HAVING COUNT(tag) = ?)', + [ $o{tags_include}[1], $o{tags_include}[0], $#{$o{tags_include}[1]}+1 ] + ) : (), # don't fetch hidden items unless we ask for an ID !$o{id} && !$o{rev} ? ( 'v.hidden = FALSE' => 0 ) : (), @@ -75,7 +77,7 @@ sub dbVNGet { 'JOIN relgraph rg ON rg.id = v.rgraph' : (), ); - my $tag_ids = $o{tags_include} && join ',', @{$o{tags_include}}; + my $tag_ids = $o{tags_include} && join ',', @{$o{tags_include}[1]}; my @select = ( qw|v.id v.locked v.hidden v.c_released v.c_languages v.c_platforms vr.title vr.original v.rgraph v.c_popularity|, 'vr.id AS cid', $o{what} =~ /extended/ ? ( @@ -85,7 +87,7 @@ sub dbVNGet { $o{what} =~ /relgraph/ ? 'rg.cmap' : (), $o{what} =~ /ranking/ ? '(SELECT COUNT(*)+1 FROM vn iv WHERE iv.hidden = false AND iv.c_popularity > v.c_popularity) AS ranking' : (), $tag_ids ? - qq|(SELECT AVG(tvb.rating) FROM tags_vn_bayesian tvb WHERE tvb.tag IN($tag_ids) AND tvb.vid = v.id GROUP BY tvb.vid) AS tagscore| : (), + qq|(SELECT AVG(tvb.rating) FROM tags_vn_bayesian tvb WHERE tvb.tag IN($tag_ids) AND tvb.vid = v.id AND spoiler <= $o{tags_include}[0] GROUP BY tvb.vid) AS tagscore| : (), ); my($r, $np) = $self->dbPage(\%o, q| |