diff --git a/src/filters/rclsoff-flat.py b/src/filters/rclsoff-flat.py index 4971e524..471979f2 100755 --- a/src/filters/rclsoff-flat.py +++ b/src/filters/rclsoff-flat.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2014 J.F.Dockes +# Copyright (C) 2014-2018 J.F.Dockes # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -16,15 +16,11 @@ # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ###################################### -from __future__ import print_function - import sys import rclexecm -import rclxslt -from zipfile import ZipFile -from rclbasehandler import RclBaseHandler +import rclgenxslt -stylesheet_meta = ''' +stylesheet = ''' xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:ooo="http://openoffice.org/2004/office" - exclude-result-prefixes="office xlink meta ooo dc" + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + exclude-result-prefixes="office xlink meta ooo dc text" > - + + + + + + + + + + + - - - + + + + + + + - - - - - - - + + + + + + + - - <xsl:value-of select="."/> - - - - - - abstract - - - - - - - - - - keywords - - - - - - - - - - author - - - - - - - - - - keywords - - - - - - - - -''' - -stylesheet_content = ''' - - - - - - - - - - - - -

+ + <xsl:value-of select="."/> - +
- -

- -
+ + + abstract + + + + + + - - - + + + keywords + + + + + + - -
-
+ + + author + + + + + + - - - + + + keywords + + + + + + + + +

+ +
+ + +

+ +
+ + + + + + +
+
+ + + +
''' -class OOExtractor(RclBaseHandler): - def __init__(self, em): - super(OOExtractor, self).__init__(em) - - def html_text(self, fn): - f = open(fn, 'rb') - data = f.read() - f.close() - - docdata = b'\n\n\n' - - try: - res = rclxslt.apply_sheet_data(stylesheet_meta, data) - docdata += res - except: - # To be checked. I'm under the impression that I get this when - # nothing matches? - #self.em.rclog("no/bad metadata in %s" % fn) - pass - - docdata += b'' - - res = rclxslt.apply_sheet_data(stylesheet_content, data) - docdata += res - docdata += b'' - - return docdata - - if __name__ == '__main__': proto = rclexecm.RclExecM() - extract = OOExtractor(proto) + extract = rclgenxslt.XSLTExtractor(proto, stylesheet) rclexecm.main(proto, extract)