summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB/VN.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/DB/VN.pm')
-rw-r--r--lib/VNDB/DB/VN.pm29
1 files changed, 21 insertions, 8 deletions
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm
index 5d9aafa5..55396a6b 100644
--- a/lib/VNDB/DB/VN.pm
+++ b/lib/VNDB/DB/VN.pm
@@ -9,7 +9,7 @@ our @EXPORT = qw|dbVNGet|;
# Options: id, rev, results, page, order, what
-# What: extended categories
+# What: extended categories anime
sub dbVNGet {
my($self, %o) = @_;
$o{results} ||= 10;
@@ -47,18 +47,31 @@ sub dbVNGet {
join(', ', @select), join(' ', @join), \%where, $o{order},
);
- if(@$r && $o{what} =~ /categories/) {
+ if(@$r && $o{what} =~ /(categories|anime)/) {
my %r = map {
$r->[$_]{categories} = [];
+ $r->[$_]{anime} = [];
($r->[$_]{cid}, $_)
} 0..$#$r;
- push(@{$r->[$r{$_->{vid}}]{categories}}, [ $_->{cat}, $_->{lvl} ]) for (@{$self->dbAll(q|
- SELECT vid, cat, lvl
- FROM vn_categories
- WHERE vid IN(!l)|,
- [ keys %r ]
- )});
+ if($o{what} =~ /categories/) {
+ push(@{$r->[$r{$_->{vid}}]{categories}}, [ $_->{cat}, $_->{lvl} ]) for (@{$self->dbAll(q|
+ SELECT vid, cat, lvl
+ FROM vn_categories
+ WHERE vid IN(!l)|,
+ [ keys %r ]
+ )});
+ }
+
+ if($o{what} =~ /anime/) {
+ push(@{$r->[$r{$_->{vid}}]{anime}}, $_) && delete $_->{vid} for (@{$self->dbAll(q|
+ SELECT va.vid, a.*
+ FROM vn_anime va
+ JOIN anime a ON va.aid = a.id
+ WHERE va.vid IN(!l)|,
+ [ keys %r ]
+ )});
+ }
}
return wantarray ? ($r, $np) : $r;