Changeset 862

Show
Ignore:
Timestamp:
08/30/08 18:02:39 (3 months ago)
Author:
ayunyan
Message:

plugin:mtimport added duplication check for comment and trackback

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • plugins/mtimport/trunk/mtimport.plugin.php

    r861 r862  
    456456        $commentcount= $mtdb->get_value("SELECT count(comment_id) FROM {$db_prefix}comment WHERE comment_blog_id = '{$blog_id}';"); 
    457457        $min = $commentindex * MT_IMPORT_BATCH + 1; 
    458         $max = min( ( $commentindex + 1 ) * MT_IMPORT_BATCH, $commentcount ); 
     458        $max = min(($commentindex + 1) * MT_IMPORT_BATCH, $commentcount); 
    459459 
    460460        echo sprintf(_t('<p>Importing comments %d-%d of %d.</p>'), $min, $max, $commentcount); 
     
    475475            comment_visible AS status, 
    476476            comment_entry_id AS mt_post_id, 
     477            comment_id, 
    477478            comment_junk_status 
    478479            FROM {$db_prefix}comment 
     
    480481            LIMIT {$min}," . MT_IMPORT_BATCH, array(), 'Comment'); 
    481482 
     483        $comment_map = DB::get_column("SELECT value FROM " . DB::table('commentinfo') . " WHERE name='mt_comment_id';"); 
     484 
    482485        @reset($comments); 
    483486        while (list(, $comment) = @each($comments)) { 
    484             $comment->type= Comment::COMMENT; 
     487            // already exists skipped 
     488            if(in_array($comment->comment_id, $comment_map)) continue; 
     489 
     490            $comment->type = Comment::COMMENT; 
    485491 
    486492            $carray = $comment->to_array(); 
    487493            if ($carray['ip'] == '') { 
    488                 $carray['ip']= 0; 
     494                $carray['ip'] = 0; 
    489495            } 
    490496 
    491497            if ($carray['status'] == 1) { 
    492                 $carray['status']= Comment::STATUS_APPROVED; 
     498                $carray['status'] = Comment::STATUS_APPROVED; 
    493499            } elseif ($carray['comment_junk_status'] != 0) { 
    494                 $carray['status']= Comment::STATUS_SPAM; 
     500                $carray['status'] = Comment::STATUS_SPAM; 
    495501            } else { 
    496                 $carray['status']= Comment::STATUS_UNAPPROVED; 
     502                $carray['status'] = Comment::STATUS_UNAPPROVED; 
    497503            } 
    498504            unset($carray['comment_junk_status']); 
     505 
    499506 
    500507            if (!isset($post_map[$carray['mt_post_id']] ) ) { 
     
    504511                unset( $carray['mt_post_id'] ); 
    505512 
    506                 $c= new Comment( $carray ); 
    507                 //Utils::debug( $c ); 
     513                $comment_id = $carray['comment_id']; 
     514                unset($carray['comment_id']); 
     515 
     516                $c = new Comment( $carray ); 
     517                $c->info->mt_comment_id = $comment_id; 
    508518                try{ 
    509519                    $c->insert(); 
     
    580590            trackback_created_on AS date, 
    581591            trackback_entry_id AS mt_post_id, 
     592            trackback_id, 
    582593            trackback_is_disabled 
    583594            FROM {$db_prefix}trackback 
     
    585596            LIMIT {$min}," . MT_IMPORT_BATCH, array(), 'Comment'); 
    586597 
     598        $comment_map = DB::get_column("SELECT value FROM " . DB::table('commentinfo') . " WHERE name='mt_trackback_id';"); 
     599 
    587600        @reset($trackbacks); 
    588601        while (list(, $trackback) = @each($trackback)) { 
     602            // already exists skipped 
     603            if(in_array($trackback->trackback_id, $comment_map)) continue; 
     604 
    589605            $trackback->type= Comment::TRACKBACK; 
    590606 
     
    605621                unset( $carray['mt_post_id'] ); 
    606622 
    607                 $c= new Comment( $carray ); 
    608                 //Utils::debug( $c ); 
     623                $trackback_id = $carray['trackback_id']; 
     624                unset($carray['trackback_id']); 
     625 
     626                $c = new Comment( $carray ); 
     627                $c->info->mt_trackback_id = $trackback_id; 
    609628                try{ 
    610629                    $c->insert();