feat: sticky notices for sync/resolve summaries
This commit is contained in:
parent
49d7779bc1
commit
f146de1b76
3 changed files with 16 additions and 12 deletions
|
|
@ -43,8 +43,8 @@ export class LibraryController {
|
||||||
|
|
||||||
constructor(private plugin: MediaDbPlugin) {}
|
constructor(private plugin: MediaDbPlugin) {}
|
||||||
|
|
||||||
private notify(msg: string): void {
|
private notify(msg: string, timeout?: number): void {
|
||||||
new Notice(msg);
|
new Notice(msg, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
private getKey(name: 'rawg' | 'comicvine'): string {
|
private getKey(name: 'rawg' | 'comicvine'): string {
|
||||||
|
|
@ -142,7 +142,7 @@ export class LibraryController {
|
||||||
if (quiet) {
|
if (quiet) {
|
||||||
console.log(`[media-db-library] ${msg}`);
|
console.log(`[media-db-library] ${msg}`);
|
||||||
} else {
|
} else {
|
||||||
this.notify(msg);
|
this.notify(msg, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,6 +155,7 @@ export class LibraryController {
|
||||||
this.notify(
|
this.notify(
|
||||||
`Library ${mode}sync (${spec.typeName}): ${report.synced} checked, ${report.written} updated, ${report.flipped.length} flipped` +
|
`Library ${mode}sync (${spec.typeName}): ${report.synced} checked, ${report.written} updated, ${report.flipped.length} flipped` +
|
||||||
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return report;
|
return report;
|
||||||
|
|
@ -186,6 +187,7 @@ export class LibraryController {
|
||||||
this.notify(
|
this.notify(
|
||||||
`Library ${mode}resolve (${spec.typeName}): ${report.resolved.length} resolved, ${report.ambiguous.length} ambiguous/no match` +
|
`Library ${mode}resolve (${spec.typeName}): ${report.resolved.length} resolved, ${report.ambiguous.length} ambiguous/no match` +
|
||||||
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
return report;
|
return report;
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -209,7 +211,7 @@ export class LibraryController {
|
||||||
// rest of the run -- log + surface it, then keep going with the other types
|
// rest of the run -- log + surface it, then keep going with the other types
|
||||||
const msg = `Library sync failed for ${spec.typeName}: ${e instanceof Error ? e.message : String(e)}`;
|
const msg = `Library sync failed for ${spec.typeName}: ${e instanceof Error ? e.message : String(e)}`;
|
||||||
console.log(`[media-db-library] ${msg}`);
|
console.log(`[media-db-library] ${msg}`);
|
||||||
if (!quiet) this.notify(msg);
|
if (!quiet) this.notify(msg, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!full) {
|
if (!full) {
|
||||||
|
|
|
||||||
|
|
@ -185,45 +185,45 @@ export default class MediaDbPlugin extends Plugin {
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: 'watchlist-sync-now',
|
id: 'watchlist-sync-now',
|
||||||
name: 'Watchlist: sync now (airing/active only)',
|
name: 'Watchlist: sync now (airing/active only)',
|
||||||
callback: () => void this.watchlist.syncNow(false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.watchlist.syncNow(false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: 'watchlist-sync-full',
|
id: 'watchlist-sync-full',
|
||||||
name: 'Watchlist: full sync (all entries)',
|
name: 'Watchlist: full sync (all entries)',
|
||||||
callback: () => void this.watchlist.syncNow(true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.watchlist.syncNow(true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: 'watchlist-sync-dry-run',
|
id: 'watchlist-sync-dry-run',
|
||||||
name: 'Watchlist: dry-run full sync (log only, no writes)',
|
name: 'Watchlist: dry-run full sync (log only, no writes)',
|
||||||
callback: () => void this.watchlist.syncNow(true, true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.watchlist.syncNow(true, true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: 'watchlist-resolve-ids',
|
id: 'watchlist-resolve-ids',
|
||||||
name: 'Watchlist: resolve missing TMDB ids',
|
name: 'Watchlist: resolve missing TMDB ids',
|
||||||
callback: () => void this.watchlist.resolveMissingIds().catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.watchlist.resolveMissingIds().catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
|
|
||||||
for (const { spec, slug } of LIBRARY_TYPES) {
|
for (const { spec, slug } of LIBRARY_TYPES) {
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: `library-sync-${slug}`,
|
id: `library-sync-${slug}`,
|
||||||
name: `Library: sync ${slug} now`,
|
name: `Library: sync ${slug} now`,
|
||||||
callback: () => void this.library.syncType(spec, false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.library.syncType(spec, false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: `library-resolve-${slug}`,
|
id: `library-resolve-${slug}`,
|
||||||
name: `Library: resolve ${slug} ids`,
|
name: `Library: resolve ${slug} ids`,
|
||||||
callback: () => void this.library.resolveType(spec).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.library.resolveType(spec).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: `library-dry-run-${slug}`,
|
id: `library-dry-run-${slug}`,
|
||||||
name: `Library: dry-run ${slug} full sync`,
|
name: `Library: dry-run ${slug} full sync`,
|
||||||
callback: () => void this.library.syncType(spec, true, true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.library.syncType(spec, true, true).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: 'library-sync-all',
|
id: 'library-sync-all',
|
||||||
name: 'Library: sync all',
|
name: 'Library: sync all',
|
||||||
callback: () => void this.library.syncAll(false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e))),
|
callback: () => void this.library.syncAll(false).catch((e: unknown) => new Notice(e instanceof Error ? e.message : String(e), 0)),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@ export class WatchlistController {
|
||||||
new Notice(
|
new Notice(
|
||||||
`Watchlist ${mode}sync: ${report.synced} checked, ${report.written} updated, ${report.flipped.length} flipped to Unwatched` +
|
`Watchlist ${mode}sync: ${report.synced} checked, ${report.written} updated, ${report.flipped.length} flipped to Unwatched` +
|
||||||
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!dryRun) {
|
if (!dryRun) {
|
||||||
|
|
@ -147,6 +148,7 @@ export class WatchlistController {
|
||||||
new Notice(
|
new Notice(
|
||||||
`Watchlist ${mode}resolve: ${report.scanned} scanned, ${report.resolved} resolved, ${report.ambiguous} ambiguous/no match` +
|
`Watchlist ${mode}resolve: ${report.scanned} scanned, ${report.resolved} resolved, ${report.ambiguous} ambiguous/no match` +
|
||||||
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
(report.errors.length ? `, ${report.errors.length} errors (see console)` : ''),
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
return report;
|
return report;
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue