Add Disclaimer, Privacy, and DMCA pages; update footer with legal links and copyright
Some checks failed
Deploy / Deploy Production (push) Has been skipped
Deploy / Cleanup Preview (push) Has been skipped
Deploy / Deploy Preview (push) Failing after 1s
CI / Scraper / Lint (pull_request) Successful in 12s
CI / Scraper / Test (pull_request) Successful in 16s
CI / UI / Build (pull_request) Successful in 20s
CI / Scraper / Build (pull_request) Successful in 17s
Some checks failed
Deploy / Deploy Production (push) Has been skipped
Deploy / Cleanup Preview (push) Has been skipped
Deploy / Deploy Preview (push) Failing after 1s
CI / Scraper / Lint (pull_request) Successful in 12s
CI / Scraper / Test (pull_request) Successful in 16s
CI / UI / Build (pull_request) Successful in 20s
CI / Scraper / Build (pull_request) Successful in 17s
This commit is contained in:
@@ -352,9 +352,9 @@
|
||||
</main>
|
||||
|
||||
<footer class="border-t border-zinc-800 mt-auto">
|
||||
<div class="max-w-6xl mx-auto px-4 py-5 flex flex-col sm:flex-row items-center justify-between gap-3">
|
||||
<span class="text-zinc-500 text-sm font-semibold tracking-tight">libnovel</span>
|
||||
<nav class="flex items-center gap-5 text-xs text-zinc-600">
|
||||
<div class="max-w-6xl mx-auto px-4 py-6 flex flex-col items-center gap-4 text-xs text-zinc-600">
|
||||
<!-- Top row: site links -->
|
||||
<nav class="flex flex-wrap items-center justify-center gap-x-5 gap-y-2">
|
||||
<a href="/books" class="hover:text-zinc-400 transition-colors">Library</a>
|
||||
<a href="/browse" class="hover:text-zinc-400 transition-colors">Discover</a>
|
||||
<a
|
||||
@@ -370,6 +370,13 @@
|
||||
</svg>
|
||||
</a>
|
||||
</nav>
|
||||
<!-- Bottom row: legal links + copyright -->
|
||||
<div class="flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-zinc-700">
|
||||
<a href="/disclaimer" class="hover:text-zinc-500 transition-colors">Disclaimer</a>
|
||||
<a href="/privacy" class="hover:text-zinc-500 transition-colors">Privacy</a>
|
||||
<a href="/dmca" class="hover:text-zinc-500 transition-colors">DMCA</a>
|
||||
<span>© {new Date().getFullYear()} libnovel</span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
34
ui/src/routes/disclaimer/+page.svelte
Normal file
34
ui/src/routes/disclaimer/+page.svelte
Normal file
@@ -0,0 +1,34 @@
|
||||
<svelte:head>
|
||||
<title>Disclaimer — libnovel</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="max-w-2xl mx-auto py-10 px-4">
|
||||
<h1 class="text-2xl font-bold text-zinc-100 mb-6">Disclaimer</h1>
|
||||
|
||||
<div class="space-y-5 text-sm text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
libnovel is a personal reading tool that indexes and caches publicly accessible novel content
|
||||
from third-party sources, primarily <a href="https://novelfire.net" target="_blank" rel="noopener noreferrer" class="text-amber-400 hover:text-amber-300 transition-colors">novelfire.net</a>.
|
||||
It is not affiliated with, endorsed by, or in any way officially connected to those sources.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
All novel titles, cover images, chapter text, and related materials are the property of their
|
||||
respective authors and publishers. libnovel does not claim ownership of any of this content.
|
||||
The content is reproduced solely for personal, non-commercial reading convenience.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you are a rights holder and believe your work is being used without authorisation, please
|
||||
refer to our <a href="/dmca" class="text-amber-400 hover:text-amber-300 transition-colors">DMCA policy</a>
|
||||
for instructions on how to request removal.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
libnovel makes no warranties regarding the accuracy, completeness, or timeliness of any
|
||||
content displayed. Use of this site is at your own risk.
|
||||
</p>
|
||||
|
||||
<p class="text-zinc-600 text-xs mt-8">Last updated: {new Date().getFullYear()}</p>
|
||||
</div>
|
||||
</div>
|
||||
45
ui/src/routes/dmca/+page.svelte
Normal file
45
ui/src/routes/dmca/+page.svelte
Normal file
@@ -0,0 +1,45 @@
|
||||
<svelte:head>
|
||||
<title>DMCA — libnovel</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="max-w-2xl mx-auto py-10 px-4">
|
||||
<h1 class="text-2xl font-bold text-zinc-100 mb-6">DMCA Takedown Policy</h1>
|
||||
|
||||
<div class="prose-zinc space-y-5 text-sm text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
libnovel respects the intellectual property rights of authors, publishers, and other content
|
||||
creators. If you believe that content available through this site infringes your copyright,
|
||||
please send a written takedown notice to the contact address below.
|
||||
</p>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">Your notice must include</h2>
|
||||
<ol class="list-decimal list-inside space-y-2 pl-1">
|
||||
<li>Your full legal name and contact information (email address).</li>
|
||||
<li>A description of the copyrighted work you claim has been infringed.</li>
|
||||
<li>The specific URL(s) on this site where the allegedly infringing content appears.</li>
|
||||
<li>
|
||||
A statement that you have a good-faith belief that the use is not authorised by the copyright
|
||||
owner, its agent, or the law.
|
||||
</li>
|
||||
<li>
|
||||
A statement, made under penalty of perjury, that the information in your notice is accurate
|
||||
and that you are the copyright owner or authorised to act on their behalf.
|
||||
</li>
|
||||
<li>Your electronic or physical signature.</li>
|
||||
</ol>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">How to submit</h2>
|
||||
<p>
|
||||
Send your notice by email to <span class="text-zinc-300 font-medium">dmca@libnovel.local</span>.
|
||||
We will review valid notices and remove or disable access to the identified content promptly.
|
||||
</p>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">Counter-notices</h2>
|
||||
<p>
|
||||
If you believe content was removed in error, you may submit a counter-notice to the same
|
||||
address with the information required under 17 U.S.C. § 512(g)(3).
|
||||
</p>
|
||||
|
||||
<p class="text-zinc-600 text-xs mt-8">Last updated: {new Date().getFullYear()}</p>
|
||||
</div>
|
||||
</div>
|
||||
55
ui/src/routes/privacy/+page.svelte
Normal file
55
ui/src/routes/privacy/+page.svelte
Normal file
@@ -0,0 +1,55 @@
|
||||
<svelte:head>
|
||||
<title>Privacy Policy — libnovel</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="max-w-2xl mx-auto py-10 px-4">
|
||||
<h1 class="text-2xl font-bold text-zinc-100 mb-6">Privacy Policy</h1>
|
||||
|
||||
<div class="space-y-5 text-sm text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
This policy describes what limited data libnovel collects and how it is used.
|
||||
</p>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">Data we collect</h2>
|
||||
<ul class="list-disc list-inside space-y-2 pl-1">
|
||||
<li>
|
||||
<span class="text-zinc-300">Session cookies</span> — a short-lived cookie is set when you
|
||||
visit the site to track reading progress across pages. No account is required.
|
||||
</li>
|
||||
<li>
|
||||
<span class="text-zinc-300">Account data (optional)</span> — if you create an account,
|
||||
we store your username and a hashed password. No email address is required.
|
||||
</li>
|
||||
<li>
|
||||
<span class="text-zinc-300">Reading progress</span> — the last chapter you read for each
|
||||
book is stored server-side, tied to your session or account, so you can resume reading.
|
||||
</li>
|
||||
<li>
|
||||
<span class="text-zinc-300">Saved books</span> — books you explicitly bookmark are stored
|
||||
server-side tied to your session or account.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">What we do not collect</h2>
|
||||
<ul class="list-disc list-inside space-y-2 pl-1">
|
||||
<li>No email addresses (unless you choose to provide one).</li>
|
||||
<li>No tracking pixels, analytics scripts, or third-party ad networks.</li>
|
||||
<li>No selling or sharing of data with third parties.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">Third-party content</h2>
|
||||
<p>
|
||||
Cover images and chapter content are fetched from third-party sources (e.g.
|
||||
<a href="https://novelfire.net" target="_blank" rel="noopener noreferrer" class="text-amber-400 hover:text-amber-300 transition-colors">novelfire.net</a>).
|
||||
Your browser may make requests directly to those domains when loading images.
|
||||
</p>
|
||||
|
||||
<h2 class="text-base font-semibold text-zinc-200 mt-6">Data deletion</h2>
|
||||
<p>
|
||||
You can delete your reading progress and saved books from your profile page at any time.
|
||||
To request full account deletion, contact us via the <a href="/dmca" class="text-amber-400 hover:text-amber-300 transition-colors">contact address listed in our DMCA policy</a>.
|
||||
</p>
|
||||
|
||||
<p class="text-zinc-600 text-xs mt-8">Last updated: {new Date().getFullYear()}</p>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user