2.0 KiB
2.0 KiB
title | categories | layout | |
---|---|---|---|
Destinations |
|
wikipage |
Destinations
Destinations determine where your image goes
There is a set of default uploaders, two, to be exact.
Default uploaders:
imgur
Uploads your image to imgur.
clipboard
Copies your image to clipboard.
Custom uploaders
Placed into CONFIG PATH/KShare/uploaders
Eg: $HOME/.config/KShare/uploaders
All uploaders have to be .uploader
files!
Custom uploaders can be added, and are made with JSON, and follow this template:
{
"name": "", // String, required
"desc": "", // String, optional
"method": "", // String, default: "POST", for now, just POST. Request more if you need them
"target": "", // URL, required
"format": "", // String, default: "json", can be `x-www-form-urlencoded` or `json` or `multipart-form-data`. Setting to `PLAIN` will make the body ignored and only the image sent.
"base64": false, // Optional, makes the data base64
"body": {}, // A JSON object, where one of the nodes can be a string in the format `/ANYTHING/`. In `ANYTHING`, `%contenttype` is replaced with the image type and `%imagedata` is replaced with the image encoded with `imageformat`. Unless you use multipart, see below
"return": "" // Return pathspec. `|` copies the entire body, `.path.to.node` copies the value of the node. The dot IS IMPORTANT. Without it, nothing happens. If one of the nodes is not a string, the string is copied, if one is an object, recursion continues, if one is null, nothing is copied, otherwise the node is JSON stringified. Only supports JSON for now.
}
Note that QJson does not support comments.
Multipart
Multipart is obviously made out of multiple parts. The way you define a multipart body is:
[
{
"__HeaderName": "HeaderValue", // No limit here. Must start with __, which is removed later.
"body": { /* same way you define it for anything json */ } // Can be string. Strings matching `/.../` are processed same way as in a json field.
}
]
This would go in the body
field of the above JSON.