summaryrefslogtreecommitdiff
path: root/lib/Multi/API.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2017-05-22 19:02:36 +0200
committerYorhel <git@yorhel.nl>2017-05-22 19:02:36 +0200
commit21cb8873efeee2f833137ea9a242894686389be8 (patch)
tree7f02951ccc2addc3d83e1aebba3a97939d8eed6b /lib/Multi/API.pm
parentaff775ace903d21085c0f17dc446fcbaa326dbb7 (diff)
API: Add some flags to query staff/seiyuu data
Diffstat (limited to 'lib/Multi/API.pm')
-rw-r--r--lib/Multi/API.pm47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/Multi/API.pm b/lib/Multi/API.pm
index d4732d57..610cb3a0 100644
--- a/lib/Multi/API.pm
+++ b/lib/Multi/API.pm
@@ -822,6 +822,22 @@ my %GET_CHARACTER = (
},
]],
},
+ voiced => {
+ fetch => [[ 'id', 'SELECT vs.cid, sa.id, sa.aid, vs.id AS vid, vs.note FROM vn_seiyuu vs JOIN staff_alias sa ON sa.aid = vs.aid WHERE vs.cid IN(%s)',
+ sub { my($n, $r) = @_;
+ for my $i (@$n) {
+ $i->{voiced} = [ grep $i->{id} == $_->{cid}, @$r ];
+ }
+ for (@$r) {
+ $_->{id}*=1;
+ $_->{aid}*=1;
+ $_->{vid}*=1;
+ $_->{note} ||= undef;
+ delete $_->{cid};
+ }
+ },
+ ]]
+ }
},
filters => {
id => [
@@ -895,6 +911,37 @@ my %GET_STAFF = (
},
]],
},
+ vns => {
+ fetch => [[ 'id', 'SELECT sa.id AS sid, sa.aid, vs.id, vs.role, vs.note FROM staff_alias sa JOIN vn_staff vs ON vs.aid = sa.aid WHERE sa.id IN(%s)',
+ sub { my($n, $r) = @_;
+ for my $i (@$n) {
+ $i->{vns} = [ grep $i->{id} == $_->{sid}, @$r ];
+ }
+ for (@$r) {
+ $_->{id}*=1;
+ $_->{aid}*=1;
+ $_->{note} ||= undef;
+ delete $_->{sid};
+ }
+ },
+ ]]
+ },
+ voiced => {
+ fetch => [[ 'id', 'SELECT sa.id AS sid, sa.aid, vs.id, vs.cid, vs.note FROM staff_alias sa JOIN vn_seiyuu vs ON vs.aid = sa.aid WHERE sa.id IN(%s)',
+ sub { my($n, $r) = @_;
+ for my $i (@$n) {
+ $i->{voiced} = [ grep $i->{id} == $_->{sid}, @$r ];
+ }
+ for (@$r) {
+ $_->{id}*=1;
+ $_->{aid}*=1;
+ $_->{cid}*=1;
+ $_->{note} ||= undef;
+ delete $_->{sid};
+ }
+ },
+ ]]
+ }
},
filters => {
id => [