diff options
Diffstat (limited to 'lib/VNDB/Handler/ULists.pm')
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index 110ded30..b94cd8e6 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -10,6 +10,7 @@ use VNDB::Func; YAWF::register( qr{v([1-9]\d*)/vote}, \&vnvote, qr{v([1-9]\d*)/wish}, \&vnwish, + qr{r([1-9]\d*)/list}, \&rlist, qr{u([1-9]\d*)/wish}, \&wishlist, qr{u([1-9]\d*)/list}, \&vnlist, ); @@ -51,6 +52,28 @@ sub vnwish { } +sub rlist { + my($self, $id) = @_; + + my $uid = $self->authInfo->{id}; + return $self->htmlDenied() if !$uid; + + my $f = $self->formValidate( + { name => 'e', required => 1, enum => [ 'del', map("r$_", 0..$#{$self->{vn_rstat}}), map("v$_", 0..$#{$self->{vn_vstat}}) ] }, + ); + return 404 if $f->{_err}; + + $self->dbVNListDel($uid, $id) if $f->{e} eq 'del'; + $self->dbVNListAdd( + rid => $id, + uid => $uid, + $f->{e} =~ /^([rv])(\d+)$/ && $1 eq 'r' ? (rstat => $2) : (vstat => $2) + ) if $f->{e} ne 'del'; + + $self->resRedirect('/r'.$id, 'temp'); +} + + sub wishlist { my($self, $uid) = @_; @@ -183,7 +206,7 @@ sub vnlist { } - my($list, $np) = $self->dbVNListGet( + my($list, $np) = $self->dbVNListList( uid => $uid, results => 50, page => $f->{p}, |