#!/usr/bin/env python3 # # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # Run this in instdir/share/registry/ # Requires Python 3.6 or greater. import sys import random import time from math import floor from lxml import etree modules = ["writer.xcd","calc.xcd","impress.xcd","draw.xcd","math.xcd","base.xcd","graphicfilter.xcd"] def rdm(prefix): return prefix + "_id" + str(floor(random.random() * 1000) + 1) + str(int(time.time())) output = "" output += f'\n' output += f'\n' output += f'\n' output += f'\n' output += f'\n' output += f'File Conversion Filters Tables\n' output += f'/text/shared/guide/convertfilters.xhp\n' output += f'\n\n\n' output += f'
\n' output += f'\n' output += f'filters;document conversion\n' output += f'document conversion;filters\n' output += f'convert-to;filters\n' output += f'command line document conversion;filters\n' output += f'module file filters\n' output += f'\n' output += f'

File Conversion Filter Names

\n' output += f'Tables with filter names for command line document conversion.\n' output += f'
\n' output += f'Filter nameMedia typeFile name extensions\n' for module in modules: tree = etree.parse(module) namespaces = tree.getroot().nsmap typenodes = tree.findall('oor:component-data/node[@oor:name="Types"]/node', namespaces) filters = [] for type in typenodes: uiname = str(type.findtext('prop[@oor:name="UIName"]/value', namespaces=namespaces)) mediatype = str(type.findtext('prop[@oor:name="MediaType"]/value', namespaces=namespaces)) extensions = str(type.findtext('prop[@oor:name="Extensions"]/value', namespaces=namespaces)) filters.append([uiname,mediatype,extensions]) st = sorted(filters, key=lambda x: x[0]) output += f'
\n' output += f'\n' output += f'command line document conversion; filters for {module[:-4].upper()}\n' output += f'\n' output += f'

Filters for {module[:-4].upper()}

\n' output += f' \n' output += ' \n' output += ' \n' output += f' ' output += '\n' output += ' \n' output += ' \n' output += f' ' output += '\n' output += ' \n' output += ' \n' output += f' ' output += '\n' output += ' \n' output += ' \n' count = 0 for item in st: output += ' \n' output += ' \n' output += f' ' output += f'{item[0]}' count +=1 output += '\n' output += ' \n' output += ' \n' output += f' ' output += f'{item[1]}' count +=1 output += '\n' output += ' \n' output += ' \n' output += f' ' output += f'{item[2]}' count +=1 output += '\n' output += ' \n' output += ' \n' output += '
\n' output += '
\n' output += f'\n
' print(output)