diff options
author | Yorhel <git@yorhel.nl> | 2013-01-21 13:42:24 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2013-01-21 13:42:24 +0100 |
commit | 36d380f02044014dd906784eb840ed54ac419d57 (patch) | |
tree | 53c05f08864e19cc5ad4c3421573058fbdfd17d5 /lib/VNDB/DB | |
parent | acae2bea4397c84aae5610a375a9b8119ddc5645 (diff) |
Added "unknown medium" release filter
Diffstat (limited to 'lib/VNDB/DB')
-rw-r--r-- | lib/VNDB/DB/Releases.pm | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm index 56fcf0b4..28edd869 100644 --- a/lib/VNDB/DB/Releases.pm +++ b/lib/VNDB/DB/Releases.pm @@ -20,6 +20,7 @@ sub dbReleaseGet { $o{page} ||= 1; $o{what} ||= ''; $o{plat} = [ $o{plat} ] if $o{plat} && !ref $o{plat}; + $o{med} = [ $o{med} ] if $o{med} && !ref $o{med}; my @where = ( !$o{id} && !$o{rev} ? ( 'r.hidden = FALSE' => 0 ) : (), @@ -47,8 +48,10 @@ sub dbReleaseGet { grep(/^unk$/, @{$o{plat}}) ? 'NOT EXISTS(SELECT 1 FROM releases_platforms irp WHERE irp.rid = r.latest)' : (), grep(!/^unk$/, @{$o{plat}}) ? 'rr.id IN(SELECT irp.rid FROM releases_platforms irp JOIN releases ir ON ir.latest = irp.rid WHERE irp.platform IN(!l))' : (), ), [ [ grep !/^unk$/, @{$o{plat}} ] ]) : (), - $o{med} ? ( - 'rr.id IN(SELECT irm.rid FROM releases_media irm JOIN releases ir ON ir.latest = irm.rid WHERE irm.medium IN(!l))' => [ ref $o{med} ? $o{med} : [ $o{med} ] ] ) : (), + $o{med} ? (join(' OR ', + grep(/^unk$/, @{$o{med}}) ? 'NOT EXISTS(SELECT 1 FROM releases_media irm WHERE irm.rid = r.latest)' : (), + grep(!/^unk$/, @{$o{med}}) ? 'rr.id IN(SELECT irm.rid FROM releases_media irm JOIN releases ir ON ir.latest = irm.rid WHERE irm.medium IN(!l))' : () + ), [ [ grep(!/^unk$/, @{$o{med}}) ] ]) : (), ); if($o{search}) { |