diff options
-rw-r--r-- | data/docs/11 | 14 | ||||
-rw-r--r-- | lib/Multi/API.pm | 18 |
2 files changed, 32 insertions, 0 deletions
diff --git a/data/docs/11 b/data/docs/11 index 3b668656..a3bab7c6 100644 --- a/data/docs/11 +++ b/data/docs/11 @@ -513,6 +513,19 @@ however still required.<br /> <td>no</td> <td>Number of votes.</td> </tr> + <tr> + <td>screens</td> + <td>screens</td> + <td>array of objects</td> + <td>no</td> + <td> + (Possibly empty) list of screenshots, each object has the following members:<br /> + "image", string, URL of the full-size screenshot<br /> + "rid", integer, release ID<br /> + "nsfw", boolean<br /> + "height", integer, height of the full-size screenshot<br /> + "width", integer, width of the full-size screenshot<br /> + </tr> </table> <p>Sorting is possible on the 'id', 'title' and 'released' fields.</p><br /> @@ -1470,6 +1483,7 @@ however still required.<br /> <b>2.25</b> <ul> <li>Added support for TLS</li> + <li>Added "screens" flag and member to "get vn"</li> </ul> <b>2.23</b> <ul> diff --git a/lib/Multi/API.pm b/lib/Multi/API.pm index 75922ea1..6ddab2b0 100644 --- a/lib/Multi/API.pm +++ b/lib/Multi/API.pm @@ -464,6 +464,24 @@ my %GET_VN = ( }, ]], }, + screens => { + fetch => [[ 'id', 'SELECT vs.id AS vid, vs.scr AS image, vs.rid, vs.nsfw, s.width, s.height + FROM vn_screenshots vs JOIN screenshots s ON s.id = vs.scr WHERE vs.id IN(%s)', + sub { my($r, $n) = @_; + for my $i (@$r) { + $i->{screens} = [ grep $i->{id} == $_->{vid}, @$n ]; + } + for (@$n) { + $_->{image} = sprintf '%s/sf/%02d/%d.jpg', $VNDB::S{url_static}, $_->{image}%100, $_->{image}; + $_->{rid} *= 1; + $_->{nsfw} = $_->{nsfw} =~ /t/ ? TRUE : FALSE; + $_->{width} *= 1; + $_->{height} *= 1; + delete $_->{vid}; + } + }, + ]] + }, }, filters => { id => [ |