twitter-snap 0.0.61 → 0.0.63
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/README.md +190 -180
- package/bin/dev.cmd +3 -3
- package/bin/dev.js +6 -5
- package/bin/run.cmd +3 -3
- package/bin/run.js +5 -5
- package/dist/app.d.ts +81 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +230 -0
- package/dist/app.js.map +1 -0
- package/dist/commands/index.d.ts +7 -12
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +84 -27
- package/dist/commands/index.js.map +1 -1
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +26 -0
- package/dist/config.js.map +1 -0
- package/dist/hooks/interactive.d.ts.map +1 -1
- package/dist/hooks/interactive.js +93 -86
- package/dist/hooks/interactive.js.map +1 -1
- package/dist/main.d.ts +1 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -3
- package/dist/main.js.map +1 -1
- package/dist/service/core.d.ts +34 -0
- package/dist/service/core.d.ts.map +1 -0
- package/dist/service/core.js +58 -0
- package/dist/service/core.js.map +1 -0
- package/dist/service/pixiv/app.d.ts +5 -0
- package/dist/service/pixiv/app.d.ts.map +1 -0
- package/dist/service/pixiv/app.js +141 -0
- package/dist/service/pixiv/app.js.map +1 -0
- package/dist/service/pixiv/render/image.d.ts +4 -0
- package/dist/service/pixiv/render/image.d.ts.map +1 -0
- package/dist/service/pixiv/render/image.js +180 -0
- package/dist/service/pixiv/render/image.js.map +1 -0
- package/dist/service/pixiv/render/video.d.ts +6 -0
- package/dist/service/pixiv/render/video.d.ts.map +1 -0
- package/dist/service/pixiv/render/video.js +65 -0
- package/dist/service/pixiv/render/video.js.map +1 -0
- package/dist/service/pixiv/type.d.ts +164 -0
- package/dist/service/pixiv/type.d.ts.map +1 -0
- package/dist/service/pixiv/type.js +2 -0
- package/dist/service/pixiv/type.js.map +1 -0
- package/dist/service/twitter/app.d.ts +4 -0
- package/dist/service/twitter/app.d.ts.map +1 -0
- package/dist/service/twitter/app.js +204 -0
- package/dist/service/twitter/app.js.map +1 -0
- package/dist/service/twitter/render/basic/image.d.ts +59 -0
- package/dist/service/twitter/render/basic/image.d.ts.map +1 -0
- package/dist/service/twitter/render/basic/image.js +698 -0
- package/dist/service/twitter/render/basic/image.js.map +1 -0
- package/dist/service/twitter/render/basic/video.d.ts +17 -0
- package/dist/service/twitter/render/basic/video.d.ts.map +1 -0
- package/dist/service/twitter/render/basic/video.js +95 -0
- package/dist/service/twitter/render/basic/video.js.map +1 -0
- package/dist/service/twitter/render/makeItAQuote/image.d.ts +16 -0
- package/dist/service/twitter/render/makeItAQuote/image.d.ts.map +1 -0
- package/dist/service/twitter/render/makeItAQuote/image.js +99 -0
- package/dist/service/twitter/render/makeItAQuote/image.js.map +1 -0
- package/dist/service/twitter/render/utils/utils.d.ts +8 -0
- package/dist/service/twitter/render/utils/utils.d.ts.map +1 -0
- package/dist/service/twitter/render/utils/utils.js +43 -0
- package/dist/service/twitter/render/utils/utils.js.map +1 -0
- package/dist/service/twitter/utils.d.ts +9 -0
- package/dist/service/twitter/utils.d.ts.map +1 -0
- package/dist/service/twitter/utils.js +27 -0
- package/dist/service/twitter/utils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/cookies.d.ts +15 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/dist/utils/cookies.js +24 -0
- package/dist/utils/cookies.js.map +1 -0
- package/dist/utils/element.d.ts +26 -0
- package/dist/utils/element.d.ts.map +1 -0
- package/dist/utils/element.js +186 -0
- package/dist/utils/element.js.map +1 -0
- package/dist/utils/file.d.ts +25 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +51 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/font.d.ts +14 -0
- package/dist/utils/font.d.ts.map +1 -0
- package/dist/utils/font.js +19 -0
- package/dist/utils/font.js.map +1 -0
- package/dist/utils/logger.d.ts +53 -26
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +119 -108
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/login.d.ts +16 -0
- package/dist/utils/login.d.ts.map +1 -0
- package/dist/utils/login.js +55 -0
- package/dist/utils/login.js.map +1 -0
- package/dist/utils/path.d.ts +34 -1
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +100 -5
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/render.d.ts +27 -0
- package/dist/utils/render.d.ts.map +1 -0
- package/dist/utils/render.js +48 -0
- package/dist/utils/render.js.map +1 -0
- package/dist/utils/replace.d.ts +4 -0
- package/dist/utils/replace.d.ts.map +1 -0
- package/dist/utils/replace.js +43 -0
- package/dist/utils/replace.js.map +1 -0
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js +4 -2
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/video.d.ts +28 -0
- package/dist/utils/video.d.ts.map +1 -0
- package/dist/utils/video.js +84 -0
- package/dist/utils/video.js.map +1 -0
- package/oclif.manifest.json +9 -30
- package/package.json +43 -31
- package/dist/core/core.d.ts +0 -43
- package/dist/core/core.d.ts.map +0 -1
- package/dist/core/core.js +0 -336
- package/dist/core/core.js.map +0 -1
- package/dist/core/main.d.ts +0 -15
- package/dist/core/main.d.ts.map +0 -1
- package/dist/core/main.js +0 -153
- package/dist/core/main.js.map +0 -1
- package/dist/utils/fonts.d.ts +0 -5
- package/dist/utils/fonts.d.ts.map +0 -1
- package/dist/utils/fonts.js +0 -11
- package/dist/utils/fonts.js.map +0 -1
- package/dist/utils/liteJson.d.ts +0 -3
- package/dist/utils/liteJson.d.ts.map +0 -1
- package/dist/utils/liteJson.js +0 -25
- package/dist/utils/liteJson.js.map +0 -1
- package/dist/utils/node.d.ts +0 -6
- package/dist/utils/node.d.ts.map +0 -1
- package/dist/utils/node.js +0 -15
- package/dist/utils/node.js.map +0 -1
- package/dist/utils/oclif.d.ts +0 -2
- package/dist/utils/oclif.d.ts.map +0 -1
- package/dist/utils/oclif.js +0 -6
- package/dist/utils/oclif.js.map +0 -1
- package/dist/utils/types.d.ts +0 -8
- package/dist/utils/types.d.ts.map +0 -1
- package/dist/utils/types.js +0 -4
- package/dist/utils/types.js.map +0 -1
- package/dist/utils/url.d.ts +0 -12
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js +0 -74
- package/dist/utils/url.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,181 +1,191 @@
|
|
|
1
|
-
# twitter-snap
|
|
2
|
-
|
|
3
|
-
Create beautiful Tweet images fast.
|
|
4
|
-
Fast, good design, Browser is not a dependency.
|
|
5
|
-
|
|
6
|
-
```shell
|
|
7
|
-
npx twitter-snap@latest https://twitter.com/elonmusk/status/1770222178279252062
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
<p float="left">
|
|
11
|
-
<img src="./docs/img/output-1.png" width="49%" />
|
|
12
|
-
<img src="./docs/img/output-2.png" width="49%" />
|
|
13
|
-
<img src="./docs/img/output-3.png" width="49%" />
|
|
14
|
-
<img src="./docs/img/output-4.png" width="49%" />
|
|
15
|
-
</p>
|
|
16
|
-
|
|
17
|
-
[More Samples](https://github.com/fa0311/twitter-snap/issues/47)
|
|
18
|
-
|
|
19
|
-
```shell
|
|
20
|
-
# Interactive mode
|
|
21
|
-
npx twitter-snap@latest -i
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
<img src="./docs/img/input-1.png" width="49%" />
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
npx twitter-snap@latest
|
|
31
|
-
#
|
|
32
|
-
npx twitter-snap@latest
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
await
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
1
|
+
# twitter-snap
|
|
2
|
+
|
|
3
|
+
Create beautiful Tweet images fast.
|
|
4
|
+
Fast, good design, Browser is not a dependency.
|
|
5
|
+
|
|
6
|
+
```shell
|
|
7
|
+
npx twitter-snap@latest https://twitter.com/elonmusk/status/1770222178279252062
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
<p float="left">
|
|
11
|
+
<img src="./docs/img/output-1.png" width="49%" />
|
|
12
|
+
<img src="./docs/img/output-2.png" width="49%" />
|
|
13
|
+
<img src="./docs/img/output-3.png" width="49%" />
|
|
14
|
+
<img src="./docs/img/output-4.png" width="49%" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
[More Samples](https://github.com/fa0311/twitter-snap/issues/47)
|
|
18
|
+
|
|
19
|
+
```shell
|
|
20
|
+
# Interactive mode
|
|
21
|
+
npx twitter-snap@latest -i
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
<img src="./docs/img/input-1.png" width="49%" />
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
```shell
|
|
29
|
+
# Login with cookies
|
|
30
|
+
npx twitter-snap@latest https://twitter.com/elonmusk/status/1349129669258448897 --session-type file --cookies-file cookies.json
|
|
31
|
+
# Login with puppeteer
|
|
32
|
+
npx twitter-snap@latest https://twitter.com/elonmusk/status/1349129669258448897 --session-type browser
|
|
33
|
+
|
|
34
|
+
# Output the API response directly to a file in raw JSON format.
|
|
35
|
+
npx twitter-snap@latest --theme Json https://x.com/elonmusk/status/1349129669258448897 -o output/data.json
|
|
36
|
+
# Download the media file and save it directly to a file in its raw format.
|
|
37
|
+
npx twitter-snap@latest --theme Media https://x.com/elonmusk/status/1349129669258448897 -o output/{count}
|
|
38
|
+
# Use chatgpt to summarize the data in this tweet.
|
|
39
|
+
npx twitter-snap@latest --theme LiteJson -o {stdout} https://x.com/elonmusk | chatgpt -p 'Summarize the data in this tweet.'
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
`npm -g i twitter-snap@latest`
|
|
45
|
+
|
|
46
|
+
## Docker
|
|
47
|
+
|
|
48
|
+
```shell
|
|
49
|
+
docker run -it --rm -v $(pwd)/output:/app/output ghcr.io/fa0311/twitter-snap/twitter-snap-docker:latest https://x.com/elonmusk/status/1349129669258448897
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```shell
|
|
53
|
+
docker run -it --rm -v $(pwd)/output:/app/output -v $(pwd)/cookies.json:/app/cookies.json twitter-snap https://x.com/elonmusk/status/1349129669258448897 --session-type file
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`--session-type=browser` is not supported.
|
|
57
|
+
|
|
58
|
+
`GPU` is not supported.
|
|
59
|
+
|
|
60
|
+
# Use as a package
|
|
61
|
+
|
|
62
|
+
```shell
|
|
63
|
+
npm i twitter-snap
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
const snap = getSnapAppRender({url: 'https://x.com/elonmusk/status/1349129669258448897'})
|
|
68
|
+
const font = await snap.getFont()
|
|
69
|
+
const session = await snap.login({sessionType: 'guest'})
|
|
70
|
+
const render = await snap.getRender({limit: 1, session})
|
|
71
|
+
|
|
72
|
+
await snap.run(render, async (run) => {
|
|
73
|
+
const res = await run({
|
|
74
|
+
width: 650,
|
|
75
|
+
theme: 'RenderOceanBlueColor',
|
|
76
|
+
font,
|
|
77
|
+
output: 'temp/{id}-{count}.{if-type:png:mp4:json:}',
|
|
78
|
+
})
|
|
79
|
+
await res.file.tempCleanup()
|
|
80
|
+
})
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Also, if you use advanced customization, please use [twitter-snap-core](https://github.com/fa0311/twitter-snap-core).
|
|
84
|
+
|
|
85
|
+
# Usage
|
|
86
|
+
|
|
87
|
+
<!-- COMMANDS_PLACEHOLDER_START -->
|
|
88
|
+
|
|
89
|
+
```shell
|
|
90
|
+
$ node bin/run.js --help
|
|
91
|
+
Create beautiful Tweet images fast
|
|
92
|
+
|
|
93
|
+
USAGE
|
|
94
|
+
$ twitter-snap URL [--browserHeadless] [--browserProfile
|
|
95
|
+
<value>] [--cookiesFile <value>] [--debug] [--interactive]
|
|
96
|
+
[--ffmpegAdditonalOption <value>] [--ffmpegPath <value>] [--ffprobePath
|
|
97
|
+
<value>] [--fontPath <value>] [--limit <value>] [--noCleanup] [-o <value>]
|
|
98
|
+
[--sessionType browser|file|guest] [--simpleLog] [--sleep <value>] [--theme
|
|
99
|
+
RenderOceanBlueColor|RenderOceanBlueDarkColor|RenderSunsetGardenColor|Render
|
|
100
|
+
SunsetGardenDarkColor|RenderDawnBlossomColor|RenderDawnBlossomDarkColor|Rend
|
|
101
|
+
erFierySunsetColor|RenderFierySunsetDarkColor|RenderTwilightSkyColor|RenderT
|
|
102
|
+
wilightSkyDarkColor|RenderPlainColor|RenderPlainDarkColor|RenderTransparent|
|
|
103
|
+
RenderTransparentDark|RenderTransparentShadow|RenderTransparentShadowDark|Js
|
|
104
|
+
on|LiteJson|Media|RenderMakeItAQuote] [--width <value>] [--scale <value>]
|
|
105
|
+
|
|
106
|
+
ARGUMENTS
|
|
107
|
+
URL Twitter url
|
|
108
|
+
|
|
109
|
+
FLAGS
|
|
110
|
+
-o, --output=<value>
|
|
111
|
+
[default: {id}-{count}.{if-type:png:mp4:json:}] Output file name
|
|
112
|
+
|
|
113
|
+
--browserHeadless
|
|
114
|
+
Browser headless
|
|
115
|
+
|
|
116
|
+
--browserProfile=<value>
|
|
117
|
+
[default: ~/.cache/twitter-snap/profiles] Browser profile
|
|
118
|
+
|
|
119
|
+
--cookiesFile=<value>
|
|
120
|
+
[default: cookies.json] Cookies file
|
|
121
|
+
|
|
122
|
+
--debug
|
|
123
|
+
Debug
|
|
124
|
+
|
|
125
|
+
--ffmpegAdditonalOption=<value>
|
|
126
|
+
FFmpeg additonal option
|
|
127
|
+
|
|
128
|
+
--ffmpegPath=<value>
|
|
129
|
+
[default: ffmpeg] FFmpeg path
|
|
130
|
+
|
|
131
|
+
--ffprobePath=<value>
|
|
132
|
+
[default: ffprobe] FFprobe path
|
|
133
|
+
|
|
134
|
+
--fontPath=<value>
|
|
135
|
+
[default: ~/.cache/twitter-snap/fonts] Font path
|
|
136
|
+
|
|
137
|
+
--interactive
|
|
138
|
+
Enable interactive mode
|
|
139
|
+
|
|
140
|
+
--limit=<value>
|
|
141
|
+
[default: 20] Limit count
|
|
142
|
+
|
|
143
|
+
--noCleanup
|
|
144
|
+
Cleanup
|
|
145
|
+
|
|
146
|
+
--scale=<value>
|
|
147
|
+
[default: 1] Scale
|
|
148
|
+
|
|
149
|
+
--sessionType=<option>
|
|
150
|
+
[default: guest] Session type
|
|
151
|
+
<options: browser|file|guest>
|
|
152
|
+
|
|
153
|
+
--simpleLog
|
|
154
|
+
Simple log
|
|
155
|
+
|
|
156
|
+
--sleep=<value>
|
|
157
|
+
Sleep (ms)
|
|
158
|
+
|
|
159
|
+
--theme=<option>
|
|
160
|
+
[default: RenderOceanBlueColor] Theme type
|
|
161
|
+
<options: RenderOceanBlueColor|RenderOceanBlueDarkColor|RenderSunsetGardenCo
|
|
162
|
+
lor|RenderSunsetGardenDarkColor|RenderDawnBlossomColor|RenderDawnBlossomDark
|
|
163
|
+
Color|RenderFierySunsetColor|RenderFierySunsetDarkColor|RenderTwilightSkyCol
|
|
164
|
+
or|RenderTwilightSkyDarkColor|RenderPlainColor|RenderPlainDarkColor|RenderTr
|
|
165
|
+
ansparent|RenderTransparentDark|RenderTransparentShadow|RenderTransparentSha
|
|
166
|
+
dowDark|Json|LiteJson|Media|RenderMakeItAQuote>
|
|
167
|
+
|
|
168
|
+
--width=<value>
|
|
169
|
+
[default: 650] Width
|
|
170
|
+
|
|
171
|
+
DESCRIPTION
|
|
172
|
+
Create beautiful Tweet images fast
|
|
173
|
+
https://github.com/fa0311/twitter-snap
|
|
174
|
+
|
|
175
|
+
EXAMPLES
|
|
176
|
+
Create a snap from tweet id with minimal commands.
|
|
177
|
+
|
|
178
|
+
$ twitter-snap https://twitter.com/elonmusk/status/1349129669258448897
|
|
179
|
+
|
|
180
|
+
Enable interactive mode.
|
|
181
|
+
|
|
182
|
+
$ twitter-snap --interactive
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
<!-- COMMANDS_PLACEHOLDER_END -->
|
|
188
|
+
|
|
189
|
+
## Dependence
|
|
190
|
+
|
|
181
191
|
- [ffmpeg](https://ffmpeg.org/) (for video)
|
package/bin/dev.cmd
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
|
|
3
|
-
node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
|
|
1
|
+
@echo off
|
|
2
|
+
|
|
3
|
+
node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
|
package/bin/dev.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --loader ts-node/esm --
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
#!/usr/bin/env -S node --loader ts-node/esm --disable-warning=ExperimentalWarning
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line n/shebang
|
|
4
|
+
import {execute} from '@oclif/core'
|
|
5
|
+
|
|
6
|
+
await execute({development: true, dir: import.meta.url})
|
package/bin/run.cmd
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
|
|
3
|
-
node "%~dp0\run" %*
|
|
1
|
+
@echo off
|
|
2
|
+
|
|
3
|
+
node "%~dp0\run" %*
|
package/bin/run.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import {execute} from '@oclif/core'
|
|
4
|
-
|
|
5
|
-
await execute({dir: import.meta.url})
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {execute} from '@oclif/core'
|
|
4
|
+
|
|
5
|
+
await execute({dir: import.meta.url})
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ColorThemeType, themeList } from './config.js';
|
|
2
|
+
import { FontOptions, FontUtils } from './utils/font.js';
|
|
3
|
+
import { Logger } from './utils/logger.js';
|
|
4
|
+
import { SnapAppBrowserUtils } from './utils/login.js';
|
|
5
|
+
import { SnapRenderBaseUtils, SnapRenderColorUtils, SnapRenderUtils } from './utils/render.js';
|
|
6
|
+
import { FileReplace } from './utils/replace.js';
|
|
7
|
+
export declare const includeColorTheme: (theme: string) => theme is ColorThemeType;
|
|
8
|
+
export declare const includeTheme: (theme: string) => theme is keyof typeof themeList;
|
|
9
|
+
type ExtractGroups<T extends string> = T extends `${infer _Start}(?<${infer GroupName}>${infer _Rest})${infer Tail}` ? {
|
|
10
|
+
[K in GroupName | keyof ExtractGroups<Tail>]: string;
|
|
11
|
+
} : {};
|
|
12
|
+
type SnapAppCallback<T1, V1 extends string, V2> = (utils: {
|
|
13
|
+
limit: number;
|
|
14
|
+
}, api: T1, match: ExtractGroups<V1>) => Promise<SnapRenderChild<V2>>;
|
|
15
|
+
export declare class Session<T1> {
|
|
16
|
+
api: T1;
|
|
17
|
+
constructor(api: T1);
|
|
18
|
+
}
|
|
19
|
+
export declare class SnapApp<T1> {
|
|
20
|
+
name: string;
|
|
21
|
+
callback: (util: SnapAppBrowserUtils) => Promise<Session<T1>>;
|
|
22
|
+
fonts: (utils: FontUtils) => Promise<FontOptions>;
|
|
23
|
+
init: ({ logger }: {
|
|
24
|
+
logger: Logger;
|
|
25
|
+
}) => Promise<void>;
|
|
26
|
+
pattern: RegExp;
|
|
27
|
+
callbackList: [RegExp, SnapAppCallback<T1, string, any>][];
|
|
28
|
+
constructor(name: string, pattern: string, callback: (util: SnapAppBrowserUtils) => Promise<Session<T1>>, fonts: (utils: FontUtils) => Promise<FontOptions>, init: ({ logger }: {
|
|
29
|
+
logger: Logger;
|
|
30
|
+
}) => Promise<void>);
|
|
31
|
+
call<V1 extends string, V2>(pattern: V1, callback: SnapAppCallback<T1, V1, V2>): void;
|
|
32
|
+
}
|
|
33
|
+
type CallbackImage<T1> = (data: T1, utils: SnapRenderColorUtils) => Promise<React.ReactElement>;
|
|
34
|
+
type CallbackVideo<T1> = (data: T1, utils: SnapRenderColorUtils) => Promise<void>;
|
|
35
|
+
type CallbackOther<T1> = (data: T1, utils: SnapRenderUtils, placeholder: FileReplace[], output: string) => Promise<void>;
|
|
36
|
+
type CallbackJson<T1> = (data: T1, utils: SnapRenderUtils) => Promise<any>;
|
|
37
|
+
type CallbackMedia<T1> = (data: T1, utils: SnapRenderUtils) => Promise<void>;
|
|
38
|
+
export declare class SnapRender<T1> {
|
|
39
|
+
isImage: (data: T1) => boolean;
|
|
40
|
+
placeholder: (data: T1) => FileReplace[];
|
|
41
|
+
imageCallback: [string, CallbackImage<T1>][];
|
|
42
|
+
videoCallback: [string, CallbackVideo<T1>][];
|
|
43
|
+
otherCallback: [string, CallbackOther<T1>][];
|
|
44
|
+
jsonCallback: [string, CallbackJson<T1>][];
|
|
45
|
+
constructor(isImage: (data: T1) => boolean, placeholder: (data: T1) => FileReplace[], image: CallbackImage<T1>, video: CallbackVideo<T1>);
|
|
46
|
+
run: (data: AsyncGenerator<T1, any, any>) => SnapRenderChild<T1>;
|
|
47
|
+
add: (theme: string, image: CallbackImage<T1>, video: CallbackVideo<T1>) => void;
|
|
48
|
+
other: (theme: string, callback: CallbackOther<T1>) => void;
|
|
49
|
+
json: (theme: string, json: CallbackJson<T1>) => void;
|
|
50
|
+
media: <T2>(theme: string, media: (data: T1) => T2[], mediaPlaceholder: (data: T2) => FileReplace[], callback: CallbackMedia<T2>) => void;
|
|
51
|
+
}
|
|
52
|
+
export type SnapRenderChildNextParam<T1> = {
|
|
53
|
+
data: T1;
|
|
54
|
+
ffmpegAdditonalOption?: string[];
|
|
55
|
+
ffmpegPath?: string;
|
|
56
|
+
ffprobePath?: string;
|
|
57
|
+
font: FontOptions;
|
|
58
|
+
logger: Logger;
|
|
59
|
+
output: string;
|
|
60
|
+
scale: number;
|
|
61
|
+
theme: string;
|
|
62
|
+
width: number;
|
|
63
|
+
};
|
|
64
|
+
export declare class SnapRenderChild<T1> {
|
|
65
|
+
isImage: (data: T1) => boolean;
|
|
66
|
+
placeholder: (data: T1) => FileReplace[];
|
|
67
|
+
imageCallback: [string, CallbackImage<T1>][];
|
|
68
|
+
videoCallback: [string, CallbackVideo<T1>][];
|
|
69
|
+
otherCallback: [string, CallbackOther<T1>][];
|
|
70
|
+
jsonCallback: [string, CallbackJson<T1>][];
|
|
71
|
+
data: AsyncGenerator<T1, any, any>;
|
|
72
|
+
count: number;
|
|
73
|
+
constructor(isImage: (data: T1) => boolean, placeholder: (data: T1) => FileReplace[], imageCallback: [string, CallbackImage<T1>][], videoCallback: [string, CallbackVideo<T1>][], otherCallback: [string, CallbackOther<T1>][], jsonCallback: [string, CallbackJson<T1>][], data: AsyncGenerator<T1, any, any>);
|
|
74
|
+
image: (theme: string) => CallbackImage<T1>;
|
|
75
|
+
video: (theme: string) => CallbackVideo<T1>;
|
|
76
|
+
other: (theme: string) => CallbackOther<T1>;
|
|
77
|
+
json: (theme: string) => CallbackJson<T1>;
|
|
78
|
+
next: (flag: SnapRenderChildNextParam<T1>) => Promise<SnapRenderBaseUtils>;
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|