diff options
author | Yorhel <git@yorhel.nl> | 2009-05-30 17:06:32 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-05-30 17:06:32 +0200 |
commit | 1253d602e9c8c5ef0e8c49c61465332f758e9dd9 (patch) | |
tree | a4483a4334c728d3a83239736fcf41f72ce0a9c9 | |
parent | aa2f9e6b013e87c181569ce66c35cf962ea6f739 (diff) |
Freeware and doujin filters on /r
-rw-r--r-- | lib/VNDB/DB/Releases.pm | 20 | ||||
-rw-r--r-- | lib/VNDB/Handler/Releases.pm | 8 |
2 files changed, 17 insertions, 11 deletions
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm index 659f8f27..bd5d8fcb 100644 --- a/lib/VNDB/DB/Releases.pm +++ b/lib/VNDB/DB/Releases.pm @@ -9,7 +9,8 @@ use Exporter 'import'; our @EXPORT = qw|dbReleaseGet dbReleaseAdd dbReleaseEdit|; -# Options: id vid rev order unreleased page results what date media platforms languages type minage search resolutions +# Options: id vid rev order unreleased page results what date media +# platforms languages type minage search resolutions freeware doujin # What: extended changes vn producers platforms media sub dbReleaseGet { my($self, %o) = @_; @@ -19,14 +20,13 @@ sub dbReleaseGet { $o{order} ||= 'rr.released ASC'; my @where = ( - !$o{id} && !$o{rev} ? ( - 'r.hidden = FALSE' => 0 ) : (), - $o{id} ? ( - 'r.id = ?' => $o{id} ) : (), - $o{rev} ? ( - 'c.rev = ?' => $o{rev} ) : (), - $o{vid} ? ( - 'rv.vid = ?' => $o{vid} ) : (), + !$o{id} && !$o{rev} ? ( 'r.hidden = FALSE' => 0 ) : (), + $o{id} ? ( 'r.id = ?' => $o{id} ) : (), + $o{rev} ? ( 'c.rev = ?' => $o{rev} ) : (), + $o{vid} ? ( 'rv.vid = ?' => $o{vid} ) : (), + $o{patch} ? ( 'rr.patch = ?' => $o{patch} == 1 ? 1 : 0) : (), + $o{freeware} ? ( 'rr.freeware = ?' => $o{freeware} == 1 ? 1 : 0) : (), + $o{doujin} ? ( 'rr.doujin = ?' => $o{doujin} == 1 ? 1 : 0) : (), defined $o{unreleased} ? ( q|rr.released !s ?| => [ $o{unreleased} ? '>' : '<=', strftime('%Y%m%d', gmtime) ] ) : (), $o{date} ? ( @@ -40,8 +40,6 @@ sub dbReleaseGet { 'rr.type = ?' => $o{type} ) : (), $o{minage} ? ( '(rr.minage !s ? AND rr.minage <> -1)' => [ $o{minage}[0] ? '<=' : '>=', $o{minage}[1] ] ) : (), - $o{patch} ? ( - 'rr.patch = ?', $o{patch} == 1 ? 1 : 0) : (), $o{media} ? ( 'rr.id IN(SELECT irm.rid FROM releases_media irm JOIN releases ir ON ir.latest = irm.rid WHERE irm.medium IN(!l))' => [ $o{media} ] ) : (), $o{resolutions} ? ( diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index b9ca71a7..1f2b2ac6 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -470,6 +470,8 @@ sub browse { { name => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] }, { name => 'tp', required => 0, default => -1, enum => [ -1..$#{$self->{release_types}} ] }, { name => 'pa', required => 0, default => 0, enum => [ 0..2 ] }, + { name => 'fw', required => 0, default => 0, enum => [ 0..2 ] }, + { name => 'do', required => 0, default => 0, enum => [ 0..2 ] }, { name => 'ma_m', required => 0, default => 0, enum => [ 0, 1 ] }, { name => 'ma_a', required => 0, default => 0, enum => [ keys %{$self->{age_ratings}} ] }, { name => 'mi', required => 0, default => 0, template => 'int' }, @@ -488,6 +490,8 @@ sub browse { $f->{tp} >= 0 ? (type => $f->{tp}) : (), $f->{ma_a} || $f->{ma_m} ? (minage => [$f->{ma_m}, $f->{ma_a}]) : (), $f->{pa} ? (patch => $f->{pa}) : (), + $f->{fw} ? (freeware => $f->{fw}) : (), + $f->{do} ? (doujin => $f->{do}) : (), ); my($list, $np) = !@filters ? (undef, 0) : $self->dbReleaseGet( order => $f->{s}.($f->{o}eq'd'?' DESC':' ASC'), @@ -593,6 +597,10 @@ sub _filters { options => [ [-1, 'All'], map [ $_, $self->{release_types}[$_] ], 0..$#{$self->{release_types}} ]]); $self->htmlFormPart($f, [ select => short => 'pa', name => 'Patch status', options => [ [0, 'All'], [1, 'Only patches'], [2, 'Only standalone releases']]]); + $self->htmlFormPart($f, [ select => short => 'fw', name => 'Freeware', + options => [ [0, 'All'], [1, 'Freeware only'], [2, 'Only non-free releases']]]); + $self->htmlFormPart($f, [ select => short => 'do', name => 'Doujin', + options => [ [0, 'All'], [1, 'Only doujin releases'], [2, 'Only commercial releases']]]); $self->htmlFormPart($f, [ date => short => 'mi', name => 'Released after' ]); $self->htmlFormPart($f, [ date => short => 'ma', name => 'Released before' ]); end; |