From 64fc83df49a9538a7d4f445fd6b3fa932080add3 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Sun, 31 May 2009 12:08:42 +0200 Subject: Don't give a 500 when inputting the same anime ID twice on /v+/edit --- lib/VNDB/Handler/VNEdit.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm index 8363b500..3b0619ab 100644 --- a/lib/VNDB/Handler/VNEdit.pm +++ b/lib/VNDB/Handler/VNEdit.pm @@ -55,11 +55,11 @@ sub edit { if(!$frm->{_err}) { # parse and re-sort fields that have multiple representations of the same information - my $anime = [ grep /^[0-9]+$/, split /[ ,]+/, $frm->{anime} ]; + my $anime = { map +($_=>1), grep /^[0-9]+$/, split /[ ,]+/, $frm->{anime} }; my $relations = [ map { /^([0-9]+),([0-9]+),(.+)$/ && (!$vid || $2 != $vid) ? [ $1, $2, $3 ] : () } split /\|\|\|/, $frm->{relations} ]; my $screenshots = [ map /^[0-9]+,[01],[0-9]+$/ ? [split /,/] : (), split / +/, $frm->{screenshots} ]; - $frm->{anime} = join ' ', sort { $a <=> $b } @$anime; + $frm->{anime} = join ' ', sort { $a <=> $b } keys %$anime; $frm->{relations} = join '|||', map $_->[0].','.$_->[1].','.$_->[2], sort { $a->[1] <=> $b->[1]} @{$relations}; $frm->{img_nsfw} = $frm->{img_nsfw} ? 1 : 0; $frm->{screenshots} = join ' ', map sprintf('%d,%d,%d', $_->[0], $_->[1]?1:0, $_->[2]), sort { $a->[0] <=> $b->[0] } @$screenshots; @@ -71,7 +71,7 @@ sub edit { # execute the edit/add my %args = ( (map { $_ => $frm->{$_} } qw|title original alias desc length l_wp l_encubed l_renai l_vnn editsum img_nsfw|), - anime => $anime, + anime => [ keys %$anime ], categories => $v->{categories}, relations => $relations, image => $image, -- cgit v1.2.3