Credentials optional: empty WEBSHARE_* uses file_link without wst (free CDN). Verified against live API; docs and tests updated. Includes cancel→dequeue fix for queued downloads.
36 lines
1.0 KiB
JavaScript
Executable File
36 lines
1.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/**
|
|
* Optional standalone HTTP process that only serves MCP (no Torznab / qBittorrent).
|
|
* Prefer `npm start` (main app) which mounts MCP at POST /mcp on the same port.
|
|
*
|
|
* Env:
|
|
* WEBSHARE_USERNAME, WEBSHARE_PASSWORD (required)
|
|
* PORT (default 3001)
|
|
* MCP_PATH (default /mcp)
|
|
*/
|
|
const express = require('express');
|
|
const { registerMcpHttp } = require('./mcp-http');
|
|
|
|
const PORT = process.env.PORT || 3001;
|
|
const MCP_PATH = process.env.MCP_PATH || '/mcp';
|
|
const USERNAME = process.env.WEBSHARE_USERNAME || '';
|
|
const PASSWORD = process.env.WEBSHARE_PASSWORD || '';
|
|
|
|
const app = express();
|
|
app.use(express.json({ limit: '4mb' }));
|
|
|
|
app.get('/health', (req, res) => {
|
|
res.json({ ok: true, mcp: MCP_PATH, guest: !USERNAME || !PASSWORD });
|
|
});
|
|
|
|
registerMcpHttp(app, {
|
|
username: USERNAME,
|
|
password: PASSWORD,
|
|
path: MCP_PATH,
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
const mode = !USERNAME || !PASSWORD ? 'guest' : 'auth';
|
|
console.log(`webshare-api MCP (HTTP) listening on :${PORT}${MCP_PATH} (${mode})`);
|
|
});
|