diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/DB/VN.pm | 15 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNBrowse.pm | 33 |
2 files changed, 2 insertions, 46 deletions
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index 4798e16f..dcb3bd39 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}} ? ( diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm index 03c4a8ce..24fa8508 100644 --- a/lib/VNDB/Handler/VNBrowse.pm +++ b/lib/VNDB/Handler/VNBrowse.pm @@ -25,11 +25,7 @@ sub list { return 404 if $f->{_err}; $f->{q} ||= $f->{sq}; - # NOTE: this entire search thingy can also be done using a PgSQL fulltext search, - # which is faster and requires less code. It does require an extra database - # column, index and some triggers, though - - my(@cati, @cate, @plat, @lang); + my(@plat, @lang); my $q = $f->{q}; if($q) { # VNDBID @@ -37,15 +33,6 @@ sub list { if $q =~ /^([gvrptud])([0-9]+)(?:\.([0-9]+))?$/; if(!($q =~ s/^title://)) { - # categories - my %catl = map { - my $ic = $_; - map { $ic.$_ => $self->{categories}{$ic}[1]{$_} } keys %{$self->{categories}{$ic}[1]} - } keys %{$self->{categories}}; - - $q =~ s/-(?:$catl{$_}|c:$_)//ig && push @cate, $_ for keys %catl; - $q =~ s/(?:$catl{$_}|c:$_)//ig && push @cati, $_ for keys %catl; - # platforms $_ ne 'oth' && $q =~ s/(?:$self->{platforms}{$_}|p:$_)//ig && push @plat, $_ for keys %{$self->{platforms}}; @@ -62,8 +49,6 @@ sub list { results => 50, page => $f->{p}, order => ($f->{s} eq 'rel' ? 'c_released' : $f->{s} eq 'pop' ? 'c_popularity' : 'title').($f->{o} eq 'a' ? ' ASC' : ' DESC'), - @cati ? ( cati => \@cati ) : (), - @cate ? ( cate => \@cate ) : (), @lang ? ( lang => \@lang ) : (), @plat ? ( platform => \@plat ) : (), ); @@ -132,22 +117,6 @@ sub _filters { lit '<i>▸</i> advanced search'; end; div id => 'advoptions', class => 'hidden'; - - h2; - lit 'Categories <b>(boolean and, selecting more gives less results. The categories are explained on <a href="/d1">this page</a>)</b>'; - end; - ul id => 'catselect'; - for my $c (qw| e g t p h l s |) { - $c !~ /[thl]/ ? li : br; - txt $self->{categories}{$c}[0]; - ul; - li id => "cat_$c$_", $self->{categories}{$c}[1]{$_} - for (sort keys %{$self->{categories}{$c}[1]}); - end; - end if $c !~ /[gph]/; - } - end; - h2; lit 'Languages <b>(boolean or, selecting more gives more results)</b>'; end; |