@wecode-ai/weibo-openclaw-plugin 1.0.7 → 1.0.8-beta.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.
@@ -13,7 +13,14 @@ description: |
13
13
 
14
14
  ```json
15
15
  {
16
- "category": "主榜"
16
+ "tool_calls": [
17
+ {
18
+ "name": "weibo_hot_search",
19
+ "arguments": {
20
+ "category": "主榜"
21
+ }
22
+ }
23
+ ]
17
24
  }
18
25
  ```
19
26
 
@@ -88,25 +95,63 @@ description: |
88
95
  ### 获取主榜热搜(默认50条)
89
96
 
90
97
  ```json
91
- { "category": "主榜" }
98
+ {
99
+ "tool_calls": [
100
+ {
101
+ "name": "weibo_hot_search",
102
+ "arguments": {
103
+ "category": "主榜"
104
+ }
105
+ }
106
+ ]
107
+ }
92
108
  ```
93
109
 
94
110
  ### 获取文娱榜前10条
95
111
 
96
112
  ```json
97
- { "category": "文娱榜", "count": 10 }
113
+ {
114
+ "tool_calls": [
115
+ {
116
+ "name": "weibo_hot_search",
117
+ "arguments": {
118
+ "category": "文娱榜",
119
+ "count": 10
120
+ }
121
+ }
122
+ ]
123
+ }
98
124
  ```
99
125
 
100
126
  ### 获取科技榜热搜
101
127
 
102
128
  ```json
103
- { "category": "科技榜", "count": 20 }
129
+ {
130
+ "tool_calls": [
131
+ {
132
+ "name": "weibo_hot_search",
133
+ "arguments": {
134
+ "category": "科技榜",
135
+ "count": 20
136
+ }
137
+ }
138
+ ]
139
+ }
104
140
  ```
105
141
 
106
142
  ### 获取体育榜热搜
107
143
 
108
144
  ```json
109
- { "category": "体育榜" }
145
+ {
146
+ "tool_calls": [
147
+ {
148
+ "name": "weibo_hot_search",
149
+ "arguments": {
150
+ "category": "体育榜"
151
+ }
152
+ }
153
+ ]
154
+ }
110
155
  ```
111
156
 
112
157
  ## 配置(必填)
@@ -14,7 +14,14 @@ description: |
14
14
 
15
15
  ```json
16
16
  {
17
- "query": "搜索关键词"
17
+ "tool_calls": [
18
+ {
19
+ "name": "weibo_search",
20
+ "arguments": {
21
+ "query": "搜索关键词"
22
+ }
23
+ }
24
+ ]
18
25
  }
19
26
  ```
20
27
 
@@ -68,19 +75,32 @@ description: |
68
75
  ### 搜索热门话题
69
76
 
70
77
  ```json
71
- { "query": "#人工智能#" }
78
+ {
79
+ "tool_calls": [
80
+ {
81
+ "name": "weibo_search",
82
+ "arguments": {
83
+ "query": "#人工智能#"
84
+ }
85
+ }
86
+ ]
87
+ }
72
88
  ```
73
89
 
74
- ### 搜索新闻事件
75
-
76
- ```json
77
- { "query": "伊朗" }
78
- ```
79
90
 
80
91
  ### 搜索特定关键词
81
92
 
82
93
  ```json
83
- { "query": "科技新闻" }
94
+ {
95
+ "tool_calls": [
96
+ {
97
+ "name": "weibo_search",
98
+ "arguments": {
99
+ "query": "科技新闻"
100
+ }
101
+ }
102
+ ]
103
+ }
84
104
  ```
85
105
 
86
106
  ### 配置项说明
@@ -10,6 +10,16 @@ description: |
10
10
 
11
11
  ## 基本用法
12
12
 
13
+ ```json
14
+ {
15
+ "tool_calls": [
16
+ {
17
+ "name": "weibo_status",
18
+ "arguments": {}
19
+ }
20
+ ]
21
+ }
22
+ ```
13
23
 
