fluncle 0.220.0 → 0.221.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/fluncle.mjs +19 -5
  2. package/package.json +1 -1
package/bin/fluncle.mjs CHANGED
@@ -610,7 +610,7 @@ function parseVersion(version) {
610
610
  var currentVersion;
611
611
  var init_version = __esm(() => {
612
612
  init_output();
613
- currentVersion = "0.220.0".trim() ? "0.220.0".trim() : "0.1.0";
613
+ currentVersion = "0.221.0".trim() ? "0.221.0".trim() : "0.1.0";
614
614
  });
615
615
 
616
616
  // src/update-notifier.ts
@@ -2452,7 +2452,7 @@ function parseVersion2(version) {
2452
2452
  var currentVersion2, latestReleaseUrl = "https://api.github.com/repos/mauricekleine/fluncle/releases/latest";
2453
2453
  var init_version2 = __esm(() => {
2454
2454
  init_output();
2455
- currentVersion2 = "0.220.0".trim() ? "0.220.0".trim() : "0.1.0";
2455
+ currentVersion2 = "0.221.0".trim() ? "0.221.0".trim() : "0.1.0";
2456
2456
  });
2457
2457
 
2458
2458
  // ../../packages/registry/src/index.ts
@@ -4934,11 +4934,14 @@ async function backfillAppleCatalogueCommand(limit, dryRun) {
4934
4934
  const params = new URLSearchParams({ dryRun: String(dryRun), limit: String(limit) });
4935
4935
  return adminApiPost(`/api/v1/admin/backfill/apple-catalogue?${params.toString()}`);
4936
4936
  }
4937
- async function backfillRecordingMbidsCommand(limit, dryRun, cursor) {
4937
+ async function backfillRecordingMbidsCommand(limit, dryRun, cursor, isrcRefreshLimit) {
4938
4938
  const params = new URLSearchParams({ dryRun: String(dryRun), limit: String(limit) });
4939
4939
  if (cursor) {
4940
4940
  params.set("cursor", cursor);
4941
4941
  }
4942
+ if (isrcRefreshLimit !== undefined) {
4943
+ params.set("isrcRefreshLimit", String(isrcRefreshLimit));
4944
+ }
4942
4945
  return adminApiPost(`/api/v1/admin/backfill/recording-mbids?${params.toString()}`);
4943
4946
  }
4944
4947
  async function backfillArtistEdgesCommand(limit, dryRun, cursor) {
@@ -10666,7 +10669,7 @@ JSON field reference:
10666
10669
  const { backfillLabelLineageCommand: backfillLabelLineageCommand2 } = await Promise.resolve().then(() => (init_admin_labels(), exports_admin_labels));
10667
10670
  await runBackfillLabelLineage(options, backfillLabelLineageCommand2);
10668
10671
  });
10669
- backfill.command("recording-mbids").description("Fill MusicBrainz recording MBIDs (crawler PK strip + ISRC resolve) over tracks").option("--dry-run", "Report the eligible worklist without any vendor call or write", false).option("--limit <limit>", "Max ISRC lookups to process", "50").option("--json", "Print JSON", false).action(async (options) => {
10672
+ backfill.command("recording-mbids").description("Fill MusicBrainz recording MBIDs (crawler PK strip + ISRC resolve) over tracks").option("--dry-run", "Report the eligible worklist without any vendor call or write", false).option("--limit <limit>", "Max ISRC lookups to process", "50").option("--isrc-refresh-limit <limit>", "Max MusicBrainz ISRC re-reads to process", "25").option("--json", "Print JSON", false).action(async (options) => {
10670
10673
  const { backfillRecordingMbidsCommand: backfillRecordingMbidsCommand2 } = await Promise.resolve().then(() => (init_admin_tracks(), exports_admin_tracks));
10671
10674
  await runBackfillRecordingMbids(options, backfillRecordingMbidsCommand2);
10672
10675
  });
@@ -11905,21 +11908,26 @@ async function runBackfillLabelImages(options, backfillLabelImagesCommand2) {
11905
11908
  }
11906
11909
  async function runBackfillRecordingMbids(options, backfillRecordingMbidsCommand2) {
11907
11910
  const limit = parseListLimit(options.limit);
11911
+ const isrcRefreshLimit = parseListLimit(options.isrcRefreshLimit);
11908
11912
  const resolved = [];
11909
11913
  const missed = [];
11910
11914
  const failed = [];
11915
+ const isrcRefreshed = [];
11916
+ const isrcRefreshMissed = [];
11911
11917
  let cursor;
11912
11918
  let dryRun = options.dryRun;
11913
11919
  let prefixStripped = 0;
11914
11920
  let throttled = false;
11915
11921
  while (resolved.length + missed.length + failed.length < limit) {
11916
11922
  const remaining = limit - (resolved.length + missed.length + failed.length);
11917
- const result = await backfillRecordingMbidsCommand2(remaining, options.dryRun, cursor);
11923
+ const result = await backfillRecordingMbidsCommand2(remaining, options.dryRun, cursor, isrcRefreshLimit);
11918
11924
  dryRun = result.dryRun;
11919
11925
  prefixStripped += result.prefixStripped;
11920
11926
  resolved.push(...result.resolved);
11921
11927
  missed.push(...result.missed);
11922
11928
  failed.push(...result.failed);
11929
+ isrcRefreshed.push(...result.isrcRefreshed ?? []);
11930
+ isrcRefreshMissed.push(...result.isrcRefreshMissed ?? []);
11923
11931
  if (!options.json) {
11924
11932
  const verb2 = result.dryRun ? "would resolve" : "resolved";
11925
11933
  console.log(` \u2026stripped ${result.prefixStripped} from PK; ${verb2} ${result.resolvedCount} by ISRC; ${result.missedCount} not in MusicBrainz; ${result.failedCount} failed`);
@@ -11938,6 +11946,10 @@ async function runBackfillRecordingMbids(options, backfillRecordingMbidsCommand2
11938
11946
  dryRun,
11939
11947
  failed,
11940
11948
  failedCount: failed.length,
11949
+ isrcRefreshMissed,
11950
+ isrcRefreshMissedCount: isrcRefreshMissed.length,
11951
+ isrcRefreshed,
11952
+ isrcRefreshedCount: isrcRefreshed.length,
11941
11953
  missed,
11942
11954
  missedCount: missed.length,
11943
11955
  ok: true,
@@ -11953,6 +11965,7 @@ async function runBackfillRecordingMbids(options, backfillRecordingMbidsCommand2
11953
11965
  }
11954
11966
  const verb = dryRun ? "Would fill" : "Filled";
11955
11967
  console.log(`${verb} ${prefixStripped} recording MBID(s) from crawler PKs; ${resolved.length} by ISRC; ${missed.length} not in MusicBrainz; ${failed.length} failed.`);
11968
+ console.log(`${dryRun ? "Would re-read" : "Re-read"} ${isrcRefreshed.length + isrcRefreshMissed.length} recording(s) for ISRCs \u2014 ${isrcRefreshed.length} filled, ${isrcRefreshMissed.length} still none.`);
11956
11969
  for (const item of failed) {
11957
11970
  console.log(` ${item.trackId}: ${item.error}`);
11958
11971
  }
@@ -13677,6 +13690,7 @@ function normalizeCommanderError(error) {
13677
13690
  return new Error(message);
13678
13691
  }
13679
13692
  var stringOptions = new Set([
13693
+ "--isrc-refresh-limit",
13680
13694
  "--against",
13681
13695
  "--analyzed-at",
13682
13696
  "--analyzed-from",
package/package.json CHANGED
@@ -31,5 +31,5 @@
31
31
  "url": "git+https://github.com/mauricekleine/fluncle.git"
32
32
  },
33
33
  "type": "module",
34
- "version": "0.220.0"
34
+ "version": "0.221.0"
35
35
  }