summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2020-12-29 12:51:25 +0100
committerYorhel <git@yorhel.nl>2020-12-29 12:51:25 +0100
commitaa16b0db6774f830e565d893f1546e351dc3a465 (patch)
tree5e3a5c9b436a961a77415299b99d85f2dc6d0b6b
parent7363cd3f6ebc9b78c2bc6f56d0e3894dac30e824 (diff)
API: Add "get quote" command
-rw-r--r--lib/Multi/API.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Multi/API.pm b/lib/Multi/API.pm
index 8f6b75d9..65bc2ffe 100644
--- a/lib/Multi/API.pm
+++ b/lib/Multi/API.pm
@@ -1032,6 +1032,24 @@ my %GET_STAFF = (
);
+my %GET_QUOTE = (
+ sql => "SELECT %s FROM quotes q JOIN vn v ON v.id = q.vid WHERE NOT v.hidden AND (%s) %s",
+ select => "v.id, v.title, q.quote",
+ proc => sub {
+ $_[0]{id}*=1;
+ },
+ sortdef => 'random',
+ sorts => { id => 'q.vid %s', random => 'RANDOM()' },
+ flags => { basic => {} },
+ filters => {
+ id => [
+ [ 'int' => 'q.vid :op: :value:', {qw|= = != <> > > >= >= < < <= <=|}, range => [1,1e6] ],
+ [ inta => 'q.vid :op:(:value:)', {'=' => 'IN', '!=' => 'NOT IN'}, join => ',', range => [1,1e6] ],
+ ]
+ },
+);
+
+
# All user ID filters consider uid=0 to be the logged in user. Needs a special processing function to handle that.
sub subst_user_id { my($id, $c) = @_; !$id && !$c->{uid} ? \'Not logged in.' : $id || $c->{uid} }
@@ -1205,6 +1223,7 @@ my %GET = (
producer => \%GET_PRODUCER,
character => \%GET_CHARACTER,
staff => \%GET_STAFF,
+ quote => \%GET_QUOTE,
user => \%GET_USER,
votelist => \%GET_VOTELIST,
vnlist => \%GET_VNLIST,