2 # -*- coding: utf-8 -*-
8 from librarian import dcparser
12 Kodowanie znaków w dokumencie: UTF-8.
14 Publikacja zrealizowana w ramach projektu Wolne Lektury (http://wolnelektury.pl/). Reprodukcja cyfrowa wykonana przez
15 Bibliotekę Narodową z egzemplarza pochodzącego ze zbiorów BN. Ten utwór nie jest chroniony prawem autorskim i znajduje
16 się w domenie publicznej, co oznacza, że możesz go swobodnie wykorzystywać, publikować i rozpowszechniać.
18 Wersja lektury w opracowaniu merytorycznym i krytycznym (przypisy i motywy) dostępna jest na stronie %s.
23 def get_header(filename):
24 return HEADER % dcparser.parse(filename).url
28 (r'<rdf:RDF[^>]*>(.|\n)*?</rdf:RDF>', ''),
29 (r'<motyw[^>]*>(.|\n)*?</motyw>', ''),
30 ('<(begin|end)\\sid=[\'|"][b|e]\\d+[\'|"]\\s/>', ''),
31 (r'<extra>((<!--<(elementy_poczatkowe|tekst_glowny)>-->)|(<!--</(elementy_poczatkowe|tekst_glowny)>-->))</extra>', ''),
32 (r'<uwaga>(.|\n)*?</uwaga>', ''),
33 (r'<p[a|e|r|t]>(.|\n)*?</p[a|e|r|t]>', ''),
43 if __name__ == '__main__':
44 # Parse commandline arguments
45 usage = """Usage: %prog [options] SOURCE [SOURCE...]
46 Convert SOURCE files to TXT format."""
48 parser = optparse.OptionParser(usage=usage)
50 parser.add_option('-v', '--verbose', action='store_true', dest='verbose', default=False,
51 help='print status messages to stdout')
53 options, input_filenames = parser.parse_args()
55 if len(input_filenames) < 1:
60 for input_filename in input_filenames:
64 output_filename = os.path.splitext(input_filename)[0] + '.txt'
66 xml = codecs.open(input_filename, 'r', encoding='utf-8').read()
67 for pattern, repl in REGEXES:
68 xml, n = re.subn(pattern, repl, xml)
70 output = codecs.open(output_filename, 'w', encoding='utf-8')
71 output.write(get_header(input_filename))