diff options
author | Yorhel <git@yorhel.nl> | 2020-12-29 12:51:25 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2020-12-29 12:51:25 +0100 |
commit | aa16b0db6774f830e565d893f1546e351dc3a465 (patch) | |
tree | 5e3a5c9b436a961a77415299b99d85f2dc6d0b6b /lib/Multi/API.pm | |
parent | 7363cd3f6ebc9b78c2bc6f56d0e3894dac30e824 (diff) |
API: Add "get quote" command
Diffstat (limited to 'lib/Multi/API.pm')
-rw-r--r-- | lib/Multi/API.pm | 19 |
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, |