@streamapp/stream 0.0.1
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 +24 -0
- package/bin/stream.mjs +89 -0
- package/package.json +34 -0
- package/resources/app/dist-panel/panel-boards.js +6 -0
- package/resources/app/dist-panel/panel-detail.css +1 -0
- package/resources/app/dist-panel/panel-detail.js +2141 -0
- package/resources/app/dist-panel/panel-manage.css +1 -0
- package/resources/app/dist-panel/panel-manage.js +2246 -0
- package/resources/app/dist-panel/panel-movie.css +1 -0
- package/resources/app/dist-panel/panel-movie.js +2268 -0
- package/resources/app/dist-panel/panel-research.css +1 -0
- package/resources/app/dist-panel/panel-research.js +316 -0
- package/resources/app/dist-panel/panel.css +1 -0
- package/resources/app/dist-panel/panel.js +463 -0
- package/resources/dsh-engine-lock/package-lock.json +9032 -0
- package/resources/extension/.output/chrome-mv3/assets/popup-C2NUZZQW.css +2 -0
- package/resources/extension/.output/chrome-mv3/background.js +1 -0
- package/resources/extension/.output/chrome-mv3/chunks/popup-BeBts9v2.js +50 -0
- package/resources/extension/.output/chrome-mv3/icon/128.png +0 -0
- package/resources/extension/.output/chrome-mv3/icon/16.png +0 -0
- package/resources/extension/.output/chrome-mv3/icon/32.png +0 -0
- package/resources/extension/.output/chrome-mv3/icon/48.png +0 -0
- package/resources/extension/.output/chrome-mv3/icon/96.png +0 -0
- package/resources/extension/.output/chrome-mv3/manifest.json +1 -0
- package/resources/extension/.output/chrome-mv3/popup.html +21 -0
- package/resources/packages/1lou/1lou-search.recipe.json +102 -0
- package/resources/packages/1lou/README.md +7 -0
- package/resources/packages/1lou/package.json +15 -0
- package/resources/packages/Douyin_TikTok_Download_API/README.md +23 -0
- package/resources/packages/Douyin_TikTok_Download_API/activate.ts +14 -0
- package/resources/packages/Douyin_TikTok_Download_API/adapter/adapter.ts +321 -0
- package/resources/packages/Douyin_TikTok_Download_API/adapter/danmaku.ts +21 -0
- package/resources/packages/Douyin_TikTok_Download_API/adapter/executor.ts +75 -0
- package/resources/packages/Douyin_TikTok_Download_API/adapter/normalize.ts +20 -0
- package/resources/packages/Douyin_TikTok_Download_API/manifests.yaml +521 -0
- package/resources/packages/Douyin_TikTok_Download_API/package.json +32 -0
- package/resources/packages/alist/README.md +14 -0
- package/resources/packages/alist/activate.ts +12 -0
- package/resources/packages/alist/adapter.ts +74 -0
- package/resources/packages/alist/manifests.yaml +76 -0
- package/resources/packages/alist/mounts.ts +120 -0
- package/resources/packages/alist/package.json +24 -0
- package/resources/packages/alist/presets.ts +53 -0
- package/resources/packages/alist/provision.ts +84 -0
- package/resources/packages/baidu/baidu-share.recipe.json +93 -0
- package/resources/packages/baidu/package.json +16 -0
- package/resources/packages/baidu-search/baidu-search.recipe.json +129 -0
- package/resources/packages/baidu-search/package.json +25 -0
- package/resources/packages/brave/brave-search.recipe.json +129 -0
- package/resources/packages/brave/package.json +25 -0
- package/resources/packages/browser/README.md +3 -0
- package/resources/packages/browser/adapter.ts +44 -0
- package/resources/packages/browser/manifests.yaml +20 -0
- package/resources/packages/browser/package.json +13 -0
- package/resources/packages/bt0/README.md +7 -0
- package/resources/packages/bt0/bt0-search.recipe.json +69 -0
- package/resources/packages/bt0/bt0-tlist.recipe.json +74 -0
- package/resources/packages/bt0/package.json +15 -0
- package/resources/packages/btbtla/README.md +6 -0
- package/resources/packages/btbtla/btbtla-detail.recipe.json +76 -0
- package/resources/packages/btbtla/btbtla-search.recipe.json +74 -0
- package/resources/packages/btbtla/package.json +15 -0
- package/resources/packages/builtin/README.md +8 -0
- package/resources/packages/builtin/manifests.yaml +487 -0
- package/resources/packages/builtin/package.json +14 -0
- package/resources/packages/douyin/README.md +39 -0
- package/resources/packages/douyin/douyin-collection.recipe.json +127 -0
- package/resources/packages/douyin/douyin-search.recipe.json +163 -0
- package/resources/packages/douyin/package.json +16 -0
- package/resources/packages/firecrawl/firecrawl-create-key.recipe.json +81 -0
- package/resources/packages/firecrawl/firecrawl-read-key.recipe.json +56 -0
- package/resources/packages/firecrawl/package.json +16 -0
- package/resources/packages/google/google-search.recipe.json +127 -0
- package/resources/packages/google/package.json +24 -0
- package/resources/packages/groq/groq-create-key.recipe.json +67 -0
- package/resources/packages/groq/package.json +16 -0
- package/resources/packages/huggingface/README.md +7 -0
- package/resources/packages/huggingface/huggingface-spaces.recipe.json +73 -0
- package/resources/packages/huggingface/package.json +15 -0
- package/resources/packages/imdb/imdb-chart.recipe.json +75 -0
- package/resources/packages/imdb/package.json +15 -0
- package/resources/packages/index.ts +15 -0
- package/resources/packages/iqiyi/README.md +10 -0
- package/resources/packages/iqiyi/iqiyi-cn-album.recipe.json +80 -0
- package/resources/packages/iqiyi/iqiyi-cn-search.recipe.json +71 -0
- package/resources/packages/iqiyi/package.json +15 -0
- package/resources/packages/lizhi/README.md +35 -0
- package/resources/packages/lizhi/lizhi-user.recipe.json +80 -0
- package/resources/packages/lizhi/package.json +15 -0
- package/resources/packages/manmanbuy/README.md +16 -0
- package/resources/packages/manmanbuy/manmanbuy-search.recipe.json +115 -0
- package/resources/packages/manmanbuy/package.json +15 -0
- package/resources/packages/mineru/README.md +38 -0
- package/resources/packages/mineru/package.json +28 -0
- package/resources/packages/pansou/README.md +14 -0
- package/resources/packages/pansou/activate.ts +11 -0
- package/resources/packages/pansou/adapter.ts +94 -0
- package/resources/packages/pansou/manifests.yaml +50 -0
- package/resources/packages/pansou/package.json +27 -0
- package/resources/packages/qq/package.json +15 -0
- package/resources/packages/qq/qq-send.recipe.json +104 -0
- package/resources/packages/quark/package.json +16 -0
- package/resources/packages/quark/quark-share.recipe.json +40 -0
- package/resources/packages/reddit/package.json +15 -0
- package/resources/packages/reddit/reddit-sub.recipe.json +77 -0
- package/resources/packages/replay/README.md +7 -0
- package/resources/packages/replay/package.json +13 -0
- package/resources/packages/rsshub/README.md +16 -0
- package/resources/packages/rsshub/manifests.yaml +107 -0
- package/resources/packages/rsshub/package.json +21 -0
- package/resources/packages/telegram/package.json +15 -0
- package/resources/packages/telegram/telegram-search.recipe.json +125 -0
- package/resources/packages/tencent/README.md +11 -0
- package/resources/packages/tencent/package.json +15 -0
- package/resources/packages/tencent/tencent-cn-episode.recipe.json +98 -0
- package/resources/packages/toubiec/README.md +38 -0
- package/resources/packages/toubiec/package.json +15 -0
- package/resources/packages/toubiec/toubiec-download.recipe.json +58 -0
- package/resources/packages/toubiec/toubiec-playlist.recipe.json +49 -0
- package/resources/packages/toubiec/toubiec-search.recipe.json +80 -0
- package/resources/packages/voiceprint/README.md +31 -0
- package/resources/packages/voiceprint/package.json +36 -0
- package/resources/packages/wikipedia/package.json +15 -0
- package/resources/packages/wikipedia/wikipedia-award-list.recipe.json +102 -0
- package/resources/packages/xhs/README.md +32 -0
- package/resources/packages/xhs/package.json +21 -0
- package/resources/packages/xhs/xhs-detail.recipe.json +129 -0
- package/resources/packages/xhs/xhs-home.recipe.json +144 -0
- package/resources/packages/xhs/xhs-like.recipe.json +96 -0
- package/resources/packages/xhs/xhs-search.recipe.json +138 -0
- package/resources/packages/xueqiu/README.md +9 -0
- package/resources/packages/xueqiu/package.json +16 -0
- package/resources/packages/xueqiu/xueqiu-detail.recipe.json +92 -0
- package/resources/packages/xueqiu/xueqiu-user.recipe.json +75 -0
- package/resources/packages/zhipu/package.json +16 -0
- package/resources/packages/zhipu/zhipu-create-key.recipe.json +74 -0
- package/resources/packages/zuna/README.md +31 -0
- package/resources/packages/zuna/package.json +15 -0
- package/resources/packages/zuna/zuna-album.recipe.json +46 -0
- package/resources/packages/zuna/zuna-download.recipe.json +53 -0
- package/resources/packages/zuna/zuna-playlist.recipe.json +46 -0
- package/resources/packages/zuna/zuna-search.recipe.json +96 -0
- package/resources/server.mjs +238876 -0
- package/resources/sidequest.jobs.js +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Stream
|
|
2
|
+
|
|
3
|
+
把很多信息源汇进一个收件箱,并整个开放给 AI(MCP)的自托管信息流层。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx @streamapp/stream
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
需要 **Node 20+**,其余什么都不用装。装完打开 <http://127.0.0.1:8900>。
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
stream [--port <n>] [--data <dir>]
|
|
13
|
+
|
|
14
|
+
--port, -p <n> 监听端口(默认 8900)
|
|
15
|
+
--data <dir> 数据目录(默认 ~/.stream)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
- **数据全在 `~/.stream`**:删掉它就是重置;卸载 = 删掉它 + `npm rm -g @streamapp/stream`。
|
|
19
|
+
- **一个端口**:前端、`/api/*`、`/ws`、插件全走 8900 这一扇门。
|
|
20
|
+
- **第一次打开会等一会儿**:工作台的引擎在后台装(约半分钟),装完页面自己就是它。
|
|
21
|
+
- **要采需要登录的站**(小红书 / B站 / 抖音…)得装一个 Chrome 扩展:Stream 自己不带浏览器,
|
|
22
|
+
采集借你自己那个 Chrome 的登录态。界面上会引导你装,也可以让它替你装。
|
|
23
|
+
|
|
24
|
+
源码与文档:<https://github.com/JaggerH/stream>
|
package/bin/stream.mjs
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __streamCreateRequire } from 'node:module'; const require = __streamCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/install/cli-entry.ts
|
|
5
|
+
import { dirname, join as join2 } from "node:path";
|
|
6
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
7
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
8
|
+
|
|
9
|
+
// src/install/cli.ts
|
|
10
|
+
import { homedir } from "node:os";
|
|
11
|
+
import { join, resolve } from "node:path";
|
|
12
|
+
function parseCliArgs(argv) {
|
|
13
|
+
const out = { help: false, version: false, unknown: [] };
|
|
14
|
+
for (let i = 0; i < argv.length; i++) {
|
|
15
|
+
const a = argv[i];
|
|
16
|
+
const eq = a.indexOf("=");
|
|
17
|
+
const [flag, inline] = eq > 0 ? [a.slice(0, eq), a.slice(eq + 1)] : [a, void 0];
|
|
18
|
+
const take = () => inline ?? argv[++i];
|
|
19
|
+
if (flag === "--help" || flag === "-h") out.help = true;
|
|
20
|
+
else if (flag === "--version" || flag === "-v") out.version = true;
|
|
21
|
+
else if (flag === "--port" || flag === "-p") {
|
|
22
|
+
const n = Number(take());
|
|
23
|
+
if (!Number.isInteger(n) || n <= 0 || n > 65535) out.unknown.push(a);
|
|
24
|
+
else out.port = n;
|
|
25
|
+
} else if (flag === "--data" || flag === "--data-dir") {
|
|
26
|
+
const v = take();
|
|
27
|
+
if (!v) out.unknown.push(a);
|
|
28
|
+
else out.dataDir = resolve(v);
|
|
29
|
+
} else out.unknown.push(a);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
function defaultDataDir(env = process.env, home = homedir()) {
|
|
34
|
+
const explicit = env.STREAM_DATA_DIR;
|
|
35
|
+
if (explicit && explicit.trim()) return resolve(explicit);
|
|
36
|
+
return join(home, ".stream");
|
|
37
|
+
}
|
|
38
|
+
var HELP = `stream \u2014 \u81EA\u6258\u7BA1\u7684\u4FE1\u606F\u6D41\u5C42
|
|
39
|
+
|
|
40
|
+
\u7528\u6CD5\uFF1A
|
|
41
|
+
stream [--port <n>] [--data <dir>]
|
|
42
|
+
|
|
43
|
+
--port, -p <n> \u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 8900\uFF09
|
|
44
|
+
--data <dir> \u53EF\u5199\u72B6\u6001\u7684\u6839\u76EE\u5F55\uFF08\u9ED8\u8BA4 ~/.stream\uFF09
|
|
45
|
+
--version, -v \u6253\u5370\u7248\u672C
|
|
46
|
+
--help, -h \u8FD9\u6BB5
|
|
47
|
+
|
|
48
|
+
\u88C5\u5B8C\u4E4B\u540E\uFF1A
|
|
49
|
+
\u6253\u5F00 http://127.0.0.1:8900 \u2014\u2014 \u9996\u6B21\u8FDB\u53BB\u4F1A\u5F15\u5BFC\u4F60\u628A Chrome \u6269\u5C55\u88C5\u4E0A\uFF08\u91C7\u96C6\u8981\u501F\u4F60\u7684\u767B\u5F55\u6001\uFF09\u3002
|
|
50
|
+
\u6570\u636E\u5168\u5728 --data \u90A3\u4E2A\u76EE\u5F55\u91CC\uFF0C\u5220\u6389\u5B83\u5C31\u7B49\u4E8E\u91CD\u7F6E\uFF1B\u5378\u8F7D\u5C31\u662F\u5220\u6389\u5B83 + npm rm -g @streamapp/stream\u3002
|
|
51
|
+
`;
|
|
52
|
+
function envForServer(opts2, base = process.env) {
|
|
53
|
+
return {
|
|
54
|
+
...base,
|
|
55
|
+
STREAM_DATA_DIR: opts2.dataDir ?? defaultDataDir(base),
|
|
56
|
+
...opts2.port ? { STREAM_PORT: String(opts2.port) } : {}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// src/install/cli-entry.ts
|
|
61
|
+
var opts = parseCliArgs(process.argv.slice(2));
|
|
62
|
+
if (opts.unknown.length) {
|
|
63
|
+
console.error(`stream: \u4E0D\u8BA4\u8BC6\u7684\u53C2\u6570 ${opts.unknown.join(" ")}
|
|
64
|
+
`);
|
|
65
|
+
console.error(HELP);
|
|
66
|
+
process.exit(2);
|
|
67
|
+
}
|
|
68
|
+
if (opts.help) {
|
|
69
|
+
console.log(HELP);
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
if (opts.version) {
|
|
73
|
+
console.log(true ? "0.0.1" : "dev");
|
|
74
|
+
process.exit(0);
|
|
75
|
+
}
|
|
76
|
+
var here = dirname(fileURLToPath(import.meta.url));
|
|
77
|
+
var resources = join2(here, "..", "resources");
|
|
78
|
+
var server = join2(resources, "server.mjs");
|
|
79
|
+
if (!existsSync(server)) {
|
|
80
|
+
console.error(`stream: \u8FD9\u4EFD\u5B89\u88C5\u91CC\u6CA1\u6709\u540E\u7AEF\uFF08${server} \u4E0D\u5728\uFF09\u2014\u2014\u5305\u53EF\u80FD\u662F\u7A7A\u58F3\uFF0C\u91CD\u88C5\u4E00\u6B21\uFF1Anpm i -g @streamapp/stream`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
var dataDir = opts.dataDir ?? defaultDataDir();
|
|
84
|
+
mkdirSync(dataDir, { recursive: true });
|
|
85
|
+
Object.assign(process.env, envForServer(opts));
|
|
86
|
+
process.chdir(resources);
|
|
87
|
+
console.log(`[stream] \u6570\u636E\u76EE\u5F55 ${dataDir}`);
|
|
88
|
+
console.log(`[stream] \u8D77\u6765\u4E4B\u540E\u6253\u5F00 http://127.0.0.1:${process.env.STREAM_PORT ?? 8900}`);
|
|
89
|
+
await import(pathToFileURL(server).href);
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@streamapp/stream",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Stream — a self-hostable information-flow layer: many sources into one inbox, exposed to AI over MCP",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"stream": "bin/stream.mjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/stream.mjs",
|
|
11
|
+
"resources/",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"prepack": "node ../scripts/assert-npm-artifact.mjs"
|
|
16
|
+
},
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=20"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@sidequest/sqlite-backend": "1.16.2",
|
|
22
|
+
"better-sqlite3": "^11.3.0",
|
|
23
|
+
"playwright-core": "^1.60.0"
|
|
24
|
+
},
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/JaggerH/stream.git",
|
|
29
|
+
"directory": "cli"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
}
|
|
34
|
+
}
|