diff options
Diffstat (limited to 'misc')
| -rwxr-xr-x | misc/simple_ooo_replace.py | 79 | 
1 files changed, 79 insertions, 0 deletions
| diff --git a/misc/simple_ooo_replace.py b/misc/simple_ooo_replace.py new file mode 100755 index 000000000..62cbab7a5 --- /dev/null +++ b/misc/simple_ooo_replace.py @@ -0,0 +1,79 @@ +import os +import shutil +import sys +from zipfile import ZipFile, ZIP_DEFLATED + +rpl_lst = [ +    ('adminact_associated_file_general_contractor_attached_to_name', +     'adminact_associated_file_corporation_general_contractor_name'), +    ('adminact_associated_file_general_contractor_' +     'attached_to_address', +     'adminact_associated_file_corporation_general_contractor_' +     'address'), +    ('adminact_associated_file_general_contractor_' +     'address_complement', +     'adminact_associated_file_corporation_general_contractor_' +     'address_complement '), +    ('adminact_associated_file_general_contractor_' +     'attached_to_postal_code', +     'adminact_associated_file_corporation_general_contractor_' +     'postal_code '), +    ('adminact_associated_file_general_contractor_attached_to_town', +     'adminact_associated_file_corporation_general_contractor_town', +     ), +    ('adminact_associated_file_address', +     'adminact_associated_file_get_locality', +     ) +] + +context = dict(rpl_lst) + + +def value_replace(content): +    value = content +    modified = False +    for key in context: +        if key in value: +            modified = True +            value = value.replace(key, context[key]) +    return value, modified + + +def replace(directory, infile): +    print("Processing {}".format(infile)) +    outfile = "PREPROCESS--" + infile +    infile = directory + os.sep + infile +    outfile = directory + os.sep + outfile + +    inzip = ZipFile(infile, 'r', ZIP_DEFLATED) +    outzip = ZipFile(outfile, 'w', ZIP_DEFLATED) + +    values = {} +    idx = 0 +    for xml_file in ('content.xml', 'styles.xml'): +        content = inzip.read(xml_file) +        values[xml_file], modified = value_replace(content) +        if modified: +            idx += 1 + +    for f in inzip.infolist(): +        if f.filename in values: +            outzip.writestr(f.filename, values[f.filename]) +        else: +            outzip.writestr(f, inzip.read(f.filename)) + +    inzip.close() +    outzip.close() +    # replace original by PREPROCESS +    shutil.move(outfile, infile) +    return idx + +directory = sys.argv[-1] +idx = 0 + + +for fle in os.listdir(directory): +    if fle.endswith('.odt'): +        idx += replace(directory, fle) + +print("{} modifications".format(idx)) | 
