Checkpoint peering identity and opt-in discovery

This commit is contained in:
Codex committed 2026-10-13 22:00:54 +02:00
1 parent eba9b50e30
commit 47de081721
44 files changed
+1557 -55

No files matched your search

+6
View File
@@ -30,6 +30,9 @@
const sources = arr(meta.sources).filter(source => source && (source.name || source.url));
const tags = arr(meta.tags).filter(Boolean);
const numberedChapters = M.chapters.map(chapter => /^Ch\. (\d+(?:\.\d+)?)/.exec(chapter.label || ''))
.filter(Boolean).map(match => Number(match[1]));
const firstNumber = numberedChapters.length ? Math.min(...numberedChapters) : null;
const books = {};
for (const book of M.books) books[book.key] = book;
const selectedBooks = new Set();
@@ -39,6 +42,9 @@
h('h1', {}, M.title),
arr(meta.altTitles).length ? h('div', { class: 'muted' }, arr(meta.altTitles).join(' · ')) : null,
h('div', { class: 'muted' }, [arr(meta.authors).join(', '), meta.status, releaseDate(), TYPE[M.direction]].filter(Boolean).join(' · ')),
firstNumber > 1 ? h('div', { class: 'coverage-indicators', role: 'status' },
h('span', { class: 'coverage-badge coverage-partial' }, 'Series coverage partial'),
h('span', { class: 'small' }, `This library starts at chapter ${firstNumber}; earlier numbered chapters are absent.`)) : null,
h('div', { class: 'chips' }, tags.map(tag => h('a', { class: 'chip chip-link', href: libraryUrlForTags([tag]), title: `Show manga tagged ${tag}` }, tag))),
meta.description ? h('p', { class: 'desc' }, meta.description) : null,
h('div', { class: 'actions' },