#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

# Author: Oliver Wienand
# Date: 20.03.2005
# Version: 0.32

# Python Imports

import sys
import os
import getopt
import re
import cStringIO
import glob
import shutil
from string import Template

# Standardwerte

opt_verbose = 0


class Usage(Exception):
    def __init__(self, msg):
        self.msg = msg

def hilfe():
    print """
Usage: wwwhtml [OPTIONS]

Synopsis:

   This script edits html files for new hp layout

   """

def process():


    if opt_verbose: print "Building regular expressions"
#    extract1 = re.compile( "(?P<HEAD>.*)<BODY LANG=\"EN\"  BACKGROUND=\"Mybg.gif\">.*(?P<INTER><H.>.*?</H.>).{0,3}(<!--docid::.*::-->)(?P<BODY>.*)",
#                  re.DOTALL)
    extract1 = re.compile( \
    '.*<HEAD>(?P<HEAD>.*)</HEAD>.*<BODY LANG="EN"  BACKGROUND="Mybg.gif">.*?</A>(?P<BODY>.*)<HR SIZE=1>.*',
                  re.DOTALL)

    html_files = glob.glob("*.htm")
    for file_name in html_files:
        print "Processing file: " + file_name
#        shutil.move(file_name, file_name + ".old")
        html_in = file(file_name, "r+")
        data = html_in.read()
        html_in.close()

        if data.find("<BODY LANG=\"EN\">") == -1:

            data_extr = extract1.search(data)
            if data_extr == None:
                print "--- Error in file: " + file_name + " ---"
            else:
                print "Begin writing"
                file_name = '../' + file_name.rstrip('htm') + 'tmpl.htm';
                html_out = file(file_name, "w+")
                html_out.write('<!-- insert header begin-->')
                html_out.write(data_extr.expand("\g<HEAD>"))
                html_out.write('<!-- insert header end-->')
                html_out.write(data_extr.expand("\g<BODY>"))
                html_out.write('<!-- insert footer-->')
                html_out.close()
                print "Edited file wrote: " + file_name

def main(argv=None):
    print "This is the wwwhtml python script V 0.32"
    print "Author: Oliver Wienand"
    print "Date: 29.04.2005\n"
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "hv", ["help", "verbose"])
        except getopt.error, msg:
             raise Usage(msg)
    # more code, unchanged
    except Usage, err:
        print >>sys.stderr, err.msg
        print >>sys.stderr, "for help use --help"
        return 2

    global opt_verbose

 #    for o, a in opts:
#         if o in ("-v", "--verbose"):
#             opt_verbose = 1
#          if o in ("-h", "--help"):
#             hilfe()
#             sys.exit(0)
    process()

if __name__ == "__main__":
    sys.exit(main())

