@purpleproser/soundboard-downloader-cli 1.6.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +1 -1
- package/.github/workflows/test.yml +1 -1
- package/CHANGELOG.md +15 -0
- package/README.md +24 -4
- package/dist/api/my-instants.api.js +38 -4
- package/dist/api/my-instants.api.js.map +1 -1
- package/dist/main.js +61 -40
- package/dist/main.js.map +1 -1
- package/dist/service/file-downloader.service.js +35 -2
- package/dist/service/file-downloader.service.js.map +1 -1
- package/dist/service/my-instants.service.js +34 -1
- package/dist/service/my-instants.service.js.map +1 -1
- package/dist/utils/rate-limiter.js +50 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/package.json +9 -6
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +2 -1
- package/tsconfig.prod.json +1 -1
- package/vulnerability-score.json +53 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
This changelog is automatically generated by [release-please](https://github.com/google-github-actions/release-please-action).
|
|
4
4
|
|
|
5
|
+
## [1.7.0](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.6.3...v1.7.0) (2026-03-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* improve MyInstants compliance with rate limiting and legal updates\n\n- Add rate limiting to API requests (1s delay between calls)\n- Update package description to specify personal, non-commercial use\n- Add comprehensive compliance section to README\n- Create rate-limiter utility for reusable compliance\n\nThis improves compliance with MyInstants Terms of Use by:\n1. Adding delays between requests to avoid scraping appearance\n2. Explicitly stating non-commercial use limitations\n3. Educating users about responsible usage\n\nSigned-off-by: Mistral Vibe <vibe@mistral.ai>\n\nGenerated by Mistral Vibe.\nCo-Authored-By: Mistral Vibe <vibe@mistral.ai> ([d756529](https://github.com/blacksagres/soundboard-downloader-cli/commit/d75652972ff8fb7e56a2607bc11647edba506699))
|
|
11
|
+
|
|
12
|
+
## [1.6.3](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.6.2...v1.6.3) (2026-03-10)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* replace @inquirer/prompts with prompts ([366c79b](https://github.com/blacksagres/soundboard-downloader-cli/commit/366c79b6d842ca4de5da7ea843c15b66c10bddcf))
|
|
18
|
+
* replace open with opener ([97ec29d](https://github.com/blacksagres/soundboard-downloader-cli/commit/97ec29d3cc487abad964fea89129a82e1424a6e5))
|
|
19
|
+
|
|
5
20
|
## [1.6.2](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.6.1...v1.6.2) (2026-03-07)
|
|
6
21
|
|
|
7
22
|
|
package/README.md
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
# @purpleproser/soundboard-downloader-cli
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@purpleproser/soundboard-downloader-cli)
|
|
4
|
+
[](https://www.npmjs.com/package/@purpleproser/soundboard-downloader-cli)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://badge.socket.dev/npm/package/@purpleproser/soundboard-downloader-cli/1.6.2)
|
|
7
|
+
|
|
3
8
|
A Node.js command-line tool to download soundboard sounds from [MyInstants](https://myinstants.com).
|
|
4
9
|
|
|
5
10
|
**📦️ npm package**: [`@purpleproser/soundboard-downloader-cli`](https://www.npmjs.com/package/@purpleproser/soundboard-downloader-cli)
|
|
6
11
|
|
|
7
|
-
**GitHub Repository**: [blacksagres/soundboard-downloader-cli](https://github.com/blacksagres/soundboard-downloader-cli)
|
|
8
|
-
|
|
9
12
|
## Features
|
|
10
13
|
|
|
11
14
|
- 🔍 Search for sounds by name using interactive prompts
|
|
@@ -15,10 +18,10 @@ A Node.js command-line tool to download soundboard sounds from [MyInstants](http
|
|
|
15
18
|
|
|
16
19
|
## Tech Stack
|
|
17
20
|
|
|
18
|
-
- **
|
|
21
|
+
- **prompts** - Lightweight interactive CLI prompts
|
|
19
22
|
- **jsdom** - HTML parsing and DOM manipulation
|
|
20
23
|
- **ora** - Elegant terminal spinners
|
|
21
|
-
- **
|
|
24
|
+
- **opener** - Opens URLs in the user's browser to allow previewing the sound
|
|
22
25
|
|
|
23
26
|
## Prerequisites
|
|
24
27
|
|
|
@@ -157,6 +160,23 @@ soundboard-downloader
|
|
|
157
160
|
|
|
158
161
|
Contributions are welcome! Please open an issue or submit a pull request.
|
|
159
162
|
|
|
163
|
+
## Compliance with MyInstants Terms of Use
|
|
164
|
+
|
|
165
|
+
This tool is designed to comply with [MyInstants Terms of Use](https://www.myinstants.com/en/terms_of_use.html):
|
|
166
|
+
|
|
167
|
+
✅ **Personal Use Only**: This tool is for personal, non-commercial use only
|
|
168
|
+
✅ **Official Functionality**: Uses MyInstants' official download buttons and links
|
|
169
|
+
✅ **No Circumvention**: Does not bypass any access controls or copyright protections
|
|
170
|
+
✅ **Rate Limiting**: Includes reasonable delays between requests to avoid server overload
|
|
171
|
+
|
|
172
|
+
⚠️ **User Responsibilities**:
|
|
173
|
+
- Do not use this tool for commercial purposes
|
|
174
|
+
- Do not make excessive automated requests
|
|
175
|
+
- Respect MyInstants' copyright and terms of service
|
|
176
|
+
- MyInstants may revoke access at any time
|
|
177
|
+
|
|
178
|
+
**Important**: MyInstants grants access under a revocable license. This tool may stop working if MyInstants changes their website or terms.
|
|
179
|
+
|
|
160
180
|
## Legal Disclaimer
|
|
161
181
|
|
|
162
182
|
**Important Notice About Copyright and Usage:**
|
|
@@ -7,10 +7,44 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Can be switched to mock mode for testing via api-config.ts
|
|
9
9
|
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
10
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
44
|
exports.getNodeDownloadPage = exports.getAllSoundNodes = exports.hasNextPage = exports.getSoundNodesPage = void 0;
|
|
12
45
|
const api_config_1 = require("./api-config");
|
|
13
|
-
const MockApi = require("./my-instants.api.mock");
|
|
46
|
+
const MockApi = __importStar(require("./my-instants.api.mock"));
|
|
47
|
+
const rate_limiter_1 = require("../utils/rate-limiter");
|
|
14
48
|
/**
|
|
15
49
|
* Fetch a single page of sound nodes from myinstants.com
|
|
16
50
|
* @param searchString The search term
|
|
@@ -25,7 +59,7 @@ const getSoundNodesPage = async ({ searchString, page = 1 }) => {
|
|
|
25
59
|
}
|
|
26
60
|
const escapedSearchParam = encodeURIComponent(searchString);
|
|
27
61
|
const url = `https://www.myinstants.com/en/search/?name=${escapedSearchParam}&page=${page}`;
|
|
28
|
-
const response = await
|
|
62
|
+
const response = await (0, rate_limiter_1.rateLimitedFetch)(url);
|
|
29
63
|
if (!response.ok) {
|
|
30
64
|
throw new Error(`Failed to fetch page ${page} for search: ${searchString}`);
|
|
31
65
|
}
|
|
@@ -46,7 +80,7 @@ const hasNextPage = async ({ searchString, page = 1 }) => {
|
|
|
46
80
|
const escapedSearchParam = encodeURIComponent(searchString);
|
|
47
81
|
const url = `https://www.myinstants.com/en/search/?name=${escapedSearchParam}&page=${page + 1}`;
|
|
48
82
|
try {
|
|
49
|
-
const response = await
|
|
83
|
+
const response = await (0, rate_limiter_1.rateLimitedFetch)(url, { method: 'HEAD' });
|
|
50
84
|
return response.ok;
|
|
51
85
|
}
|
|
52
86
|
catch (error) {
|
|
@@ -96,7 +130,7 @@ const getNodeDownloadPage = async (soundNodeDetailsURL) => {
|
|
|
96
130
|
return MockApi.getNodeDownloadPage(soundNodeDetailsURL);
|
|
97
131
|
}
|
|
98
132
|
const root = `https://www.myinstants.com${soundNodeDetailsURL}`;
|
|
99
|
-
const response = await
|
|
133
|
+
const response = await (0, rate_limiter_1.rateLimitedFetch)(root);
|
|
100
134
|
if (!response.ok) {
|
|
101
135
|
throw new Error(`Failed to fetch sound detail page: ${soundNodeDetailsURL}`);
|
|
102
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"my-instants.api.js","sourceRoot":"","sources":["../../src/api/my-instants.api.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG
|
|
1
|
+
{"version":3,"file":"my-instants.api.js","sourceRoot":"","sources":["../../src/api/my-instants.api.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
const my_instants_service_1 = require("./service/my-instants.service");
|
|
5
|
-
const ora_1 = require("ora");
|
|
6
|
-
const prompts_1 = require("
|
|
7
|
-
const
|
|
8
|
-
const open_1 = require("open");
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
10
|
+
const opener_1 = __importDefault(require("opener"));
|
|
9
11
|
const file_downloader_service_1 = require("./service/file-downloader.service");
|
|
10
12
|
const selection_utils_1 = require("./utils/selection-utils");
|
|
11
13
|
const pagination_utils_1 = require("./utils/pagination-utils");
|
|
@@ -22,11 +24,13 @@ process.on("uncaughtException", (error) => {
|
|
|
22
24
|
// Check for --all flag
|
|
23
25
|
const args = process.argv.slice(2);
|
|
24
26
|
let shouldFetchAll = args.includes("--all");
|
|
25
|
-
let answer = await (0, prompts_1.
|
|
27
|
+
let answer = (await (0, prompts_1.default)({
|
|
28
|
+
type: 'text',
|
|
29
|
+
name: 'searchQuery',
|
|
26
30
|
message: "🔍 What sound effects are you looking for?",
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
31
|
+
validate: (value) => value.trim() !== '' ? true : 'Please enter a search term',
|
|
32
|
+
initial: "wilhelm scream",
|
|
33
|
+
})).searchQuery;
|
|
30
34
|
// Pagination flow
|
|
31
35
|
if (!shouldFetchAll) {
|
|
32
36
|
let currentPage = 1;
|
|
@@ -43,37 +47,39 @@ process.on("uncaughtException", (error) => {
|
|
|
43
47
|
console.log((0, pagination_utils_1.getPaginationInfo)(currentPage, results.length, hasNextPage));
|
|
44
48
|
// Prepare sound choices
|
|
45
49
|
const soundChoices = results.map((sound) => ({
|
|
46
|
-
|
|
50
|
+
title: `${sound.label} 🎵`,
|
|
47
51
|
value: `${sound.label}||${sound.download_url}`,
|
|
48
52
|
}));
|
|
49
53
|
// Add navigation choices as separate actions
|
|
50
54
|
const navigationChoices = [
|
|
51
|
-
new inquirer.Separator("=== Navigation ==="),
|
|
52
55
|
{
|
|
53
|
-
|
|
56
|
+
title: hasPreviousPage ? "⏮️ Previous page" : "⏮️ Previous page (disabled)",
|
|
54
57
|
value: "action:prev-page",
|
|
55
58
|
disabled: !hasPreviousPage
|
|
56
59
|
},
|
|
57
60
|
{
|
|
58
|
-
|
|
61
|
+
title: hasNextPage ? "⏭️ Next page" : "⏭️ Next page (disabled)",
|
|
59
62
|
value: "action:next-page",
|
|
60
63
|
disabled: !hasNextPage
|
|
61
64
|
},
|
|
62
65
|
{
|
|
63
|
-
|
|
66
|
+
title: "🔍 New search",
|
|
64
67
|
value: "action:new-search"
|
|
65
68
|
},
|
|
66
69
|
{
|
|
67
|
-
|
|
70
|
+
title: "📋 Show all results",
|
|
68
71
|
value: "action:show-all"
|
|
69
72
|
}
|
|
70
73
|
];
|
|
71
74
|
const allChoices = [...soundChoices, ...navigationChoices];
|
|
72
|
-
// Use radio
|
|
73
|
-
const
|
|
75
|
+
// Use select (radio) for single selection
|
|
76
|
+
const selectionResponse = await (0, prompts_1.default)({
|
|
77
|
+
type: 'select',
|
|
78
|
+
name: 'selection',
|
|
74
79
|
message: "🎵 Select a sound or choose a navigation option:",
|
|
75
80
|
choices: allChoices,
|
|
76
81
|
});
|
|
82
|
+
const selection = selectionResponse.selection;
|
|
77
83
|
// Handle navigation actions
|
|
78
84
|
if ((0, pagination_utils_1.isNavigationAction)(selection)) {
|
|
79
85
|
switch (selection) {
|
|
@@ -87,11 +93,13 @@ process.on("uncaughtException", (error) => {
|
|
|
87
93
|
continue;
|
|
88
94
|
case "action:new-search":
|
|
89
95
|
// Reset for new search
|
|
90
|
-
answer = await (0, prompts_1.
|
|
96
|
+
answer = (await (0, prompts_1.default)({
|
|
97
|
+
type: 'text',
|
|
98
|
+
name: 'searchQuery',
|
|
91
99
|
message: "🔍 What sound effects are you looking for?",
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
});
|
|
100
|
+
validate: (value) => value.trim() !== '' ? true : 'Please enter a search term',
|
|
101
|
+
initial: answer,
|
|
102
|
+
})).searchQuery;
|
|
95
103
|
currentPage = 1;
|
|
96
104
|
continue;
|
|
97
105
|
case "action:show-all":
|
|
@@ -109,22 +117,25 @@ process.on("uncaughtException", (error) => {
|
|
|
109
117
|
// Available actions for single sound selection
|
|
110
118
|
const actions = [
|
|
111
119
|
{
|
|
112
|
-
|
|
120
|
+
title: "💾 Download",
|
|
113
121
|
value: "action:download",
|
|
114
122
|
},
|
|
115
123
|
{
|
|
116
|
-
|
|
124
|
+
title: "▶️ Play",
|
|
117
125
|
value: "action:play",
|
|
118
126
|
},
|
|
119
127
|
{
|
|
120
|
-
|
|
128
|
+
title: "🔗 Show download URL (you can pipe this to other commands)",
|
|
121
129
|
value: "action:show-url",
|
|
122
130
|
},
|
|
123
131
|
];
|
|
124
|
-
const
|
|
132
|
+
const actionResponse = await (0, prompts_1.default)({
|
|
133
|
+
type: 'select',
|
|
134
|
+
name: 'action',
|
|
125
135
|
message: (0, selection_utils_1.getSelectionMessage)(selections),
|
|
126
136
|
choices: actions,
|
|
127
137
|
});
|
|
138
|
+
const action = actionResponse.action;
|
|
128
139
|
if (action === "action:show-url") {
|
|
129
140
|
const firstSelection = (0, selection_utils_1.getFirstSelection)(selections);
|
|
130
141
|
if (firstSelection) {
|
|
@@ -134,7 +145,7 @@ process.on("uncaughtException", (error) => {
|
|
|
134
145
|
if (action === "action:play") {
|
|
135
146
|
const firstSelection = (0, selection_utils_1.getFirstSelection)(selections);
|
|
136
147
|
if (firstSelection) {
|
|
137
|
-
(0,
|
|
148
|
+
(0, opener_1.default)(firstSelection.downloadUrl);
|
|
138
149
|
}
|
|
139
150
|
}
|
|
140
151
|
if (action === "action:download") {
|
|
@@ -186,19 +197,23 @@ process.on("uncaughtException", (error) => {
|
|
|
186
197
|
catch (error) {
|
|
187
198
|
spinner.stop();
|
|
188
199
|
console.error("❌ Error loading results:", error instanceof Error ? error.message : String(error));
|
|
189
|
-
const
|
|
200
|
+
const retryResponse = await (0, prompts_1.default)({
|
|
201
|
+
type: 'select',
|
|
202
|
+
name: 'retry',
|
|
190
203
|
message: "What would you like to do?",
|
|
191
204
|
choices: [
|
|
192
|
-
{
|
|
193
|
-
{
|
|
205
|
+
{ title: "🔍 Try a new search", value: "new-search" },
|
|
206
|
+
{ title: "🚪 Exit", value: "exit" },
|
|
194
207
|
],
|
|
195
208
|
});
|
|
196
|
-
if (retry === "new-search") {
|
|
197
|
-
answer = await (0, prompts_1.
|
|
209
|
+
if (retryResponse.retry === "new-search") {
|
|
210
|
+
answer = (await (0, prompts_1.default)({
|
|
211
|
+
type: 'text',
|
|
212
|
+
name: 'searchQuery',
|
|
198
213
|
message: "🔍 What sound effects are you looking for?",
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
});
|
|
214
|
+
validate: (value) => value.trim() !== '' ? true : 'Please enter a search term',
|
|
215
|
+
initial: answer,
|
|
216
|
+
})).searchQuery;
|
|
202
217
|
currentPage = 1;
|
|
203
218
|
continue;
|
|
204
219
|
}
|
|
@@ -219,20 +234,23 @@ process.on("uncaughtException", (error) => {
|
|
|
219
234
|
const allResults = await (0, my_instants_service_1.getAllResults)(answer);
|
|
220
235
|
spinner.stop();
|
|
221
236
|
console.log(`🎉 Found ${allResults.length} sound${allResults.length !== 1 ? "s" : ""}!`);
|
|
222
|
-
const
|
|
237
|
+
const rawSelectionsResponse = await (0, prompts_1.default)({
|
|
238
|
+
type: 'multiselect',
|
|
239
|
+
name: 'selections',
|
|
223
240
|
message: "🎵 Which sounds to download? (use space to select multiple, arrows to navigate, search for something directly)",
|
|
224
241
|
choices: allResults.map((sound) => ({
|
|
225
|
-
|
|
242
|
+
title: `${sound.label} 🎵`,
|
|
226
243
|
value: `${sound.label}||${sound.download_url}`,
|
|
227
244
|
})),
|
|
228
245
|
});
|
|
246
|
+
const rawSelections = rawSelectionsResponse.selections || [];
|
|
229
247
|
// Parse and validate selections
|
|
230
248
|
const selections = (0, selection_utils_1.parseSelections)(rawSelections);
|
|
231
249
|
const multipleSelected = (0, selection_utils_1.isMultipleSelection)(selections);
|
|
232
250
|
// Determine available actions based on selection count
|
|
233
251
|
let actions = [
|
|
234
252
|
{
|
|
235
|
-
|
|
253
|
+
title: "💾 Download",
|
|
236
254
|
value: "action:download",
|
|
237
255
|
},
|
|
238
256
|
];
|
|
@@ -241,19 +259,22 @@ process.on("uncaughtException", (error) => {
|
|
|
241
259
|
actions = [
|
|
242
260
|
...actions,
|
|
243
261
|
{
|
|
244
|
-
|
|
262
|
+
title: "▶️ Play",
|
|
245
263
|
value: "action:play",
|
|
246
264
|
},
|
|
247
265
|
{
|
|
248
|
-
|
|
266
|
+
title: "🔗 Show download URL (you can pipe this to other commands)",
|
|
249
267
|
value: "action:show-url",
|
|
250
268
|
},
|
|
251
269
|
];
|
|
252
270
|
}
|
|
253
|
-
const
|
|
271
|
+
const actionResponse = await (0, prompts_1.default)({
|
|
272
|
+
type: 'select',
|
|
273
|
+
name: 'action',
|
|
254
274
|
message: (0, selection_utils_1.getSelectionMessage)(selections),
|
|
255
275
|
choices: actions,
|
|
256
276
|
});
|
|
277
|
+
const action = actionResponse.action;
|
|
257
278
|
if (action === "action:show-url" && !multipleSelected) {
|
|
258
279
|
const firstSelection = (0, selection_utils_1.getFirstSelection)(selections);
|
|
259
280
|
if (firstSelection) {
|
|
@@ -263,7 +284,7 @@ process.on("uncaughtException", (error) => {
|
|
|
263
284
|
if (action === "action:play" && !multipleSelected) {
|
|
264
285
|
const firstSelection = (0, selection_utils_1.getFirstSelection)(selections);
|
|
265
286
|
if (firstSelection) {
|
|
266
|
-
(0,
|
|
287
|
+
(0, opener_1.default)(firstSelection.downloadUrl);
|
|
267
288
|
}
|
|
268
289
|
}
|
|
269
290
|
if (action === "action:download") {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.downloadFile = void 0;
|
|
4
|
-
const https = require("https");
|
|
5
|
-
const fs = require("fs");
|
|
37
|
+
const https = __importStar(require("https"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
6
39
|
const downloadFile = (url, config) => {
|
|
7
40
|
const file = fs.createWriteStream(config.destination);
|
|
8
41
|
https.get(url, function (response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-downloader.service.js","sourceRoot":"","sources":["../../src/service/file-downloader.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-downloader.service.js","sourceRoot":"","sources":["../../src/service/file-downloader.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,uCAAyB;AAElB,MAAM,YAAY,GAAG,CAC1B,GAAW,EACX,MAIC,EACD,EAAE;IACF,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,QAAQ;QAC/B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACnB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,YAAY,gBAsBvB"}
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.getAllResults = exports.getPaginatedResults = exports.getSoundNodesPage = void 0;
|
|
4
37
|
const my_instants_api_1 = require("../api/my-instants.api");
|
|
5
38
|
const validation_schemas_1 = require("../api/validation-schemas");
|
|
6
|
-
const jsdom = require("jsdom");
|
|
39
|
+
const jsdom = __importStar(require("jsdom"));
|
|
7
40
|
// Simple in-memory cache for paginated results
|
|
8
41
|
const pageCache = new Map();
|
|
9
42
|
const getCacheKey = (searchString, page) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"my-instants.service.js","sourceRoot":"","sources":["../../src/service/my-instants.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"my-instants.service.js","sourceRoot":"","sources":["../../src/service/my-instants.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Rate limiting utility to ensure compliance with MyInstants Terms of Use
|
|
4
|
+
* Adds reasonable delays between requests to avoid being seen as scraping
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getRateLimitDelay = exports.resetRateLimiter = exports.rateLimitedFetch = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Minimum delay between requests (in milliseconds)
|
|
10
|
+
* This helps avoid being flagged as automated scraping
|
|
11
|
+
*/
|
|
12
|
+
const MIN_REQUEST_DELAY = 1000; // 1 second
|
|
13
|
+
/**
|
|
14
|
+
* Track the last request time for rate limiting
|
|
15
|
+
*/
|
|
16
|
+
let lastRequestTime = 0;
|
|
17
|
+
/**
|
|
18
|
+
* Rate-limited fetch wrapper
|
|
19
|
+
* Ensures minimum delay between consecutive requests to MyInstants
|
|
20
|
+
*/
|
|
21
|
+
const rateLimitedFetch = async (input, init) => {
|
|
22
|
+
// Calculate time since last request
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
const timeSinceLastRequest = now - lastRequestTime;
|
|
25
|
+
// If we're making requests too quickly, add a delay
|
|
26
|
+
if (timeSinceLastRequest < MIN_REQUEST_DELAY) {
|
|
27
|
+
const delayNeeded = MIN_REQUEST_DELAY - timeSinceLastRequest;
|
|
28
|
+
await new Promise(resolve => setTimeout(resolve, delayNeeded));
|
|
29
|
+
}
|
|
30
|
+
// Update last request time
|
|
31
|
+
lastRequestTime = Date.now();
|
|
32
|
+
// Make the actual fetch request
|
|
33
|
+
return fetch(input, init);
|
|
34
|
+
};
|
|
35
|
+
exports.rateLimitedFetch = rateLimitedFetch;
|
|
36
|
+
/**
|
|
37
|
+
* Reset the rate limiter (useful for testing)
|
|
38
|
+
*/
|
|
39
|
+
const resetRateLimiter = () => {
|
|
40
|
+
lastRequestTime = 0;
|
|
41
|
+
};
|
|
42
|
+
exports.resetRateLimiter = resetRateLimiter;
|
|
43
|
+
/**
|
|
44
|
+
* Get the current rate limit delay
|
|
45
|
+
*/
|
|
46
|
+
const getRateLimitDelay = () => {
|
|
47
|
+
return MIN_REQUEST_DELAY;
|
|
48
|
+
};
|
|
49
|
+
exports.getRateLimitDelay = getRateLimitDelay;
|
|
50
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,WAAW;AAE3C;;GAEG;AACH,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB;;;GAGG;AACI,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAwB,EAAE,IAAkB,EAAqB,EAAE;IACxG,oCAAoC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,oBAAoB,GAAG,GAAG,GAAG,eAAe,CAAC;IAEnD,oDAAoD;IACpD,IAAI,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;QAC7D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,2BAA2B;IAC3B,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,gCAAgC;IAChC,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,eAAe,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpleproser/soundboard-downloader-cli",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Easily download sounds from myinstants.com using this interactive CLI tool",
|
|
3
|
+
"version": "1.7.0",
|
|
4
|
+
"description": "Easily download sounds from myinstants.com using this interactive CLI tool (for personal, non-commercial use only)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"soundboard-downloader": "./dist/main.js"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"test": "vitest",
|
|
16
|
+
"test": "vitest --coverage",
|
|
17
17
|
"start": "ts-node ./src/main.ts",
|
|
18
|
-
"build": "tsc -p tsconfig.
|
|
18
|
+
"build": "tsc -p tsconfig.build.json",
|
|
19
19
|
"prepublishOnly": "npm run build"
|
|
20
20
|
},
|
|
21
21
|
"keywords": [
|
|
@@ -36,15 +36,18 @@
|
|
|
36
36
|
"homepage": "https://github.com/blacksagres/soundboard-downloader-cli#readme",
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/jsdom": "^28.0.0",
|
|
39
|
+
"@types/opener": "^1.4.3",
|
|
40
|
+
"@types/prompts": "^2.4.9",
|
|
41
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
39
42
|
"ts-node": "^10.9.2",
|
|
40
43
|
"typescript": "^5.9.3",
|
|
41
44
|
"vitest": "^4.0.18"
|
|
42
45
|
},
|
|
43
46
|
"dependencies": {
|
|
44
|
-
"@inquirer/prompts": "^8.2.0",
|
|
45
47
|
"jsdom": "^28.0.0",
|
|
46
|
-
"
|
|
48
|
+
"opener": "^1.5.2",
|
|
47
49
|
"ora": "^9.3.0",
|
|
50
|
+
"prompts": "^2.4.2",
|
|
48
51
|
"valibot": "^1.2.0"
|
|
49
52
|
}
|
|
50
53
|
}
|
package/tsconfig.json
CHANGED
package/tsconfig.prod.json
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Score report for "pkg:npm/@purpleproser/soundboard-downloader-cli" (use --json for raw and --markdown for formatted reports):
|
|
2
|
+
{
|
|
3
|
+
purl: 'pkg:npm/@purpleproser/soundboard-downloader-cli',
|
|
4
|
+
self: {
|
|
5
|
+
purl: 'npm/@purpleproser/soundboard-downloader-cli@1.6.3',
|
|
6
|
+
score: {
|
|
7
|
+
license: 100,
|
|
8
|
+
maintenance: 93,
|
|
9
|
+
overall: 73,
|
|
10
|
+
quality: 100,
|
|
11
|
+
supplyChain: 73,
|
|
12
|
+
vulnerability: 100
|
|
13
|
+
},
|
|
14
|
+
capabilities: [ 'fs', 'net', 'url' ],
|
|
15
|
+
alerts: [ [Object], [Object], [Object] ]
|
|
16
|
+
},
|
|
17
|
+
transitively: {
|
|
18
|
+
dependencyCount: 67,
|
|
19
|
+
func: 'min',
|
|
20
|
+
score: {
|
|
21
|
+
license: 100,
|
|
22
|
+
maintenance: 75,
|
|
23
|
+
overall: 65,
|
|
24
|
+
quality: 65,
|
|
25
|
+
supplyChain: 71,
|
|
26
|
+
vulnerability: 100
|
|
27
|
+
},
|
|
28
|
+
lowest: {
|
|
29
|
+
license: 'npm/prompts@2.4.2',
|
|
30
|
+
maintenance: 'npm/symbol-tree@3.2.4',
|
|
31
|
+
overall: 'npm/restore-cursor@5.1.0',
|
|
32
|
+
quality: 'npm/restore-cursor@5.1.0',
|
|
33
|
+
supplyChain: 'npm/undici@7.22.0',
|
|
34
|
+
vulnerability: 'npm/prompts@2.4.2'
|
|
35
|
+
},
|
|
36
|
+
capabilities: [
|
|
37
|
+
'env', 'eval',
|
|
38
|
+
'fs', 'net',
|
|
39
|
+
'shell', 'unsafe',
|
|
40
|
+
'url'
|
|
41
|
+
],
|
|
42
|
+
alerts: [
|
|
43
|
+
[Object], [Object],
|
|
44
|
+
[Object], [Object],
|
|
45
|
+
[Object], [Object],
|
|
46
|
+
[Object], [Object],
|
|
47
|
+
[Object], [Object],
|
|
48
|
+
[Object], [Object],
|
|
49
|
+
[Object], [Object]
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|