summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2016-01-29 13:14:29 +0100
committerYorhel <git@yorhel.nl>2016-01-29 13:14:29 +0100
commit98acc64cabd686c21be7bfe5d90eff87b1f3601a (patch)
tree9f67d062d879d7bc7a0ccd6e3cd1129de4c9b6f1
parent85eec765076dcf3c516e55b76b3e0f3bed437b70 (diff)
Multi::API: added 'screens' flag to 'get vn'
-rw-r--r--data/docs/1114
-rw-r--r--lib/Multi/API.pm18
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 => [