summaryrefslogtreecommitdiff
path: root/lib/extensions/input.py
blob: 16f9266a75ee11eeec170259932ddf027ce8d44c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Authors: see git history
#
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later.  See the file LICENSE for details.

from html import unescape
from sys import exit, platform

from inkex import errormsg
from lxml import etree

from ..i18n import _
from ..metadata import InkStitchMetadata
from ..stitch_plan import generate_stitch_plan
from ..update import INKSTITCH_SVG_VERSION


class Input(object):
    def run(self, args):
        embroidery_file = args[0]
        if args[0].endswith(('edr', 'col', 'inf')):
            msg = _("Ink/Stitch cannot import color formats directly. But you can open the embroidery file and apply the color with "
                    "Extensions > Ink/Stitch > Thread Color Management > Apply Threadlist")
            errormsg(msg)
            exit(0)
        stitch_plan = generate_stitch_plan(embroidery_file)

        # Set SVG Version so we do request the user to update the document later on
        metadata = InkStitchMetadata(stitch_plan)
        metadata['inkstitch_svg_version'] = INKSTITCH_SVG_VERSION

        out = etree.tostring(stitch_plan).decode('utf-8')
        if platform == "win32":
            print(out)
        else:
            print(unescape(out))