diff --git a/fulltests/woman_in_red.svg b/fulltests/woman_in_red.svg new file mode 100644 index 0000000..f5c5cc8 --- /dev/null +++ b/fulltests/woman_in_red.svg @@ -0,0 +1,347 @@ + + + + girl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + girl + + + hrum + + + woman, red, tie, color, glases, sexy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/scour.py b/scour.py index 1c3b333..b201733 100755 --- a/scour.py +++ b/scour.py @@ -1325,7 +1325,11 @@ def parseListOfPoints(s): points = [] while i < len(nums): x = SVGLength(nums[i]) - y = SVGLength(nums[i+1]) + # if we had an odd number of points, return empty + if i == len(nums)-1: return [] + else: y = SVGLength(nums[i+1]) + + # if the coordinates were not unitless, return empty if x.units != Unit.NONE or y.units != Unit.NONE: return [] points.append( (str(x.value),str(y.value)) ) i += 2 diff --git a/scra.py b/scra.py new file mode 100644 index 0000000..ab480dd --- /dev/null +++ b/scra.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Scour Web +# +# Copyright 2009 Jeff Schiller +# +# This file is part of Scour, http://www.codedread.com/scour/ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from mod_python import apache +from mod_python import util +from scour import scourString +from optparse import OptionParser + +def form(req): + return """ + + + Scrape Your SVG Files + + +
+

Scra.py uses Scour to clean SVG files of unnecessary elements and attributes attempting to reduce file size and complexity without a loss in visual quality. For full details, please see the Scour home page. +

Paste the SVG file below and click or set some Options first. For a more complete description of the options, see the corresponding scour page.

+
+ +
+ + + """ + +# defaults +class ScourOptions: + simple_colors = True + style_to_xml = True + group_collapse = True + strip_ids = False + digits = 5 + +# params are the form elements (if a checkbox is unchecked it will not be present) +def fetch(req, indoc,**params): + req.content_type = "image/svg+xml" + options = ScourOptions() + + # interpret form options + if not params.has_key('convertStyleToXml'): + options.style_to_xml = False + if not params.has_key('collapseGroups'): + options.group_collapse = False + if params.has_key('stripIds'): + options.strip_ids = True + if not params.has_key('simplifyColors'): + options.simple_colors = False + options.digits = int(params['digits']) + + req.write(scourString(indoc,options)) + diff --git a/web.py b/web.py deleted file mode 100644 index 3b61ff7..0000000 --- a/web.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Scour Web -# -# Copyright 2009 Jeff Schiller -# -# This file is part of Scour, http://www.codedread.com/scour/ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from mod_python import apache -from scour import scourString - -def form(req): - return """ - - - Scour it! - - -
-

Paste the SVG file here

- -

Click "Go!" to Scour