From 8426dcc12aeea5a86511230de384f57142e76910 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Wed, 27 Dec 2017 17:30:03 +0100 Subject: WIP: misc fixes Signed-off-by: Florian Pritz --- Bugzilla/Migrate/Flyspray.pm | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'Bugzilla/Migrate/Flyspray.pm') diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm index 9f4c05000..579e7704d 100644 --- a/Bugzilla/Migrate/Flyspray.pm +++ b/Bugzilla/Migrate/Flyspray.pm @@ -417,7 +417,7 @@ sub _read_bugs { "DUPLICATE") { if ($closure_comment =~ m/FS#(\d+)/) { - $bug->{dup_id} = int($1); + $self->{dupes}->{$row->{task_id}} = int($1); } } } @@ -453,20 +453,28 @@ sub _read_bugs { while (my $attachment = $attachments_sth->fetchrow_hashref()) { my $path = $attpath . '/' . $attachment->{file_name}; next unless -f $path; - push @{$bug->{attachments}}, - { + next unless -s $path; + my $attachment_item = { submitter => $self->_get_username($attachment->{added_by}), creation_ts => $attachment->{date_added}, description => $attachment->{file_desc} || $attachment->{orig_name}, filename => $attachment->{orig_name}, - mimetype => $attachment->{file_type} || mimetype($path), - ispatch => $attachment->{file_type} =~ m/^text\/x-diff/ ? 1 : 0, - data_path => $path, - }; + + #mimetype => $attachment->{file_type}, + ispatch => $attachment->{file_type} =~ m/^text\/x-diff/ ? 1 : 0, + data_path => $path, + }; + +#$attachment_item->{mimetype} = mimetype($path) if $attachment_item->{mimetype} eq "" or $attachment_item->{mimetype} !~ m/.+\/.+/; + $attachment_item->{mimetype} = mimetype($path); # TODO: set extra_data and type of comment when attachment is part of a comment. # problem: how to get attachment id? not yet in db # change _insert_attachments/_insert_comments? + push @{$bug->{attachments}}, $attachment_item; + + #$self->debug($bug); + #die if $attachment->{date_added} == 1110715864; } push @result, $bug; @@ -527,6 +535,15 @@ sub translate_bug { return wantarray ? ($bug, $other_fields) : $bug; } +sub after_insert { + my ($self) = @_; + + for my $dupe (keys %{$self->{dupes}}) { + $self->{dbh}->do("INSERT INTO duplicates (dupe_of, dupe) VALUES (?, ?)", + undef, $self->{dupes}->{$dupe}, $$dupe); + } +} + # Timestamps from flyspray are unix timestamps which Date::Parse # can't parse so the original parse_date() sub will just die -- cgit v1.2.3-24-g4f1b