diff options
author | Yorhel <git@yorhel.nl> | 2009-11-05 23:01:55 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-11-05 23:01:55 +0100 |
commit | ed8192a652bc8c2b18c1cd9a52412faf0234966b (patch) | |
tree | 8cc7cd490982903d32a6e432cde09161c8076958 /lib | |
parent | 1ff074a56239fbd8e847010ba21e00067103afac (diff) |
API: Added 'details' info flag to the get vn command
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Multi/API.pm | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/lib/Multi/API.pm b/lib/Multi/API.pm index 53bb640a..c94c120b 100644 --- a/lib/Multi/API.pm +++ b/lib/Multi/API.pm @@ -294,9 +294,11 @@ sub login_res { # num, res, [ c, arg ] sub get_vn { my($c, $info, $filters) = @_[ARG0..$#_]; - return cerr $c, getinfo => "Unkown info flag '$_'", flag => $_ for (grep $_ ne 'basic', @$info); + return cerr $c, getinfo => "Unkown info flag '$_'", flag => $_ for (grep !/^(basic|details)$/, @$info); - my $select = 'v.id, vr.title, vr.original, v.c_released, v.c_languages, v.c_platforms'; + my $select = 'v.id'; + $select .= ', vr.title, vr.original, v.c_released, v.c_languages, v.c_platforms' if grep /basic/, @$info; + $select .= ', vr.alias AS aliases, vr.length, vr.desc AS description, vr.l_wp, vr.l_encubed, vr.l_renai' if grep /details/, @$info; my @placeholders; my $where = encode_filters $filters, \&filtertosql, $c, \@placeholders, [ @@ -340,10 +342,23 @@ sub get_vn_res { for (@$res) { $_->{id}*=1; - $_->{original} ||= undef; - $_->{platforms} = [ split /\//, delete $_->{c_platforms} ]; - $_->{languages} = [ split /\//, delete $_->{c_languages} ]; - $_->{released} = formatdate delete $_->{c_released}; + if(grep /basic/, @$info) { + $_->{original} ||= undef; + $_->{platforms} = [ split /\//, delete $_->{c_platforms} ]; + $_->{languages} = [ split /\//, delete $_->{c_languages} ]; + $_->{released} = formatdate delete $_->{c_released}; + } + if(grep /details/, @$info) { + $_->{aliases} ||= undef; + $_->{length} *= 1; + $_->{length} ||= undef; + $_->{description} ||= undef; + $_->{links} = { + wikipedia => delete($_->{l_wp}) ||undef, + encubed => delete($_->{l_encubed})||undef, + renai => delete($_->{l_renai}) ||undef + }; + } } $c->{wheel}->put([ results => { num => $#$res+1, items => $res }]); |