From 59d537933272fb0fe9ed949d7709a862b637c722 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 10 Jan 2021 22:04:47 +0000 Subject: [PATCH] svg processing: Put through usvg before inkscape as well as after Our copy of library/wikimedia/chess-_c-commoner.svg from https://upload.wikimedia.org/wikipedia/commons/7/7d/Commoner_Transparent.svg generates this error from inkscape's color_replace extension: $ /usr/share/inkscape/extensions/color_replace.py -f 'ffffff' -t 'abcbfb' library/wikimedia/chess-_c-commoner.svg >library/wikimedia/chess-b-commoner.coloured.svg.0.tmp Traceback (most recent call last): File "/usr/share/inkscape/extensions/color_replace.py", line 25, in c.affect() File "/usr/share/inkscape/extensions/inkex.py", line 283, in affect self.effect() File "/usr/share/inkscape/extensions/coloreffect.py", line 37, in effect self.getAttribs(self.document.getroot()) File "/usr/share/inkscape/extensions/coloreffect.py", line 45, in getAttribs self.getAttribs(child) File "/usr/share/inkscape/extensions/coloreffect.py", line 45, in getAttribs self.getAttribs(child) File "/usr/share/inkscape/extensions/coloreffect.py", line 45, in getAttribs self.getAttribs(child) File "/usr/share/inkscape/extensions/coloreffect.py", line 45, in getAttribs self.getAttribs(child) File "/usr/share/inkscape/extensions/coloreffect.py", line 43, in getAttribs self.changeStyle(node) File "/usr/share/inkscape/extensions/coloreffect.py", line 55, in changeStyle if node.attrib.has_key('style'): AttributeError: '_ImmutableMapping' object has no attribute 'has_key' $ This is reproducible by hand via the inkscape GUI. Emprically, running the file through usvg first fixes it. *shrug* We need to do this before we can start relying on the recolouring support. Signed-off-by: Ian Jackson --- media-scraper | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/media-scraper b/media-scraper index cbd8e68f..88a15d2b 100755 --- a/media-scraper +++ b/media-scraper @@ -229,18 +229,22 @@ END my $coloured = $lupstream; my $ci = 0; - my $cfp = '$<'; + my $cfp; my $emitmap = sub { my ($from, $to) = @_; confess if $from =~ m/\W/ || $to =~ m/\W/; - my $nfp = "\$@.$ci.tmp"; $coloured = $ncoloured; - print $makefile <$cfp END + } $ci++; + my $nfp = "\$@.$ci.tmp"; print $makefile <$nfp END -- 2.30.2