From 21cb8873efeee2f833137ea9a242894686389be8 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Mon, 22 May 2017 19:02:36 +0200 Subject: API: Add some flags to query staff/seiyuu data --- lib/Multi/API.pm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'lib/Multi') 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 => [ -- cgit v1.2.3