{sources.length} sources
{#if showAdd}
{#if form.type === 'youtube'} {:else if form.type === 'nitter'} {:else if form.type === 'telegram'} {:else} {/if}
{#if form.type === 'telegram'} Public channels only for now — private channels without a public username aren't supported yet. {/if}
Categories
{#each assignableCategories as cat (cat.id)} {/each}
{/if}
Name Type Category Poll
{#each sources as source (source.id)}
{source.name}
{#if justCleared?.id === source.id || justReissued?.id === source.id || justPolled?.id === source.id || source.lastError}
{#if justCleared?.id === source.id} ✓ cleared {justCleared.items} item(s), {justCleared.articles} article(s) {:else if justReissued?.id === source.id} ✓ deleted {justReissued.articles} article(s), requeued {justReissued.items} item(s) — republishing within ~1 min {:else if justPolled?.id === source.id} {justPolled.count > 0 ? `✓ ${justPolled.count} new item(s)` : '✓ up to date, nothing new'} {:else if source.lastError} last poll failed · {source.lastError} {/if}
{/if}
{source.type.toUpperCase()} {source.category.join(', ')} {source.pollIntervalMinutes} min
{/each}