diff options
Diffstat (limited to 'lib/VNDB/DB/VN.pm')
-rw-r--r-- | lib/VNDB/DB/VN.pm | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index 4f04edd5..d0a38ced 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, cati, cate, lang, platform, results, page, order, what +# Options: id, rev, char, search, lang, platform, results, page, order, what # What: extended categories anime relations screenshots relgraph ranking changes sub dbVNGet { my($self, %o) = @_; @@ -27,19 +27,6 @@ sub dbVNGet { 'LOWER(SUBSTR(vr.title, 1, 1)) = ?' => $o{char} ) : (), defined $o{char} && !$o{char} ? ( '(ASCII(vr.title) < 97 OR ASCII(vr.title) > 122) AND (ASCII(vr.title) < 65 OR ASCII(vr.title) > 90)' => 1 ) : (), - $o{cati} && @{$o{cati}} ? ( q| - v.id IN(SELECT iv.id - FROM vn_categories ivc - JOIN vn iv ON iv.latest = ivc.vid - WHERE cat IN(!l) - GROUP BY iv.id - HAVING COUNT(cat) = ?)| => [ $o{cati}, $#{$o{cati}}+1 ] ) : (), - $o{cate} && @{$o{cate}} ? ( q| - v.id NOT IN(SELECT iv.id - FROM vn_categories ivc - JOIN vn iv ON iv.latest = ivc.vid - WHERE cat IN(!l) - GROUP BY iv.id)| => [ $o{cate} ] ) : (), $o{lang} && @{$o{lang}} ? ( '('.join(' OR ', map "v.c_languages ILIKE '%%$_%%'", @{$o{lang}}).')' => 1 ) : (), $o{platform} && @{$o{platform}} ? ( @@ -50,20 +37,18 @@ sub dbVNGet { ); if($o{search}) { - my @w = ( - '(irr.id IS NULL OR ir.latest = irr.id)' => 1 - ); + my @w; for (split /[ -,._]/, $o{search}) { s/%//g; - next if length($_) < 2; if(/^\d+$/ && gtintype($_)) { push @w, 'irr.gtin = ?', $_; - } else { + } elsif(length($_) > 0) { $_ = "%$_%"; push @w, '(ivr.title ILIKE ? OR ivr.original ILIKE ? OR ivr.alias ILIKE ? OR irr.title ILIKE ? OR irr.original ILIKE ?)', [ $_, $_, $_, $_, $_ ]; } } + push @w, '(irr.id IS NULL OR ir.latest = irr.id)' => 1 if @w; $where{ q| v.id IN(SELECT iv.id FROM vn iv |