Syntax and Interface
Basic Methods
$script.name: Script name$script.type: Script type, such asrequest,responseandtile$script.startTime: The time when the script starts running$environment["stash-build"]: Stash Build number$environment["stash-version"]: Stash version number$environment.language: Stash running language$environment.system: Stash running system (iOS / macOS)$argument: Running parameters$done(value): End the script run and release resources$notification.post(title, subtitle, body): Send iOS notificationconsole.log(value): Output log, script log will be output to a separate filesetTimeout(callback, delay): Delay execution of callback function
$done(value)
⚠️
For all scripts, you must call the $done(value) method to release resources at the end.
Persistent Storage
$persistentStore.write(value, key): Write to persistent storage$persistentStore.read(key): Read from persistent storage
HTTP Client
$httpClient.get(url<String>, callback<Function>)$httpClient.get(request<Object>, callback<Function>)
Similarly, there are:
$httpClient.post()$httpClient.put()$httpClient.delete()$httpClient.head()$httpClient.options()$httpClient.patch()
The request timeout is 5 seconds. You can specify the proxy used for the request by setting X-Stash-Selected-Proxy, or enable binary mode by setting binary-mode, for example:
$httpClient.get('http://httpbin.org/get', (error, response, data) => {
if (error) {
console.log(error)
} else {
console.log(data)
}
})
const yourProxyName = 'a fancy name with 😄'
$httpClient.post(
{
url: 'http://httpbin.org/post',
headers: {
'X-Header-Key': 'headerValue',
'X-Stash-Selected-Proxy': encodeURIComponent(yourProxyName),
},
body: '{}', // can be object or string
timeout: 5,
insecure: false,
'binary-mode': true,
'auto-cookie': true,
'auto-redirect': true,
},
(error, response, data) => {
if (error) {
console.log(error)
} else {
console.log(data)
}
}
)