@nekosuneprojects/nekosunevrtools 1.1.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/ci.yml +33 -0
- package/.github/workflows/npm-publish-github-packages.yml +35 -0
- package/.github/workflows/npm-publish.yml +34 -0
- package/README.md +201 -0
- package/bin/nekosunevrtools.js +13 -0
- package/package.json +31 -0
- package/src/cli.js +550 -0
- package/src/earnings.js +128 -0
- package/src/index.d.ts +174 -0
- package/src/index.js +25 -0
- package/src/shorturl/provider/adlinkfly-compatible.js +73 -0
- package/src/shorturl/provider/presets.js +37 -0
- package/src/shorturl/providers.js +11 -0
- package/src/upload/client.js +57 -0
- package/src/upload/provider/catbox.js +68 -0
- package/src/upload/provider/fileio.js +64 -0
- package/src/upload/provider/transfersh.js +58 -0
- package/src/upload/provider/upfiles.js +67 -0
- package/src/upload/providers.js +11 -0
- package/src/upload-client.js +1 -0
- package/src/utils/file.js +66 -0
- package/src/video/provider/doodstream.js +228 -0
- package/src/video/providers.js +5 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- master
|
|
8
|
+
pull_request:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Setup Node.js
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: 20
|
|
24
|
+
cache: npm
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
|
|
29
|
+
- name: Syntax checks
|
|
30
|
+
run: npm run check
|
|
31
|
+
|
|
32
|
+
- name: Pack dry run
|
|
33
|
+
run: npm pack --dry-run
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Publish GitHub Packages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
packages: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish-gpr:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout
|
|
17
|
+
uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v4
|
|
21
|
+
with:
|
|
22
|
+
node-version: 20
|
|
23
|
+
registry-url: https://npm.pkg.github.com
|
|
24
|
+
cache: npm
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
|
|
29
|
+
- name: Syntax checks
|
|
30
|
+
run: npm run check
|
|
31
|
+
|
|
32
|
+
- name: Publish to GitHub Packages
|
|
33
|
+
run: npm publish
|
|
34
|
+
env:
|
|
35
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Publish NPM
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
publish-npm:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Setup Node.js
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: 20
|
|
22
|
+
registry-url: https://registry.npmjs.org
|
|
23
|
+
cache: npm
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: npm ci
|
|
27
|
+
|
|
28
|
+
- name: Syntax checks
|
|
29
|
+
run: npm run check
|
|
30
|
+
|
|
31
|
+
- name: Publish to npm
|
|
32
|
+
run: npm publish --access public
|
|
33
|
+
env:
|
|
34
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# nekosunevrtools
|
|
2
|
+
|
|
3
|
+
Node.js SDK + CLI for:
|
|
4
|
+
|
|
5
|
+
- File upload platforms (`upfiles`, `fileio`, `catbox`, `transfersh`)
|
|
6
|
+
- Monetized short links (AdLinkFly-compatible APIs, including many adfly-like networks)
|
|
7
|
+
- Video upload-to-earn provider integration (`doodstream`)
|
|
8
|
+
- Live progress callbacks + Discord webhook embed progress bars
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @nekosuneprojects/nekosunevrtools
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## SDK Usage
|
|
17
|
+
|
|
18
|
+
### Category namespaces
|
|
19
|
+
|
|
20
|
+
```js
|
|
21
|
+
const sdk = require("@nekosuneprojects/nekosunevrtools");
|
|
22
|
+
|
|
23
|
+
// Requested style:
|
|
24
|
+
// sdk.upload.providers.upfiles
|
|
25
|
+
// sdk.shorturl.providers["adlinkfly-compatible"]
|
|
26
|
+
// sdk.video.providers.doodstream
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Upload with progress
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
const { UploadClient } = require("@nekosuneprojects/nekosunevrtools");
|
|
33
|
+
|
|
34
|
+
const client = new UploadClient({
|
|
35
|
+
platform: "upfiles",
|
|
36
|
+
apiKey: process.env.UPFILES_API_KEY
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const result = await client.upload("C:/path/file.zip", {
|
|
40
|
+
onProgress(p) {
|
|
41
|
+
console.log(`${p.phase} ${p.percent}%`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
console.log(result.url);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Shorten URL for earnings
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
|
|
52
|
+
|
|
53
|
+
const earn = new EarningsClient();
|
|
54
|
+
const short = await earn.shortenUrl("https://example.com/my-file", {
|
|
55
|
+
provider: "adlinkfly-compatible",
|
|
56
|
+
preset: "shrinkme",
|
|
57
|
+
apiKey: process.env.SHRINKME_API_KEY
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
console.log(short.shortUrl);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Upload then auto-shorten
|
|
64
|
+
|
|
65
|
+
```js
|
|
66
|
+
const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
|
|
67
|
+
|
|
68
|
+
const earn = new EarningsClient({
|
|
69
|
+
upload: {
|
|
70
|
+
platform: "upfiles",
|
|
71
|
+
apiKey: process.env.UPFILES_API_KEY
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const result = await earn.uploadAndShorten("C:/path/file.zip", {
|
|
76
|
+
shortenerProvider: "adlinkfly-compatible",
|
|
77
|
+
shortenerPreset: "shrinkme",
|
|
78
|
+
shortenerApiKey: process.env.SHRINKME_API_KEY
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
console.log(result.upload.url);
|
|
82
|
+
console.log(result.shortlink.shortUrl);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Video upload-to-earn (DoodStream)
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
|
|
89
|
+
|
|
90
|
+
const earn = new EarningsClient();
|
|
91
|
+
const video = await earn.uploadVideo("C:/videos/movie.mp4", {
|
|
92
|
+
provider: "doodstream",
|
|
93
|
+
apiKey: process.env.DOODSTREAM_API_KEY,
|
|
94
|
+
onProgress(p) {
|
|
95
|
+
console.log(`${p.percent}%`);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
console.log(video.watchUrl);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## CLI Usage
|
|
103
|
+
|
|
104
|
+
### Upload files
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
nekosunevrtools upload --file ./archive.zip --platform upfiles --apikey YOUR_UPFILES_KEY
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Create monetized short link
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
nekosunevrtools shorten --url "https://example.com/file" --shortener-preset shrinkme --apikey YOUR_SHRINKME_KEY
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Upload then monetize link
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
nekosunevrtools upload-shorten \
|
|
120
|
+
--file ./archive.zip \
|
|
121
|
+
--upload-platform upfiles \
|
|
122
|
+
--apikey YOUR_UPFILES_KEY \
|
|
123
|
+
--shortener-preset shrinkme \
|
|
124
|
+
--shortener-apikey YOUR_SHRINKME_KEY
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Video upload-to-earn
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
nekosunevrtools video-upload --file ./video.mp4 --video-provider doodstream --apikey YOUR_DOODSTREAM_KEY
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Discord embed progress bar
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
nekosunevrtools upload \
|
|
137
|
+
--file ./video.mp4 \
|
|
138
|
+
--platform upfiles \
|
|
139
|
+
--apikey YOUR_UPFILES_KEY \
|
|
140
|
+
--discord-webhook "https://discord.com/api/webhooks/ID/TOKEN" \
|
|
141
|
+
--discord-title "Upload Status"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### List built-in shortener presets
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
nekosunevrtools list-shorteners
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## AdLinkFly-compatible presets
|
|
151
|
+
|
|
152
|
+
Use `--shortener-preset <name>` or SDK `preset`:
|
|
153
|
+
|
|
154
|
+
- `shrtfly`
|
|
155
|
+
- `exei`
|
|
156
|
+
- `shrinkme`
|
|
157
|
+
- `shrinkearn`
|
|
158
|
+
- `clksh`
|
|
159
|
+
- `lnkc`
|
|
160
|
+
- `zinkme`
|
|
161
|
+
- `short2url`
|
|
162
|
+
- `urlnama`
|
|
163
|
+
- `adshorti`
|
|
164
|
+
- `shrtbr`
|
|
165
|
+
- `linkmonetizado`
|
|
166
|
+
- `clicksfly`
|
|
167
|
+
- `urlsfly`
|
|
168
|
+
- `wefly`
|
|
169
|
+
- `adbull`
|
|
170
|
+
- `linksly`
|
|
171
|
+
- `droplink`
|
|
172
|
+
- `adbitfly`
|
|
173
|
+
- `earnlink`
|
|
174
|
+
- `easycut`
|
|
175
|
+
- `megaurl`
|
|
176
|
+
- `shortzon`
|
|
177
|
+
- `shortiio`
|
|
178
|
+
- `adlinkcash`
|
|
179
|
+
- `adlinkic`
|
|
180
|
+
- `shorte`
|
|
181
|
+
- `link1s`
|
|
182
|
+
- `cutpay`
|
|
183
|
+
- `adz7short`
|
|
184
|
+
|
|
185
|
+
You can also use custom base URL:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
nekosunevrtools shorten --url "https://example.com" --base-url "https://yourdomain.com/api" --apikey YOUR_KEY
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Notes
|
|
192
|
+
|
|
193
|
+
- Not every short-link/video platform has a public API. This package provides a pluggable system so you can add more.
|
|
194
|
+
- API/provider availability and payout rules can change by platform and country.
|
|
195
|
+
|
|
196
|
+
## Publish
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm login
|
|
200
|
+
npm publish --access public
|
|
201
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { runCli } = require("../src/cli");
|
|
4
|
+
|
|
5
|
+
runCli()
|
|
6
|
+
.then((code) => {
|
|
7
|
+
process.exitCode = typeof code === "number" ? code : 0;
|
|
8
|
+
})
|
|
9
|
+
.catch((error) => {
|
|
10
|
+
const message = error && error.message ? error.message : String(error);
|
|
11
|
+
process.stderr.write(`${message}\n`);
|
|
12
|
+
process.exitCode = 1;
|
|
13
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nekosuneprojects/nekosunevrtools",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Multi-platform file upload client for Node.js with pluggable adapters, progress events, and CLI support.",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"types": "src/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"nekosunevrtools": "bin/nekosunevrtools.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"check": "node --check src/index.js && node --check src/upload/client.js && node --check src/upload/providers.js && node --check src/upload/provider/upfiles.js && node --check src/upload/provider/fileio.js && node --check src/upload/provider/catbox.js && node --check src/upload/provider/transfersh.js && node --check src/shorturl/providers.js && node --check src/shorturl/provider/adlinkfly-compatible.js && node --check src/shorturl/provider/presets.js && node --check src/video/providers.js && node --check src/video/provider/doodstream.js && node --check src/upload-client.js && node --check src/earnings.js && node --check src/cli.js && node --check src/utils/file.js && node --check bin/nekosunevrtools.js"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"upload",
|
|
15
|
+
"file-upload",
|
|
16
|
+
"upfiles",
|
|
17
|
+
"api-client",
|
|
18
|
+
"cli",
|
|
19
|
+
"discord",
|
|
20
|
+
"nodejs"
|
|
21
|
+
],
|
|
22
|
+
"author": "",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"axios": "^1.8.4",
|
|
26
|
+
"form-data": "^4.0.1"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=18.0.0"
|
|
30
|
+
}
|
|
31
|
+
}
|