switch download audiobooks views
authorRadek Czajka <rczajka@rczajka.pl>
Tue, 16 Jun 2026 12:16:25 +0000 (14:16 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Tue, 16 Jun 2026 12:16:25 +0000 (14:16 +0200)
src/catalogue/templates/catalogue/audiobook_zip_readme.txt
src/catalogue/urls.py
src/catalogue/views.py

index eaa63a5..a674f31 100644 (file)
@@ -1,7 +1,8 @@
-Ten audiobook pochodzi z darmowej biblioteki internetowej Wolne Lektury. Znajdziesz w niej tysiące ebooków i audiobooków.
-Wolne Lektury to projekt prowadzony przez fundację Wolne Lektury. Jesteśmy organizacją pozarządową. Działamy dzięki wsparciu darczyńców takich jak Ty. 
-Wspólnie możemy udostępnić kolejne książki. Wspieraj Wolne Lektury stałą comiesięczną kwotą. Dzięki temu wcześniej uzyskasz dostęp do wyjątkowych publikacji! Możesz też wesprzeć nas jednorazowo. 
-Wejdź na https://wolnelektury.pl/pomagam/ i dorzuć się do nowych nagrań.
+Ten audiobook pochodzi z darmowej biblioteki internetowej Wolne Lektury. Znajdziesz w niej tysiące książek i audiobooków.
+
+Wolne Lektury nie mają stałego finansowania.
+Aby stabilnie działać, potrzebujemy wsparcia darczyńców takich jak Ty.
+Wejdź na https://wolnelektury.pl/pomagam/ by wesprzeć naszą działalność.
 
 Audiobooki Wolnych Lektur są udostępniane na wolnych licencjach, co oznacza, że możesz je swobodnie wykorzystywać, udostępniać i publikować pod warunkiem zachowania warunków licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur: https://wolnelektury.pl/info/zasady-wykorzystania/ 
 
@@ -9,9 +10,7 @@ Audiobooki Wolnych Lektur są udostępniane na wolnych licencjach, co oznacza, 
 
 {% endif %}{% if meta.cover_by %}Okładka na podstawie: {{ meta.cover_by|safe }}{% if meta.cover_source %}, {{ meta.cover_source }}{% endif %}.
 
-{% endif %}Przekaż 1,5%, by wszystkie dzieciaki w Polsce miały dostęp do darmowych książek KRS 0000070056: https://wolnelektury.pl/info/wesprzyj-nas/
-
-Zostań Przyjacielem Wolnych Lektur: https://wolnelektury.pl/pomagam/
+{% endif %}Przekaż 1,5% na Wolne Lektury: KRS 0000070056, https://wolnelektury.pl/info/wesprzyj-nas/
 
 Słuchaj nas na YouTube: https://wolnelektury.pl/re/WolneLekturyYT/
 
@@ -19,12 +18,10 @@ Wolne Lektury
 ul. Marszałkowska 84/92 lok. 125
 00-514 Warszawa
 tel./fax: +48 22 621 30 17
-e-mail:fundacja@wolnelektury.pl
-www.fundacja.wolnelektury.pl
+e-mail: fundacja@wolnelektury.pl
+https://fundacja.wolnelektury.pl
 
 Organizacja Pożytku Publicznego
 Sąd Rejestrowy dla M.St. Warszawy w Warszawie,
 XII Wydział Gospodarczy
-KRS 0000070056, NIP 952-18-77-087 
-
-Zapraszamy do wysłuchania audiobooków Wolnych Lektur: https://wolnelektury.pl/katalog/audiobooki/
+KRS 0000070056, NIP 952-18-77-087
index 724a783..37b298d 100644 (file)
@@ -50,9 +50,8 @@ urlpatterns = [
     path('zip/pdf.zip', views.download_zip, {'file_format': 'pdf', 'slug': None}, 'download_zip_pdf'),
     path('zip/epub.zip', views.download_zip, {'file_format': 'epub', 'slug': None}, 'download_zip_epub'),
     path('zip/mobi.zip', views.download_zip, {'file_format': 'mobi', 'slug': None}, 'download_zip_mobi'),
-    path('zip/mp3/<slug:slug>.zip', views.download_zip, {'media_format': 'mp3'}, 'download_zip_mp3'),
-    path('zip/<slug:slug>_mp3.zip', views.stream_zip, {'media_format': 'mp3'}),
-    path('zip/ogg/<slug:slug>.zip', views.download_zip, {'media_format': 'ogg'}, 'download_zip_ogg'),
+    path('zip/<slug:slug>_mp3.zip', views.stream_zip, {'media_format': 'mp3'}, 'download_zip_mp3'),
+    path('zip/<slug:slug>_ogg.zip', views.stream_zip, {'media_format': 'ogg'}, 'download_zip_ogg'),
 
     # Public interface. Do not change this URLs.
     path('lektura/<slug:slug>.html', views.book_text, name='book_text'),
index 4873106..8bb86c2 100644 (file)
@@ -526,6 +526,7 @@ def stream_zip(request, media_format=None, slug=None):
         for bm in book.media.filter(type=media_format).order_by('index'):
             yield (
                 bm.file.path,
+                bm.get_extra_info_json().get('license'),
                 names + (slugify(bm.part_name),) if bm.part_name else names
             )
         for child in book.get_children():
@@ -533,13 +534,23 @@ def stream_zip(request, media_format=None, slug=None):
 
     zs = ZipStream()
 
-    for i, (file_path, names) in enumerate(iterate_audiobooks(book, ())):
+    licenses = set()
+    for i, (file_path, lic, names) in enumerate(iterate_audiobooks(book, ())):
         index = i + 1
         part_name = '_'.join(names)
         ext = file_path.rsplit('.', 1)[-1]
         zip_name = f'{book.slug}_{index:03d}_{part_name}'[:240] + '.' + ext
         zs.add_path(file_path, zip_name)
 
+        lic_name = constants.LICENSES.get(lic, {}).get('locative')
+        if lic_name:
+            licenses.add(lic_name)
+
+    readme = render_to_string('catalogue/audiobook_zip_readme.txt', {
+        'licenses': licenses,
+    })
+    zs.add(readme, 'informacje.txt')
+
     response = StreamingHttpResponse(zs, content_type='application/zip')
     response['Content-Disposition'] = f'attachment; filename={slug}_{media_format}.zip'
     return response