summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2013-01-21 13:42:24 +0100
committerYorhel <git@yorhel.nl>2013-01-21 13:42:24 +0100
commit36d380f02044014dd906784eb840ed54ac419d57 (patch)
tree53c05f08864e19cc5ad4c3421573058fbdfd17d5 /lib/VNDB/DB
parentacae2bea4397c84aae5610a375a9b8119ddc5645 (diff)
Added "unknown medium" release filter
Diffstat (limited to 'lib/VNDB/DB')
-rw-r--r--lib/VNDB/DB/Releases.pm7
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}) {