chiark / gitweb /
svg processing: Put through usvg before inkscape as well as after
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 10 Jan 2021 22:04:47 +0000 (22:04 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 10 Jan 2021 23:19:44 +0000 (23:19 +0000)
commit59d537933272fb0fe9ed949d7709a862b637c722
tree5bda2ad7338cc7441beaee1582c4d8edbe60b37e
parent83ff547e695cf85d85eb7b37d330a2875d9fcf03
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 <module>
      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 <ijackson@chiark.greenend.org.uk>
media-scraper