1 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
 
   2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 
   5 from librarian import functions, OutputFile, get_resource
 
  11 functions.reg_substitute_entities()
 
  12 functions.reg_wrap_words()
 
  14 functions.reg_person_name()
 
  17 with io.open(get_resource("res/text/template.txt")) as f:
 
  21 def transform(wldoc, flags=None, **options):
 
  23     Transforms input_file in XML to output_file in TXT.
 
  24     possible flags: raw-text,
 
  27     style_filename = os.path.join(os.path.dirname(__file__),
 
  29     style = etree.parse(style_filename)
 
  31     document = copy.deepcopy(wldoc)
 
  33     document.swap_endlines()
 
  37             document.edoc.getroot().set(flag, 'yes')
 
  38     if 'wrapping' in options:
 
  39         options['wrapping'] = str(options['wrapping'])
 
  41     result = document.transform(style, **options)
 
  43     if not flags or 'raw-text' not in flags:
 
  44         if document.book_info:
 
  45             parsed_dc = document.book_info
 
  46             description = parsed_dc.description
 
  47             url = document.book_info.url
 
  49             license_name = parsed_dc.license_description
 
  50             license = parsed_dc.license
 
  51             license_description = [
 
  53                     "Wszystkie zasoby Wolnych Lektur możesz swobodnie wykorzystywać, "
 
  54                     "publikować i rozpowszechniać pod warunkiem zachowania warunków "
 
  55                     "licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur."
 
  60                 license_description.append(
 
  61                     "Ten utwór jest udostępniony na licencji %s: %s" % (
 
  66                 license_description.append(
 
  67                     "Ten utwór jest w domenie publicznej."
 
  69             license_description.append(
 
  70                 "Wszystkie materiały dodatkowe (przypisy, motywy literackie) są "
 
  71                 "udostępnione na Licencji Wolnej Sztuki 1.3: "
 
  72                 "https://artlibre.org/licence/lal/pl/\n"
 
  73                 "Fundacja Wolne Lektury zastrzega sobie prawa do wydania "
 
  74                 "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich "
 
  75                 "i prawach pokrewnych.\nWykorzystując zasoby z Wolnych Lektur, "
 
  76                 "należy pamiętać o zapisach licencji oraz zasadach, które "
 
  77                 "spisaliśmy w Zasadach wykorzystania Wolnych Lektur: "
 
  78                 "https://wolnelektury.pl/info/zasady-wykorzystania/\nZapoznaj "
 
  79                 "się z nimi, zanim udostępnisz dalej nasze książki."
 
  81             license_description = "\n".join(license_description)
 
  83             source = parsed_dc.source_name
 
  85                 source = "\n\nTekst opracowany na podstawie: " + source
 
  89             contributors = ', '.join(
 
  91                 for person in sorted(set(
 
  93                         parsed_dc.technical_editors + parsed_dc.editors
 
  98                     "\n\nOpracowanie redakcyjne i przypisy: %s."
 
 101             funders = ', '.join(parsed_dc.funders)
 
 103                 funders = "\n\nPublikację wsparli i wsparły: %s." % funders
 
 104             publisher = '\n\nWydawca: ' + ', '.join(parsed_dc.publisher)
 
 105             isbn = getattr(parsed_dc, 'isbn_txt', None)
 
 111             description = ("Publikacja zrealizowana w ramach projektu "
 
 112                            "Wolne Lektury (http://wolnelektury.pl).")
 
 114             license_description = ""
 
 120         result = (TEMPLATE % {
 
 121             'description': description,
 
 123             'license_description': license_description,
 
 126             'contributors': contributors,
 
 128             'publisher': publisher,
 
 132         result = str(result).encode('utf-8')
 
 133     return OutputFile.from_bytes(b"\r\n".join(result.splitlines()) + b"\r\n")