mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-11-18 13:09:02 +00:00
d1f460b091
--HG-- rename : py/__init__.py => base/py/__init__.py rename : py/app.py => base/py/app.py rename : py/app_cocoa.py => base/py/app_cocoa.py rename : py/app_me_cocoa.py => base/py/app_me_cocoa.py rename : py/app_pe_cocoa.py => base/py/app_pe_cocoa.py rename : py/app_se_cocoa.py => base/py/app_se_cocoa.py rename : py/data.py => base/py/data.py rename : py/data_me.py => base/py/data_me.py rename : py/data_pe.py => base/py/data_pe.py rename : py/directories.py => base/py/directories.py rename : py/engine.py => base/py/engine.py rename : py/export.py => base/py/export.py rename : py/gen.py => base/py/gen.py rename : py/ignore.py => base/py/ignore.py rename : py/modules/block/block.pyx => base/py/modules/block/block.pyx rename : py/modules/block/setup.py => base/py/modules/block/setup.py rename : py/modules/cache/cache.pyx => base/py/modules/cache/cache.pyx rename : py/modules/cache/setup.py => base/py/modules/cache/setup.py rename : py/picture/__init__.py => base/py/picture/__init__.py rename : py/picture/block.py => base/py/picture/block.py rename : py/picture/cache.py => base/py/picture/cache.py rename : py/picture/matchbase.py => base/py/picture/matchbase.py rename : py/results.py => base/py/results.py rename : py/scanner.py => base/py/scanner.py rename : py/tests/__init__.py => base/py/tests/__init__.py rename : py/tests/app_cocoa_test.py => base/py/tests/app_cocoa_test.py rename : py/tests/app_test.py => base/py/tests/app_test.py rename : py/tests/block_test.py => base/py/tests/block_test.py rename : py/tests/cache_test.py => base/py/tests/cache_test.py rename : py/tests/directories_test.py => base/py/tests/directories_test.py rename : py/tests/engine_test.py => base/py/tests/engine_test.py rename : py/tests/export_test.py => base/py/tests/export_test.py rename : py/tests/ignore_test.py => base/py/tests/ignore_test.py rename : py/tests/results_test.py => base/py/tests/results_test.py rename : py/tests/scanner_test.py => base/py/tests/scanner_test.py extra : convert_revision : svn%3Ac306627e-7827-47d3-bdf0-9a457c9553a1/trunk%4074
68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
Unit Name: dupeguru.export
|
|
Created By: Virgil Dupras
|
|
Created On: 2006/09/16
|
|
Last modified by:$Author: virgil $
|
|
Last modified on:$Date: 2009-05-28 15:22:39 +0200 (Thu, 28 May 2009) $
|
|
$Revision: 4385 $
|
|
Copyright 2004-2006 Hardcoded Software (http://www.hardcoded.net)
|
|
"""
|
|
from xml.dom import minidom
|
|
import tempfile
|
|
import os.path as op
|
|
import os
|
|
from StringIO import StringIO
|
|
|
|
from hsutil.files import FileOrPath
|
|
|
|
def output_column_xml(outfile, columns):
|
|
"""Creates a xml file outfile with the supplied columns.
|
|
|
|
outfile can be a filename or a file object.
|
|
columns is a list of 2 sized tuples (display,enabled)
|
|
"""
|
|
doc = minidom.Document()
|
|
root = doc.appendChild(doc.createElement('columns'))
|
|
for display,enabled in columns:
|
|
col_node = root.appendChild(doc.createElement('column'))
|
|
col_node.setAttribute('display', display)
|
|
col_node.setAttribute('enabled', {True:'y',False:'n'}[enabled])
|
|
with FileOrPath(outfile, 'wb') as fp:
|
|
doc.writexml(fp, '\t','\t','\n', encoding='utf-8')
|
|
|
|
def merge_css_into_xhtml(xhtml, css):
|
|
with FileOrPath(xhtml, 'r+') as xhtml:
|
|
with FileOrPath(css) as css:
|
|
try:
|
|
doc = minidom.parse(xhtml)
|
|
except Exception:
|
|
return False
|
|
head = doc.getElementsByTagName('head')[0]
|
|
links = head.getElementsByTagName('link')
|
|
for link in links:
|
|
if link.getAttribute('rel') == 'stylesheet':
|
|
head.removeChild(link)
|
|
style = head.appendChild(doc.createElement('style'))
|
|
style.setAttribute('type','text/css')
|
|
style.appendChild(doc.createTextNode(css.read()))
|
|
xhtml.truncate(0)
|
|
doc.writexml(xhtml, '\t','\t','\n', encoding='utf-8')
|
|
xhtml.seek(0)
|
|
return True
|
|
|
|
def export_to_xhtml(xml, xslt, css, columns, cmd='xsltproc --path "%(folder)s" "%(xslt)s" "%(xml)s"'):
|
|
folder = op.split(xml)[0]
|
|
output_column_xml(op.join(folder,'columns.xml'),columns)
|
|
html = StringIO()
|
|
cmd = cmd % {'folder': folder, 'xslt': xslt, 'xml': xml}
|
|
html.write(os.popen(cmd).read())
|
|
html.seek(0)
|
|
merge_css_into_xhtml(html,css)
|
|
html.seek(0)
|
|
html_path = op.join(folder,'export.htm')
|
|
html_file = open(html_path,'w')
|
|
html_file.write(html.read().encode('utf-8'))
|
|
html_file.close()
|
|
return html_path
|