From 17fab421ace35bbee270d72d9766199dca3224da Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Mon, 1 Jul 2024 20:06:37 +0700 Subject: [PATCH 1/2] chore: add generative_uri --- hyperdata/package.json | 2 +- hyperdata/src/normalize.ts | 7 +++++-- hyperdata/tests/examples/koda-art-generative.json | 8 ++++++++ hyperdata/tests/generative.test.ts | 13 +++++++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 hyperdata/tests/examples/koda-art-generative.json diff --git a/hyperdata/package.json b/hyperdata/package.json index a89d19b6..70d165c5 100644 --- a/hyperdata/package.json +++ b/hyperdata/package.json @@ -26,7 +26,7 @@ "lint:fix": "eslint --cache --ext .ts,.js,.mjs,.cjs . --fix && prettier -c src test -w", "prepack": "pnpm run build", "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags", - "test": "vitest run" + "test": "vitest" }, "devDependencies": { "@kodadot1/minipfs": "0.4.1-rc.0", diff --git a/hyperdata/src/normalize.ts b/hyperdata/src/normalize.ts index d42ae38b..c10cc677 100644 --- a/hyperdata/src/normalize.ts +++ b/hyperdata/src/normalize.ts @@ -71,14 +71,17 @@ export function contentFrom(meta: any, eager?: boolean): Content { // eslint-disable-next-line @typescript-eslint/no-explicit-any export function generativeFrom(meta: any): GenArt | undefined { - const uri = meta.generativeUri || meta.generatorUri + const uri = meta.generativeUri || meta.generatorUri || meta.generative_uri if (!uri) { return undefined } const hash = meta.previewHash || meta.iterationHash - const previewParam = meta.previewParam || 'fxhash' + const previewParam = + meta.previewParam || + (meta.external_url?.includes('koda') && 'koda') || + 'fxhash' const capture = meta.capture const settings = meta.settings diff --git a/hyperdata/tests/examples/koda-art-generative.json b/hyperdata/tests/examples/koda-art-generative.json new file mode 100644 index 00000000..313d4cc0 --- /dev/null +++ b/hyperdata/tests/examples/koda-art-generative.json @@ -0,0 +1,8 @@ +{ + "name": "test - genart - meadow", + "description": "test [LikeMurvin](https://twitter.com/LikeMurvin) genart", + "image": "ipfs://bafkreic7ii2fvo3fhe557pyozhzitkfnhgmxovaebnf3shqmjiva42erb4", + "external_url": "https://koda.art", + "base_uri": "https://dyndata.koda.art/v1/metadata/ahk/461", + "generative_uri": "ipfs://bafybeicdv7iu5racra3vsvg2k2uvp2jxvb534h67f6lqdwidhmvzg2tjou" +} diff --git a/hyperdata/tests/generative.test.ts b/hyperdata/tests/generative.test.ts index 482d87ea..58e8c0d4 100644 --- a/hyperdata/tests/generative.test.ts +++ b/hyperdata/tests/generative.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { FXHashMetadata, GenArt, generativeFrom } from '../src' import fxhash from './examples/fxhash.json' +import koda from './examples/koda-art-generative.json' describe('generativeFrom', () => { it(`should parse FXhash metadata to Content correctly`, () => { @@ -15,4 +16,16 @@ describe('generativeFrom', () => { expect(generativeFrom(metadata)).toStrictEqual(res) }) + + it('should parse koda.art generative metadata correctly', () => { + const metadata = koda + + expect(generativeFrom(metadata)).toStrictEqual({ + uri: metadata.generative_uri, + previewParam: 'koda', + capture: undefined, + hash: undefined, + settings: undefined, + }) + }) }) From fb33db35355afe5b5d70d2a362c7d98a798db9ed Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Wed, 3 Jul 2024 15:01:27 +0700 Subject: [PATCH 2/2] refactor(normalize): adjust previewParam handling for koda chore(tests): update koda file name in generative tests to match new structure --- hyperdata/src/normalize.ts | 2 +- ...koda-art-generative.json => koda-generative-collection.json} | 0 hyperdata/tests/generative.test.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename hyperdata/tests/examples/{koda-art-generative.json => koda-generative-collection.json} (100%) diff --git a/hyperdata/src/normalize.ts b/hyperdata/src/normalize.ts index c10cc677..07974232 100644 --- a/hyperdata/src/normalize.ts +++ b/hyperdata/src/normalize.ts @@ -80,7 +80,7 @@ export function generativeFrom(meta: any): GenArt | undefined { const hash = meta.previewHash || meta.iterationHash const previewParam = meta.previewParam || - (meta.external_url?.includes('koda') && 'koda') || + (meta.external_url?.includes('koda') && 'hash') || 'fxhash' const capture = meta.capture const settings = meta.settings diff --git a/hyperdata/tests/examples/koda-art-generative.json b/hyperdata/tests/examples/koda-generative-collection.json similarity index 100% rename from hyperdata/tests/examples/koda-art-generative.json rename to hyperdata/tests/examples/koda-generative-collection.json diff --git a/hyperdata/tests/generative.test.ts b/hyperdata/tests/generative.test.ts index 58e8c0d4..c03abcbc 100644 --- a/hyperdata/tests/generative.test.ts +++ b/hyperdata/tests/generative.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { FXHashMetadata, GenArt, generativeFrom } from '../src' import fxhash from './examples/fxhash.json' -import koda from './examples/koda-art-generative.json' +import koda from './examples/koda-generative-collection.json' describe('generativeFrom', () => { it(`should parse FXhash metadata to Content correctly`, () => {