File indexing completed on 2024-05-19 04:19:14

0001 #!/usr/bin/perl
0002 
0003 # SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0004 #
0005 # SPDX-License-Identifier: BSD-3-Clause
0006 
0007 use strict;
0008 use LWP::UserAgent;
0009 use File::Slurp;
0010 
0011 my $NEWS_FILE = "NEWS";
0012 my $version = "7.2.0";
0013 
0014 my $header = 'BUGFIXES FROM KDE BUGZILLA';
0015 my $url = "https://bugs.kde.org/buglist.cgi?f1=cf_versionfixedin&order=Last%20Changed&o1=equals&query_format=advanced&bug_status=RESOLVED&bug_status=CLOSED&v1=$version&product=digikam&columnlist=short_desc&ctype=csv";
0016 
0017 my $ua = LWP::UserAgent->new;
0018 print "Fetching closed bugs for digiKam version ${version} ..\n";
0019 print "URL: $url\n";
0020 
0021 my $response = $ua->get($url);
0022 unless($response->is_success) {
0023     die "Fetching the closed bugs failed: $response->status_line";
0024 }
0025 
0026 my $new_content;
0027 my $header_done = 0;
0028 foreach my $line (split(/\n/, read_file($NEWS_FILE))) {
0029     $new_content .= $line . "\n";
0030     if($line =~ /^$header.+/) {
0031         $new_content .= "\n"; # append extra newline
0032         $header_done = 1;
0033         last;
0034     }
0035 }
0036 
0037 my $count = 0;
0038 my $fixed_bugs;
0039 my @content = split(/\n/, $response->decoded_content);
0040 foreach my $line (@content) {
0041     unless($count == 0) {
0042         my $num = sprintf("%03d", $count);
0043         my($bugnum, $desc) = $line =~ /(\d+),"(.+)"/;
0044         $desc =~ s/\"\"/\"/g;
0045         $fixed_bugs .= "$num ==> $bugnum - $desc\n";
0046     }
0047     $count++;
0048 }
0049 $new_content .= $fixed_bugs;
0050 write_file($NEWS_FILE, $new_content);
0051 print "$NEWS_FILE updated.\n"