From cc224c1badfaf0b7b16b4f3b3abeae5a567f60dd Mon Sep 17 00:00:00 2001 From: Muz Date: Mon, 26 Jan 2026 19:16:02 -0600 Subject: [PATCH] dev: improvements to gen-list-unimplemented-cards-for-set.pl (#14308) * Handle colons and ampersands in card names * URL encode ampersands to prevent them being handled as GET parameters in card names --- Utils/gen-list-unimplemented-cards-for-set.pl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Utils/gen-list-unimplemented-cards-for-set.pl b/Utils/gen-list-unimplemented-cards-for-set.pl index 560f76812f1..c3f4997de60 100755 --- a/Utils/gen-list-unimplemented-cards-for-set.pl +++ b/Utils/gen-list-unimplemented-cards-for-set.pl @@ -82,7 +82,8 @@ sub cardSort { sub toCamelCase { my $string = $_[0]; $string =~ s/\b([\w']+)\b/ucfirst($1)/ge; - $string =~ s/[-,\s\'\.!@#*\(\)]//g; + $string =~ s/[-,\s\'\.!@#*:\(\)]//g; + $string =~ s/\&/And/g; $string; } @@ -116,6 +117,7 @@ foreach my $card (sort cardSort @setCards) { my $currentFileName = "../Mage.Sets/src/mage/cards/" . lc(substr($className, 0, 1)) . "/" . $className . ".java"; my $cardNameForUrl = $cardName; $cardNameForUrl =~ s/ //g; + $cardNameForUrl =~ s/\&/%26/g; # URL encode ampersands my $cardEntry = "- [ ] In progress -- [$cardName](https://scryfall.com/search?q=!\"$cardNameForUrl\" e:$setAbbr)"; if(-e $currentFileName) { @@ -138,6 +140,7 @@ foreach my $cardName (sort keys %cardNames) { my $urlCardName = $cardName; $urlCardName =~ s/ //g; $urlCardName =~ s/"/\\"/g; # Escape quotes + $urlCardName =~ s/\&/%26/g; # URL encode ampersands push(@unimplementedNames, "!\"$urlCardName\""); } } @@ -158,4 +161,4 @@ close(OUTPUT); print "Issue tracker generated: $outputFile\n"; print "Implemented cards: " . scalar(@implementedCards) . "\n"; -print "Unimplemented cards: " . scalar(@unimplementedCards) . "\n"; \ No newline at end of file +print "Unimplemented cards: " . scalar(@unimplementedCards) . "\n";