Changeset 3509


Ignore:
Timestamp:
07/04/09 00:09:47 (11 years ago)
Author:
ronosman
Message:

Bug 1030 fixed : catch communication error with Piwigo site. The Piwigo method return status is checked after checking HTTP response status.

Location:
extensions/pLoader/trunk/src/Uploader
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/pLoader/trunk/src/Uploader/GUI/wxApp.pm

    r3472 r3509  
    331331     
    332332    $self->version( 
    333         '2.0.2c' 
     333        '2.0.2d' 
    334334    ); 
    335335     
     
    554554    $self->imagelist->ResizeCallback( 
    555555        sub { $self->ResizeImage(@_) } 
     556    ); 
     557 
     558    $self->imagelist->YieldCallback( 
     559        sub { Wx::Yield } 
    556560    ); 
    557561} 
  • extensions/pLoader/trunk/src/Uploader/ImageList.pm

    r3472 r3509  
    3131use Encode qw/encode decode is_utf8/; 
    3232use Wx::Locale qw/:default/; 
     33use Wx; 
    3334 
    3435# this class implements a collection of image files with associated data 
     
    6970                SetNewFilesProgressCallback 
    7071                SetNewFilesDisplayEndInfoCallback 
     72                YieldCallback 
    7173                UploadImagesViewerCallback 
    7274                progress_thumbnail_refresh 
     
    883885     
    884886            # update upload progress dialog 
    885             $self->progressbar_refresh->(0.20); 
     887            $self->progressbar_refresh->(0.05); 
    886888        }; 
    887889        # user cancelled : dialog box is destroyed 
     
    929931        } 
    930932 
     933        # Resized and original are ready 
     934        $self->progressbar_refresh->(0.10); 
     935 
     936 
    931937        $msg = sprintf( 
    932938            "Preparing thumbnail for %s - %s", 
     
    960966        eval { 
    961967            $self->progress_msg_refresh->($msg); 
    962             $self->progressbar_refresh->(0.50); 
     968            # Thumbnail is ready 
     969            $self->progressbar_refresh->(0.20); 
    963970        }; 
    964971        croak "Upload cancelled. ", $@ if $@ ; 
     
    966973        # photo metadata 
    967974        $self->_prepare_upload_properties();             
    968         my ( $status, $status_msg ) = $self->pwg->UploadImage(); 
    969  
     975        my ( $status, $status_msg, $content ) = $self->pwg->UploadImage( $self->YieldCallback, $self->progressbar_refresh ); 
     976        my $ok = 0; 
     977        # HTTP REQUEST OK 
    970978        if ( $status ){ 
     979            # PIWIGO RESULT ( HTTP may be ok while Piwigo is not ) 
     980            $ok = 'fail' eq $content->{stat} ? 0 : 1; 
     981        } 
     982        else{ 
     983            Wx::LogMessage( 
     984                "% %s : %s", 
     985                gettext("Communication error with"), 
     986                $self->pwg->site_url, 
     987                $status_msg, 
     988            ); 
     989        }  
     990 
     991        if($ok){ 
    971992            $msg = sprintf( 
    972                 "%s : %s upload succcessful.", 
     993                "%s : %s - %s.", 
    973994                $site_name, 
    974                 $file 
     995                $file, 
     996                gettext("upload succcessful"), 
    975997            ); 
    976998 
     
    9791001        } else { 
    9801002            $msg = sprintf( 
    981                 "An error has occured.\n%s : %s upload is cancelled.\n$status_msg", 
     1003                "An error has occured.\n%s : %s upload is cancelled.\n%s", 
    9821004                $site_name, 
    983                 $file 
     1005                $file, 
     1006                Dumper($content), 
    9841007            ); 
    9851008            $rejected++; 
     
    10091032    my $duration = $time_end - $time_begin; 
    10101033    $msg = sprintf( 
    1011         "%s images processed\n\n%s images uploaded\n\n%s images in errors and not uploaded - $last_error\n\nDuration : %s seconds", 
     1034        "%s images processed\n\n%s images uploaded\n\n%s images in errors and not uploaded - \n%s\n\nDuration : %s seconds", 
    10121035        $self->count - 1, 
    10131036        $uploaded, 
    10141037        $rejected, 
     1038        $last_error, 
    10151039        $duration, 
    10161040    ); 
  • extensions/pLoader/trunk/src/Uploader/PWG/WebServices.pm

    r3504 r3509  
    236236 
    237237sub UploadImage { 
    238     my ( $self ) = @_; 
     238    my ( $self, $yield_callback ) = @_; 
    239239 
    240240    my $file_sum; 
     
    279279    my $status = 0; 
    280280    my $status_line = "An error has occured during upload."; 
     281    my $content = {}; 
    281282    while(1){ 
    282283        if(!defined($image_id)){ 
     
    286287                type => 'file', 
    287288                original_sum => $original_sum, 
     289                yield_callback => $yield_callback, 
    288290            }; 
    289291     
     
    291293                $resized_params 
    292294            ); 
    293              
     295 
     296            $yield_callback->() if 'CODE' eq ref($yield_callback); 
    294297            $status_line = $resized_params->{message}; 
    295298            last if !$resized_params->{ok}; 
     
    299302                type => 'thumb', 
    300303                original_sum => $original_sum,           
     304                yield_callback => $yield_callback, 
    301305            }; 
    302306     
     
    305309            ); 
    306310 
     311            $yield_callback->() if 'CODE' eq ref($yield_callback); 
    307312            $status_line = $thumb_params->{message}; 
    308313            last if !$thumb_params->{ok}; 
     
    327332                type => 'high', 
    328333                original_sum => $original_sum, 
     334                yield_callback => $yield_callback, 
    329335            }; 
    330336     
     
    335341                    $high_params 
    336342                ); 
     343                $yield_callback->() if 'CODE' eq ref($yield_callback); 
    337344 
    338345                $status_line = $high_params->{message}; 
     
    353360                tag_ids           => $self->site_tags, 
    354361            }; 
     362            $yield_callback->() if 'CODE' eq ref($yield_callback); 
    355363        } 
    356364     
     
    359367            $form 
    360368        ); 
     369 
     370        eval { 
     371            $content = from_json( 
     372                $result->content 
     373            ); 
     374        }; 
     375 
    361376     
    362377        $status = $result->is_success; 
    363378        $status_line = $result->status_line;  
     379 
    364380        last; 
    365381    } 
    366382     
    367     return ( $status,  $status_line); 
     383    return ( $status,  $status_line, $content); 
    368384} 
    369385  
     
    454470            } 
    455471        ); 
    456  
     472        $params->{yield_callback}->() if 'CODE' eq ref($params->{yield_callback}); 
    457473        $params->{ok} = 1; 
    458474        if ($response->code != 200) { 
Note: See TracChangeset for help on using the changeset viewer.