14
24
  ## 参数说明
15
25
 
@@ -62,13 +72,29 @@ description: |
62
72
  ### 获取最新微博(默认参数)
63
73
 
64
74
  ```json
65
- {}
75
+ {
76
+ "tool_calls": [
77
+ {
78
+ "name": "weibo_status",
79
+ "arguments": {}
80
+ }
81
+ ]
82
+ }
66
83
  ```
67
84
 
68
85
  ### 获取指定数量的微博
69
86
 
70
87
  ```json
71
- { "count": 20 }
88
+ {
89
+ "tool_calls": [
90
+ {
91
+ "name": "weibo_status",
92
+ "arguments": {
93
+ "count": 20
94
+ }
95
+ }
96
+ ]
97
+ }
72
98
  ```
73
99
 
74
100
  ### 配置项说明
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: weibo-token
3
+ description: |
4
+ 微博 API 访问令牌工具。用于获取和管理微博 API 的访问 token。
5
+ 此工具为其他微博工具(热搜、搜索、用户微博等)提供统一的 token 管理服务。
6
+ token 有效期为 2 小时,工具会自动缓存和刷新。
7
+ ---
8
+
9
+ # 微博 Token 工具
10
+
11
+ 使用 `weibo_token` 工具获取微博 API 访问令牌。此工具提供统一的 token 管理服务,为其他微博工具提供认证支持。
12
+
13
+ ## 基本用法
14
+
15
+ ```json
16
+ {
17
+ "tool_calls": [
18
+ {
19
+ "name": "weibo_token",
20
+ "arguments": {}
21
+ }
22
+ ]
23
+ }
24
+ ```
25
+
26
+ 此工具不需要任何参数,直接调用即可获取当前有效的 token。
27
+
28
+ ## 参数说明
29
+
30
+ 此工具无需参数。
31
+
32
+ ## 返回结果
33
+
34
+ 成功时返回:
35
+
36
+ ```json
37
+ {
38
+ "success": true,
39
+ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
40
+ "acquiredAt": "2026-03-12T15:30:00.000Z",
41
+ "expiresIn": 7200,
42
+ "expiresAt": "2026-03-12T17:30:00.000Z"
43
+ }
44
+ ```
45
+
46
+ 错误时返回:
47
+
48
+ ```json
49
+ {
50
+ "success": false,
51
+ "error": "获取微博 token 失败: 错误信息"
52
+ }
53
+ ```
54
+
55
+ ## 返回字段说明
56
+
57
+ | 字段 | 类型 | 说明 |
58
+ |------|------|------|
59
+ | `success` | boolean | 是否成功获取 token |
60
+ | `token` | string | 访问令牌 |
61
+ | `acquiredAt` | string | token 获取时间(ISO 8601 格式) |
62
+ | `expiresIn` | number | token 有效期(秒),默认 7200 秒(2小时) |
63
+ | `expiresAt` | string | token 过期时间(ISO 8601 格式) |
64
+
65
+ ## 配置(必填)
66
+
67
+ ```json
68
+ {
69
+ "channels": {
70
+ "weibo": {
71
+ "appId": "your_app_id",
72
+ "appSecret": "your_app_secret"
73
+ }
74
+ }
75
+ }
76
+ ```
77
+
78
+ ### 配置项说明
79
+
80
+ | 配置项 | 类型 | 必填 | 默认值 | 说明 |
81
+ |--------|------|------|--------|------|
82
+ | `appId` | string | 是 | - | 应用 ID,用于获取 token |
83
+ | `appSecret` | string | 是 | - | 应用密钥,用于获取 token |
84
+ | `tokenEndpoint` | string | 否 | `http://open-im.api.weibo.com/open/auth/ws_token` | Token 获取端点 |
85
+ | `weiboTokenEnabled` | boolean | 否 | `true` | 是否启用 token 工具 |
86
+
87
+ ## API 说明
88
+
89
+ 此工具使用微博开放平台的 token 接口:
90
+
91
+ ### 获取 Token
92
+ ```
93
+ POST http://open-im.api.weibo.com/open/auth/ws_token
94
+ Content-Type: application/json
95
+
96
+ {
97
+ "app_id": "your_app_id",
98
+ "app_secret": "your_app_secret"
99
+ }
100
+ ```
101
+
102
+ ### 响应示例
103
+ ```json
104
+ {
105
+ "data": {
106
+ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
107
+ "expire_in": 7200
108
+ }
109
+ }
110
+ ```
111
+
112
+ ## Token 缓存机制
113
+
114
+ 1. **自动缓存**:首次获取的 token 会被缓存
115
+ 2. **自动刷新**:在 token 过期前 60 秒自动刷新
116
+ 3. **共享使用**:所有微博工具共享同一个 token 缓存
117
+
118
+ ## 使用场景
119
+
120
+ 此工具主要用于以下场景:
121
+
122
+ 1. **调试**:检查当前 token 状态和有效期
123
+ 2. **预热**:在使用其他微博工具前预先获取 token
124
+ 3. **监控**:监控 token 的获取和刷新情况
125
+
126
+ ## 与其他工具的关系
127
+
128
+ 以下微博工具依赖此 token 工具进行认证:
129
+
130
+ - `weibo_hot_search` - 微博热搜榜
131
+ - `weibo_search` - 微博智搜
132
+ - `weibo_status` - 用户微博
133
+
134
+ 这些工具会自动调用 token 管理功能,无需手动获取 token。
135
+
136
+ ## 注意事项
137
+
138
+ 1. 此工具需要配置 `appId` 和 `appSecret` 才能使用
139
+ 2. Token 有效期为 2 小时(7200 秒)
140
+ 3. 工具会在 token 过期前 60 秒自动刷新
141
+ 4. 所有微博工具共享同一个 token 缓存,避免重复获取
@@ -1 +1 @@
1
- {"version":3,"file":"weibo-hot-search.d.ts","sourceRoot":"","sources":["../../src/weibo-hot-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,oBAAoB;;;EAa/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAwBvE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,kBAAkB,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAyMF,MAAM,MAAM,oBAAoB,GAAG;IACjC,0CAA0C;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAeF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,iBAAiB,QA6DjE"}
1
+ {"version":3,"file":"weibo-hot-search.d.ts","sourceRoot":"","sources":["../../src/weibo-hot-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,oBAAoB;;;EAa/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAwBvE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,kBAAkB,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAyGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,0CAA0C;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAeF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,iBAAiB,QA6DjE"}
@@ -1,4 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
+ import { getValidWeiboToken } from "./weibo-token-tool.js";
2
3
  // ============ Schema ============
3
4
  export const WeiboHotSearchSchema = Type.Object({
4
5
  category: Type.String({
@@ -41,65 +42,6 @@ const CATEGORY_MAP = {
41
42
  科技榜: "v_openclaw_tech",
42
43
  体育榜: "v_openclaw_sport",
43
44
  };
44
- // ============ Token Management ============
45
- // Token 过期时间:2小时(7200秒),提前60秒刷新
46
- const TOKEN_EXPIRE_SECONDS = 7200;
47
- const TOKEN_REFRESH_BUFFER_SECONDS = 60;
48
- // 默认 token 端点
49
- const DEFAULT_TOKEN_ENDPOINT = "http://open-im.api.weibo.com/open/auth/ws_token";
50
- // 热搜专用的 token 缓存
51
- let hotSearchTokenCache = null;
52
- /**
53
- * 获取热搜用的 token
54
- * 通过 http://open-im.api.weibo.com/open/auth/ws_token 获取
55
- * token 过期时间为 2 小时
56
- */
57
- async function fetchHotSearchToken(appId, appSecret, tokenEndpoint) {
58
- const endpoint = tokenEndpoint || DEFAULT_TOKEN_ENDPOINT;
59
- const response = await fetch(endpoint, {
60
- method: "POST",
61
- headers: {
62
- "Content-Type": "application/json",
63
- },
64
- body: JSON.stringify({
65
- app_id: appId,
66
- app_secret: appSecret,
67
- }),
68
- });
69
- if (!response.ok) {
70
- const errorText = await response.text().catch(() => "");
71
- throw new Error(`获取热搜 token 失败: ${response.status} ${response.statusText}${errorText ? ` - ${errorText}` : ""}`);
72
- }
73
- const result = (await response.json());
74
- if (!result.data?.token) {
75
- throw new Error("获取热搜 token 失败: 响应中缺少 token");
76
- }
77
- const tokenCache = {
78
- token: result.data.token,
79
- acquiredAt: Date.now(),
80
- expiresIn: result.data.expire_in || TOKEN_EXPIRE_SECONDS,
81
- };
82
- hotSearchTokenCache = tokenCache;
83
- return tokenCache;
84
- }
85
- /**
86
- * 获取有效的热搜 token
87
- * 如果缓存的 token 未过期则返回缓存,否则重新获取
88
- */
89
- async function getValidHotSearchToken(appId, appSecret, tokenEndpoint) {
90
- // 检查缓存的 token 是否有效
91
- if (hotSearchTokenCache) {
92
- const expiresAt = hotSearchTokenCache.acquiredAt +
93
- hotSearchTokenCache.expiresIn * 1000 -
94
- TOKEN_REFRESH_BUFFER_SECONDS * 1000;
95
- if (Date.now() < expiresAt) {
96
- return hotSearchTokenCache.token;
97
- }
98
- }
99
- // 获取新 token
100
- const tokenResult = await fetchHotSearchToken(appId, appSecret, tokenEndpoint);
101
- return tokenResult.token;
102
- }
103
45
  // ============ Core Functions ============
104
46
  // 默认热搜端点
105
47
  const DEFAULT_HOT_SEARCH_ENDPOINT = "http://open-im.api.weibo.com/open/weibo/hot_search";
@@ -208,8 +150,8 @@ export function registerWeiboHotSearchTools(api) {
208
150
  error: `无效的榜单类型: ${p.category}。支持的类型: ${Object.keys(CATEGORY_MAP).join("、")}`,
209
151
  });
210
152
  }
211
- // 获取有效的 token
212
- const token = await getValidHotSearchToken(appId, appSecret, cfg.tokenEndpoint);
153
+ // 获取有效的 token(使用共享的 token 工具)
154
+ const token = await getValidWeiboToken(appId, appSecret, cfg.tokenEndpoint);
213
155
  const result = await fetchHotSearch(token, p.category, p.count, cfg.weiboHotSearchEndpoint);
214
156
  return json(formatHotSearchResult(result, p.category));
215
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weibo-hot-search.js","sourceRoot":"","sources":["../../src/weibo-hot-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weibo-hot-search.js","sourceRoot":"","sources":["../../src/weibo-hot-search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"weibo-search.d.ts","sourceRoot":"","sources":["../../src/weibo-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAyB7D;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAyLF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAeF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,QAoD9D"}
1
+ {"version":3,"file":"weibo-search.d.ts","sourceRoot":"","sources":["../../src/weibo-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA0B7D;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAyFF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAeF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,QAoD9D"}
@@ -1,4 +1,5 @@
1
1
  import { WeiboSearchSchema } from "./search-schema.js";
2
+ import { getValidWeiboToken } from "./weibo-token-tool.js";
2
3
  // ============ Helpers ============
3
4
  function json(data) {
4
5
  return {
@@ -16,65 +17,6 @@ function readOptionalNonBlankString(value) {
16
17
  const trimmed = value.trim();
17
18
  return trimmed ? trimmed : undefined;
18
19
  }
19
- // ============ Token Management ============
20
- // Token 过期时间:2小时(7200秒),提前60秒刷新
21
- const TOKEN_EXPIRE_SECONDS = 7200;
22
- const TOKEN_REFRESH_BUFFER_SECONDS = 60;
23
- // 默认 token 端点
24
- const DEFAULT_TOKEN_ENDPOINT = "http://open-im.api.weibo.com/open/auth/ws_token";
25
- // 搜索专用的 token 缓存
26
- let searchTokenCache = null;
27
- /**
28
- * 获取搜索用的 token
29
- * 通过 http://open-im.api.weibo.com/open/auth/ws_token 获取
30
- * token 过期时间为 2 小时
31
- */
32
- async function fetchSearchToken(appId, appSecret, tokenEndpoint) {
33
- const endpoint = tokenEndpoint || DEFAULT_TOKEN_ENDPOINT;
34
- const response = await fetch(endpoint, {
35
- method: "POST",
36
- headers: {
37
- "Content-Type": "application/json",
38
- },
39
- body: JSON.stringify({
40
- app_id: appId,
41
- app_secret: appSecret,
42
- }),
43
- });
44
- if (!response.ok) {
45
- const errorText = await response.text().catch(() => "");
46
- throw new Error(`获取搜索 token 失败: ${response.status} ${response.statusText}${errorText ? ` - ${errorText}` : ""}`);
47
- }
48
- const result = (await response.json());
49
- if (!result.data?.token) {
50
- throw new Error("获取搜索 token 失败: 响应中缺少 token");
51
- }
52
- const tokenCache = {
53
- token: result.data.token,
54
- acquiredAt: Date.now(),
55
- expiresIn: result.data.expire_in || TOKEN_EXPIRE_SECONDS,
56
- };
57
- searchTokenCache = tokenCache;
58
- return tokenCache;
59
- }
60
- /**
61
- * 获取有效的搜索 token
62
- * 如果缓存的 token 未过期则返回缓存,否则重新获取
63
- */
64
- async function getValidSearchToken(appId, appSecret, tokenEndpoint) {
65
- // 检查缓存的 token 是否有效
66
- if (searchTokenCache) {
67
- const expiresAt = searchTokenCache.acquiredAt +
68
- searchTokenCache.expiresIn * 1000 -
69
- TOKEN_REFRESH_BUFFER_SECONDS * 1000;
70
- if (Date.now() < expiresAt) {
71
- return searchTokenCache.token;
72
- }
73
- }
74
- // 获取新 token
75
- const tokenResult = await fetchSearchToken(appId, appSecret, tokenEndpoint);
76
- return tokenResult.token;
77
- }
78
20
  // ============ Core Functions ============
79
21
  // 默认搜索端点
80
22
  const DEFAULT_SEARCH_ENDPOINT = "http://open-im.api.weibo.com/open/wis/search_query";
@@ -175,8 +117,8 @@ export function registerWeiboSearchTools(api) {
175
117
  async execute(_toolCallId, params) {
176
118
  const p = params;
177
119
  try {
178
- // 获取有效的 token
179
- const token = await getValidSearchToken(appId, appSecret, searchCfg.tokenEndpoint);
120
+ // 获取有效的 token(使用共享的 token 工具)
121
+ const token = await getValidWeiboToken(appId, appSecret, searchCfg.tokenEndpoint);
180
122
  const result = await searchWeibo(p.query, token, searchCfg.weiboSearchEndpoint);
181
123
  return json(formatSearchResult(result));
182
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weibo-search.js","sourceRoot":"","sources":["../../src/weibo-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weibo-search.js","sourceRoot":"","sources":["../../src/weibo-search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"weibo-status.d.ts","sourceRoot":"","sources":["../../src/weibo-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,iBAAiB;;EAQ5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAwBjE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAmMF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAgBF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,QAiD9D"}
1
+ {"version":3,"file":"weibo-status.d.ts","sourceRoot":"","sources":["../../src/weibo-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,iBAAiB;;EAQ5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAwBjE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAwGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAgBF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,QAkD9D"}
@@ -1,4 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
+ import { getValidWeiboToken } from "./weibo-token-tool.js";
2
3
  // ============ Schema ============
3
4
  export const WeiboStatusSchema = Type.Object({
4
5
  count: Type.Optional(Type.Number({
@@ -24,60 +25,6 @@ function readOptionalNonBlankString(value) {
24
25
  const trimmed = value.trim();
25
26
  return trimmed ? trimmed : undefined;
26
27
  }
27
- // ============ Token Management ============
28
- // Token 过期时间:2小时(7200秒),提前60秒刷新
29
- const TOKEN_EXPIRE_SECONDS = 7200;
30
- const TOKEN_REFRESH_BUFFER_SECONDS = 60;
31
- // 默认 token 端点
32
- const DEFAULT_TOKEN_ENDPOINT = "http://open-im.api.weibo.com/open/auth/ws_token";
33
- // 专用的 token 缓存
34
- let weiboStatusTokenCache = null;
35
- /**
36
- * 获取 token
37
- */
38
- async function fetchWeiboStatusToken(appId, appSecret, tokenEndpoint) {
39
- const endpoint = tokenEndpoint || DEFAULT_TOKEN_ENDPOINT;
40
- const response = await fetch(endpoint, {
41
- method: "POST",
42
- headers: {
43
- "Content-Type": "application/json",
44
- },
45
- body: JSON.stringify({
46
- app_id: appId,
47
- app_secret: appSecret,
48
- }),
49
- });
50
- if (!response.ok) {
51
- const errorText = await response.text().catch(() => "");
52
- throw new Error(`获取 token 失败: ${response.status} ${response.statusText}${errorText ? ` - ${errorText}` : ""}`);
53
- }
54
- const result = (await response.json());
55
- if (!result.data?.token) {
56
- throw new Error("获取 token 失败: 响应中缺少 token");
57
- }
58
- const tokenCache = {
59
- token: result.data.token,
60
- acquiredAt: Date.now(),
61
- expiresIn: result.data.expire_in || TOKEN_EXPIRE_SECONDS,
62
- };
63
- weiboStatusTokenCache = tokenCache;
64
- return tokenCache;
65
- }
66
- /**
67
- * 获取有效的 token
68
- */
69
- async function getValidWeiboStatusToken(appId, appSecret, tokenEndpoint) {
70
- if (weiboStatusTokenCache) {
71
- const expiresAt = weiboStatusTokenCache.acquiredAt +
72
- weiboStatusTokenCache.expiresIn * 1000 -
73
- TOKEN_REFRESH_BUFFER_SECONDS * 1000;
74
- if (Date.now() < expiresAt) {
75
- return weiboStatusTokenCache.token;
76
- }
77
- }
78
- const tokenResult = await fetchWeiboStatusToken(appId, appSecret, tokenEndpoint);
79
- return tokenResult.token;
80
- }
81
28
  // ============ Core Functions ============
82
29
  const DEFAULT_WEIBO_STATUS_ENDPOINT = "http://open-im.api.weibo.com/open/weibo/user_status";
83
30
  /**
@@ -184,7 +131,8 @@ export function registerWeiboStatusTools(api) {
184
131
  async execute(_toolCallId, params) {
185
132
  const p = params;
186
133
  try {
187
- const token = await getValidWeiboStatusToken(appId, appSecret, cfg.tokenEndpoint);
134
+ // 获取有效的 token(使用共享的 token 工具)
135
+ const token = await getValidWeiboToken(appId, appSecret, cfg.tokenEndpoint);
188
136
  const result = await fetchWeiboStatus({
189
137
  token,
190
138
  count: p.count,