Refactor branding.

debian-sid
Tom Payne 15 years ago
parent 74b2492278
commit 353fd6bb96

@ -16,6 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import optparse
import os.path
import sys
@ -32,8 +33,8 @@ def main(argv):
parser.add_option('-i', '--icon', metavar='STRING')
parser.add_option('-u', '--url', metavar='STRING')
parser.set_defaults(name='Leonardo')
parser.set_defaults(url='http://www.paraglidingforum.com/')
parser.set_defaults(icon='leonardo_logo.gif')
parser.set_defaults(url='http://www.paraglidingforum.com/modules.php?name=leonardo&op=list_flights')
parser.set_defaults(icon='http://www.paraglidingforum.com/modules/leonardo/templates/basic/tpl/leonardo_logo.gif')
options, args = parser.parse_args(argv)
icon = kml.Icon(href=options.icon)
overlay_xy = kml.overlayXY(x=0.5, y=1, xunits='fraction', yunits='fraction')
@ -45,7 +46,10 @@ def main(argv):
ps.append('<large><a href="%(url)s">%(name)s</a></large>' % d)
ps.append('<small>Created by <a href="http://github.com/twpayne/igc2kmz/master/tree">igc2kmz</a> Copyright &copy; Tom Payne 2008</a></small>' % d)
description = kml.CDATA('<center>%s</center>' % ''.join('<p>%s</p>' % p for p in ps))
screen_overlay = kml.ScreenOverlay(icon, overlay_xy, screen_xy, size, kml.Snippet(), name=options.name, description=description)
snippet = kml.Snippet()
balloon_style = kml.BalloonStyle(text=kml.CDATA('$[description]'))
style = kml.Style(balloon_style)
screen_overlay = kml.ScreenOverlay(icon, overlay_xy, screen_xy, size, snippet, style, name=options.name, description=description)
screen_overlay.pretty_write(open(options.output, 'w') if options.output else sys.stdout)

@ -22,6 +22,7 @@ import sys
import igc2kmz
import igc2kmz.igc
import igc2kmz.kml
import igc2kmz.photo
import igc2kmz.xc
@ -72,7 +73,7 @@ def main(argv):
parser.error('no flights specified')
if len(args) != 1:
parser.error('extra arguments on command line')
igc2kmz.flights2kmz(options.flights, roots=options.roots, timezone_offset=options.timezone_offset).write(options.output)
igc2kmz.flights2kmz(options.flights, roots=[igc2kmz.kml.RawElement(open(root).read()) for root in options.roots], timezone_offset=options.timezone_offset).write(options.output)
if __name__ == '__main__':

@ -26,7 +26,7 @@ class Metaclass(type):
def __new__(cls, name, bases, dct):
result = type.__new__(cls, name, bases, dct)
if name not in ('Element', 'SimpleElement', 'CompoundElement'):
if name not in ('Element', 'SimpleElement', 'CompoundElement', 'RawElement'):
class_by_name[name] = result
return result
@ -134,6 +134,26 @@ class CompoundElement(Element):
return '<%s%s>%s</%s>' % (self.name(), attrs, ''.join(map(str, self.children)), self.name())
class RawElement(Element):
def __init__(self, value):
self.value = value
def write(self, file):
"""Write self to file."""
file.write(self.value)
def pretty_write(self, file, indent='\t', prefix=''):
"""Write self to file."""
file.write(prefix)
file.write(self.value)
file.write('\n')
def __str__(self):
"""Return the KML representation of self."""
return self.value
class CDATA(object):
"""A KML CDATA."""

Loading…
Cancel
Save