Initialize piNail project with modern piNail2 web controller
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# SETHPC Logo Generator API
|
||||
|
||||
Public API endpoint for generating SethPC/Sethflix-style logos as SVG or PNG.
|
||||
|
||||
- Base URL: `https://gallery.sethpc.xyz`
|
||||
- Endpoint: `POST /api/logo`
|
||||
- Content types: `application/json` or `application/x-www-form-urlencoded`
|
||||
|
||||
## Parameters
|
||||
|
||||
Required:
|
||||
|
||||
- `text` - main logo text
|
||||
|
||||
Optional:
|
||||
|
||||
- `color` - hex color (`#RRGGBB` or `RRGGBB`), default `#D35400`
|
||||
- `mode` - `standard` or `lockup`, default `standard`
|
||||
- `shape` - `normal` or `square`, default `normal`
|
||||
- `subtext` - required when `mode=lockup`; automatically uppercased
|
||||
- `format` - `json`, `svg`, or `png`, default `json`
|
||||
|
||||
## Behavior
|
||||
|
||||
- All generated logos are saved under:
|
||||
- `/tank/SethFlix Visual Assets/UserGen/`
|
||||
- Emoji and unsupported glyphs are omitted.
|
||||
- `lockup` mode generates:
|
||||
- main logo
|
||||
- full-width horizontal line
|
||||
- sans-serif uppercase subtext
|
||||
- full-width horizontal line
|
||||
- `shape=square` pads the shorter side so final width and height are equal.
|
||||
|
||||
## Response Modes
|
||||
|
||||
### 1) `format=json` (default)
|
||||
|
||||
Returns metadata and links to the generated asset.
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
curl -sS -X POST "https://gallery.sethpc.xyz/api/logo" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"text": "SETHPC",
|
||||
"mode": "lockup",
|
||||
"shape": "square",
|
||||
"subtext": "gallery expo",
|
||||
"color": "#D35400",
|
||||
"format": "json"
|
||||
}'
|
||||
```
|
||||
|
||||
Sample JSON response:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"text": "SETHPC",
|
||||
"subtext": "GALLERY EXPO",
|
||||
"mode": "lockup",
|
||||
"shape": "square",
|
||||
"color": "#D35400",
|
||||
"skipped": [],
|
||||
"asset_path": "UserGen/sethpc_20260311_123456_000001.svg",
|
||||
"svg_url": "/asset/UserGen/sethpc_20260311_123456_000001.svg",
|
||||
"png_url": "/asset-png/UserGen/sethpc_20260311_123456_000001.svg",
|
||||
"svg_download_url": "/asset/UserGen/sethpc_20260311_123456_000001.svg",
|
||||
"png_download_url": "/asset-png/UserGen/sethpc_20260311_123456_000001.svg"
|
||||
}
|
||||
```
|
||||
|
||||
### 2) `format=svg`
|
||||
|
||||
Returns generated SVG file directly as attachment.
|
||||
|
||||
```bash
|
||||
curl -L -X POST "https://gallery.sethpc.xyz/api/logo" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"text": "SETHPC.XYZ",
|
||||
"shape": "square",
|
||||
"color": "#D35400",
|
||||
"format": "svg"
|
||||
}' \
|
||||
-o "sethpc.svg"
|
||||
```
|
||||
|
||||
### 3) `format=png`
|
||||
|
||||
Returns generated PNG directly as attachment.
|
||||
|
||||
```bash
|
||||
curl -L -X POST "https://gallery.sethpc.xyz/api/logo" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"text": "SETHPC",
|
||||
"mode": "lockup",
|
||||
"shape": "square",
|
||||
"subtext": "GALLERY EXPO",
|
||||
"format": "png"
|
||||
}' \
|
||||
-o "sethpc.png"
|
||||
```
|
||||
|
||||
## Error Responses
|
||||
|
||||
Common `400` errors:
|
||||
|
||||
- missing `text`
|
||||
- invalid `mode` (must be `standard` or `lockup`)
|
||||
- invalid `shape` (must be `normal` or `square`)
|
||||
- invalid `format` (must be `json`, `svg`, or `png`)
|
||||
- missing `subtext` when `mode=lockup`
|
||||
|
||||
Error shape:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": false,
|
||||
"error": "text is required."
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user