#!/usr/bin/env python3 import xml.etree.ElementTree as ET import subprocess # Generates the favicon images containing unread message counts. # Open the SVG and find the number text elements using XPath tree = ET.parse('orig.svg') elems = [tree.getroot().findall( ".//*[@id='%s']/{http://www.w3.org/2000/svg}tspan" % (name,))[0] for name in ('number_back', 'number_front')] for i in range(1, 100): # Prepare a modified SVG s = '%2d' % (i,) for e in elems: e.text = s with open('tmp.svg', 'wb') as out: tree.write(out) # Convert to PNG subprocess.check_call(['inkscape', '--without-gui', '--export-area-page', '--export-png=../../../static/images/favicon/favicon-%d.png' % (i,), 'tmp.svg'])