diff options
author | Yorhel <git@yorhel.nl> | 2009-07-05 18:15:01 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-07-05 18:15:01 +0200 |
commit | d59124e057e3a10dac0a3a448f4503679810850c (patch) | |
tree | 970b2cb381656d6d635cbd4046f30ed685413e62 /lib/VNDB/DB/VN.pm | |
parent | ba1d4aed3e9b081a55d306c96c134eee5117284b (diff) |
Tag exclude filters on VN search
Diffstat (limited to 'lib/VNDB/DB/VN.pm')
-rw-r--r-- | lib/VNDB/DB/VN.pm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index 5228a371..76cacf70 100644 --- a/lib/VNDB/DB/VN.pm +++ b/lib/VNDB/DB/VN.pm @@ -9,7 +9,7 @@ use VNDB::Func 'gtintype'; our @EXPORT = qw|dbVNGet dbVNAdd dbVNEdit dbVNImageId dbVNCache dbScreenshotAdd dbScreenshotGet dbScreenshotRandom|; -# Options: id, rev, char, search, lang, platform, tags_include, results, page, order, what +# Options: id, rev, char, search, lang, platform, tags_include, tags_exclude, results, page, order, what # What: extended categories anime relations screenshots relgraph ranking changes sub dbVNGet { my($self, %o) = @_; @@ -35,6 +35,8 @@ sub dbVNGet { '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 ] ) : (), + $o{tags_exclude} && @{$o{tags_exclude}} ? ( + 'v.id NOT IN(SELECT vid FROM tags_vn_bayesian WHERE tag IN(!l))' => [ $o{tags_exclude} ] ) : (), # don't fetch hidden items unless we ask for an ID !$o{id} && !$o{rev} ? ( 'v.hidden = FALSE' => 0 ) : (), |