diff --git a/96.md b/96.md index 2f253516..8f7b6cef 100644 --- a/96.md +++ b/96.md @@ -1,5 +1,7 @@ # NIP-96 + + ## HTTP File Storage Integration `draft` `optional` @@ -102,6 +104,7 @@ List of form fields: - `media_type`: "avatar" or "banner". Informs the server if the file will be used as an avatar or banner. If absent, the server will interpret it as a normal upload, without special treatment. - `content_type`: mime type such as "image/jpeg". This is just a value the server can use to reject early if the mime type isn't supported. - `no_transform`: "true" asks server not to transform the file and serve the uploaded file as is, may be rejected. +- `file_tags`: **RECOMMENDED** a comma-separated list of tags to be used by the server to categorize the file. Others custom form data fields may be used depending on specific `server` support. The `server` isn't required to store any metadata sent by `clients`. @@ -164,9 +167,11 @@ The upload response is a json object as follows: // The server can but does not need to store this value. ["x", "543244319525d9d08dd69cb716a18158a249b7b3b3ec4bbde5435543acb34443"], // Optional. Recommended for helping clients to easily know file type before downloading it. - ["m", "image/png"] + ["m", "image/png"], // Optional. Recommended for helping clients to reserve an adequate UI space to show the file before downloading it. - ["dim", "800x600"] + ["dim", "800x600"], + // Optional. Accepted file tags from server for categorization + ["file_tags", "cat, meme, funny, laugh"], // ... other optional NIP-94 tags ], content: "" @@ -277,11 +282,12 @@ The successful response is a 200 OK one with just basic JSON fields: ## Listing files -`GET $api_url?page=x&count=y` +`GET $api_url?page=x&count=y&sort=z&search=w` -**AUTH required** +AUTH **required** for pubkey file listing. +AUTH **NOT** required for public file listing. -Returns a list of files linked to the authenticated users pubkey. +Returns a list of files. If auth event is present, the server should return only files uploaded by the pubkey in the auth event. Example Response: @@ -298,6 +304,7 @@ Example Response: ["size", "123456"], ["alt", "a meme that makes you laugh"], ["expiration", "1715691139"], + ["file_tags", "cat, meme, funny, laugh"], // ...other metadata ] "content": "haha funny meme", // caption