@joohw/boss-cli 0.4.0 → 0.5.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.
Files changed (115) hide show
  1. package/README.md +170 -172
  2. package/dist/browser/agent_operating_indicator.js +51 -51
  3. package/dist/browser/human_delay.d.ts +2 -0
  4. package/dist/browser/human_delay.d.ts.map +1 -1
  5. package/dist/browser/human_delay.js +4 -0
  6. package/dist/browser/human_delay.js.map +1 -1
  7. package/dist/cli/cliRouter.d.ts.map +1 -1
  8. package/dist/cli/cliRouter.js +56 -43
  9. package/dist/cli/cliRouter.js.map +1 -1
  10. package/dist/cli/version.d.ts +22 -0
  11. package/dist/cli/version.d.ts.map +1 -1
  12. package/dist/cli/version.js +127 -6
  13. package/dist/cli/version.js.map +1 -1
  14. package/dist/common/auth.js +49 -49
  15. package/dist/common/boss_paywall_popup.js +87 -87
  16. package/dist/common/boss_session_lock.d.ts.map +1 -1
  17. package/dist/common/boss_session_lock.js +7 -1
  18. package/dist/common/boss_session_lock.js.map +1 -1
  19. package/dist/common/boss_session_page.d.ts +2 -2
  20. package/dist/common/boss_session_page.d.ts.map +1 -1
  21. package/dist/common/boss_session_page.js +18 -29
  22. package/dist/common/boss_session_page.js.map +1 -1
  23. package/dist/common/boss_sidebar_nav.js +25 -26
  24. package/dist/common/boss_sidebar_nav.js.map +1 -1
  25. package/dist/common/c_resume_capture.d.ts +1 -0
  26. package/dist/common/c_resume_capture.d.ts.map +1 -1
  27. package/dist/common/c_resume_capture.js +69 -32
  28. package/dist/common/c_resume_capture.js.map +1 -1
  29. package/dist/ocr/resume_ocr.d.ts.map +1 -1
  30. package/dist/ocr/resume_ocr.js +4 -1
  31. package/dist/ocr/resume_ocr.js.map +1 -1
  32. package/dist/toolset/action.d.ts.map +1 -1
  33. package/dist/toolset/action.js +11 -7
  34. package/dist/toolset/action.js.map +1 -1
  35. package/dist/toolset/chat.d.ts.map +1 -1
  36. package/dist/toolset/chat.js +246 -230
  37. package/dist/toolset/chat.js.map +1 -1
  38. package/dist/toolset/deep-search.d.ts.map +1 -1
  39. package/dist/toolset/deep-search.js +289 -265
  40. package/dist/toolset/deep-search.js.map +1 -1
  41. package/dist/toolset/greet.d.ts.map +1 -1
  42. package/dist/toolset/greet.js +1 -6
  43. package/dist/toolset/greet.js.map +1 -1
  44. package/dist/toolset/jd.d.ts.map +1 -1
  45. package/dist/toolset/jd.js +132 -136
  46. package/dist/toolset/jd.js.map +1 -1
  47. package/dist/toolset/list.d.ts.map +1 -1
  48. package/dist/toolset/list.js +52 -45
  49. package/dist/toolset/list.js.map +1 -1
  50. package/dist/toolset/preview.d.ts.map +1 -1
  51. package/dist/toolset/preview.js +6 -8
  52. package/dist/toolset/preview.js.map +1 -1
  53. package/dist/toolset/recommend.d.ts.map +1 -1
  54. package/dist/toolset/recommend.js +222 -196
  55. package/dist/toolset/recommend.js.map +1 -1
  56. package/dist/toolset/send.d.ts.map +1 -1
  57. package/dist/toolset/send.js +6 -9
  58. package/dist/toolset/send.js.map +1 -1
  59. package/package.json +65 -65
  60. package/dist/browser/auth.d.ts +0 -33
  61. package/dist/browser/auth.d.ts.map +0 -1
  62. package/dist/browser/auth.js +0 -137
  63. package/dist/browser/auth.js.map +0 -1
  64. package/dist/browser/c_resume_capture.d.ts +0 -11
  65. package/dist/browser/c_resume_capture.d.ts.map +0 -1
  66. package/dist/browser/c_resume_capture.js +0 -76
  67. package/dist/browser/c_resume_capture.js.map +0 -1
  68. package/dist/browser/chat.d.ts +0 -7
  69. package/dist/browser/chat.d.ts.map +0 -1
  70. package/dist/browser/chat.js +0 -155
  71. package/dist/browser/chat.js.map +0 -1
  72. package/dist/browser/withLoggedInPage.d.ts +0 -7
  73. package/dist/browser/withLoggedInPage.d.ts.map +0 -1
  74. package/dist/browser/withLoggedInPage.js +0 -19
  75. package/dist/browser/withLoggedInPage.js.map +0 -1
  76. package/dist/facebook-cli/index.d.ts +0 -2
  77. package/dist/facebook-cli/index.d.ts.map +0 -1
  78. package/dist/facebook-cli/index.js +0 -2
  79. package/dist/facebook-cli/index.js.map +0 -1
  80. package/dist/toolset/c_resume_capture.d.ts +0 -11
  81. package/dist/toolset/c_resume_capture.d.ts.map +0 -1
  82. package/dist/toolset/c_resume_capture.js +0 -76
  83. package/dist/toolset/c_resume_capture.js.map +0 -1
  84. package/dist/toolset/chat_action.d.ts +0 -7
  85. package/dist/toolset/chat_action.d.ts.map +0 -1
  86. package/dist/toolset/chat_action.js +0 -355
  87. package/dist/toolset/chat_action.js.map +0 -1
  88. package/dist/toolset/list_candidates.d.ts +0 -4
  89. package/dist/toolset/list_candidates.d.ts.map +0 -1
  90. package/dist/toolset/list_candidates.js +0 -120
  91. package/dist/toolset/list_candidates.js.map +0 -1
  92. package/dist/toolset/list_positions.d.ts +0 -9
  93. package/dist/toolset/list_positions.d.ts.map +0 -1
  94. package/dist/toolset/list_positions.js +0 -41
  95. package/dist/toolset/list_positions.js.map +0 -1
  96. package/dist/toolset/open_chat.d.ts +0 -3
  97. package/dist/toolset/open_chat.d.ts.map +0 -1
  98. package/dist/toolset/open_chat.js +0 -423
  99. package/dist/toolset/open_chat.js.map +0 -1
  100. package/dist/toolset/recommend_greet.d.ts +0 -2
  101. package/dist/toolset/recommend_greet.d.ts.map +0 -1
  102. package/dist/toolset/recommend_greet.js +0 -27
  103. package/dist/toolset/recommend_greet.js.map +0 -1
  104. package/dist/toolset/search.d.ts +0 -24
  105. package/dist/toolset/search.d.ts.map +0 -1
  106. package/dist/toolset/search.js +0 -682
  107. package/dist/toolset/search.js.map +0 -1
  108. package/dist/toolset/send_message.d.ts +0 -12
  109. package/dist/toolset/send_message.d.ts.map +0 -1
  110. package/dist/toolset/send_message.js +0 -214
  111. package/dist/toolset/send_message.js.map +0 -1
  112. package/dist/toolset/skill.d.ts +0 -13
  113. package/dist/toolset/skill.d.ts.map +0 -1
  114. package/dist/toolset/skill.js +0 -85
  115. package/dist/toolset/skill.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { CHAT_HISTORY_DIALOG_WAIT_MS, CHAT_HISTORY_TAB_SWITCH_MS, MOUSE_CLICK_PRESS_MS, OPEN_CHAT_AFTER_ROW_CLICK_MS, OPEN_CHAT_SCROLL_GAP_MS, randomIntInclusive, sleepRandom, } from '../browser/index.js';
1
+ import { OPEN_CHAT_SCROLL_GAP_MS, sleepRandom } from '../browser/index.js';
2
2
  import { isBossChatIndexUrl } from '../common/auth.js';
3
3
  import { ensureChatIndexAllFilter } from './list.js';
4
4
  function chatRoleTag(from) {
@@ -13,84 +13,101 @@ function chatRoleTag(from) {
13
13
  return '[unknown]';
14
14
  }
15
15
  }
16
+ async function waitForChatHistoryPanelReady(page, selectedTab) {
17
+ await page.waitForFunction(`((tabLabel) => {
18
+ function norm(v) {
19
+ return (v ?? "").replace(/\\s+/g, " ").trim();
20
+ }
21
+ function isVisible(el) {
22
+ if (!el) return false;
23
+ const rect = el.getBoundingClientRect();
24
+ const style = window.getComputedStyle(el);
25
+ return rect.width > 0 && rect.height > 0 && style.visibility !== "hidden" && style.display !== "none";
26
+ }
27
+ const root = document.querySelector(".chat-history-process");
28
+ if (!isVisible(root)) return false;
29
+ if (tabLabel) {
30
+ const selected = root.querySelector(".tab-hd span.selected");
31
+ if (norm(selected?.textContent) !== tabLabel) return false;
32
+ }
33
+ return !!root.querySelector(".record");
34
+ })`, { timeout: 8_000 }, selectedTab ?? null);
35
+ }
16
36
  /**
17
37
  * 打开「沟通记录」弹窗,依次读取「同事沟通」「我的沟通」列表,关闭弹窗。
18
38
  * 未找到入口时返回 null(视为暂无同事沟通记录,不输出该段)。
19
39
  */
20
40
  async function fetchColleagueChatHistorySection(page) {
21
- const clicked = await page.evaluate(() => {
22
- function norm(v) {
23
- return (v ?? '').replace(/\s+/g, ' ').trim();
24
- }
25
- const tooltips = Array.from(document.querySelectorAll('.chat-tooltip-custom'));
26
- for (const el of tooltips) {
27
- if (!norm(el.textContent).includes('沟通记录'))
28
- continue;
29
- const host = el.closest('span.icon') ?? el.closest('span') ?? el.parentElement;
30
- if (host) {
31
- host.click();
32
- return true;
33
- }
34
- el.click();
35
- return true;
36
- }
37
- const uses = Array.from(document.querySelectorAll('use'));
38
- for (const u of uses) {
39
- const h = u.getAttribute('href') ||
40
- u.getAttributeNS('http://www.w3.org/1999/xlink', 'href') ||
41
- '';
42
- if (h.includes('icon-chat-history')) {
43
- const p = u.closest('span.icon') ?? u.parentElement?.parentElement;
44
- if (p) {
45
- p.click();
46
- return true;
47
- }
48
- }
41
+ const clicked = (await page.evaluate(`(() => {
42
+ function norm(v) {
43
+ return (v ?? "").replace(/\\s+/g, " ").trim();
44
+ }
45
+ const tooltips = Array.from(document.querySelectorAll(".chat-tooltip-custom"));
46
+ for (const el of tooltips) {
47
+ if (!norm(el.textContent).includes("沟通记录")) continue;
48
+ const host = el.closest("span.icon") ?? el.closest("span") ?? el.parentElement;
49
+ if (host) {
50
+ host.click();
51
+ return true;
52
+ }
53
+ el.click();
54
+ return true;
55
+ }
56
+ const uses = Array.from(document.querySelectorAll("use"));
57
+ for (const u of uses) {
58
+ const h =
59
+ u.getAttribute("href") ||
60
+ u.getAttributeNS("http://www.w3.org/1999/xlink", "href") ||
61
+ "";
62
+ if (h.includes("icon-chat-history")) {
63
+ const p = u.closest("span.icon") ?? u.parentElement?.parentElement;
64
+ if (p) {
65
+ p.click();
66
+ return true;
49
67
  }
50
- return false;
51
- });
68
+ }
69
+ }
70
+ return false;
71
+ })()`));
52
72
  if (!clicked) {
53
73
  return null;
54
74
  }
55
75
  try {
56
- await page.waitForSelector('.boss-dialog__body .chat-history-process', { timeout: 12_000 });
76
+ await waitForChatHistoryPanelReady(page);
57
77
  }
58
78
  catch {
59
79
  return '(已点击「沟通记录」,但弹窗未在预期时间内出现。)';
60
80
  }
61
- await sleepRandom(CHAT_HISTORY_DIALOG_WAIT_MS.min, CHAT_HISTORY_DIALOG_WAIT_MS.max);
62
- const scrapeRows = () => page.evaluate(() => {
63
- function norm(v) {
64
- return (v ?? '').replace(/\s+/g, ' ').trim();
65
- }
66
- const root = document.querySelector('.chat-history-process');
67
- if (!root)
68
- return [];
69
- return Array.from(root.querySelectorAll('.record li'))
70
- .map((li) => ({
71
- action: norm(li.querySelector('.action')?.textContent),
72
- operat: norm(li.querySelector('.operat')?.textContent),
81
+ const scrapeRows = () => page.evaluate(`(() => {
82
+ function norm(v) {
83
+ return (v ?? "").replace(/\\s+/g, " ").trim();
84
+ }
85
+ const root = document.querySelector(".chat-history-process");
86
+ if (!root) return [];
87
+ return Array.from(root.querySelectorAll(".record li"))
88
+ .map((li) => ({
89
+ action: norm(li.querySelector(".action")?.textContent),
90
+ operat: norm(li.querySelector(".operat")?.textContent),
73
91
  }))
74
- .filter((x) => x.action || x.operat);
75
- });
76
- const clickTab = (label) => page.evaluate((lab) => {
92
+ .filter((x) => x.action || x.operat);
93
+ })()`);
94
+ const clickTab = (label) => page.evaluate(`((lab) => {
77
95
  function norm(v) {
78
- return (v ?? '').replace(/\s+/g, ' ').trim();
96
+ return (v ?? "").replace(/\\s+/g, " ").trim();
79
97
  }
80
- const root = document.querySelector('.chat-history-process');
81
- if (!root)
82
- return;
83
- const spans = Array.from(root.querySelectorAll('.tab-hd span'));
98
+ const root = document.querySelector(".chat-history-process");
99
+ if (!root) return;
100
+ const spans = Array.from(root.querySelectorAll(".tab-hd span"));
84
101
  const sp = spans.find((s) => norm(s.textContent) === lab);
85
- if (sp && !sp.classList.contains('selected')) {
86
- sp.click();
102
+ if (sp && !sp.classList.contains("selected")) {
103
+ sp.click();
87
104
  }
88
- }, label);
105
+ })`, label);
89
106
  await clickTab('同事沟通');
90
- await sleepRandom(CHAT_HISTORY_TAB_SWITCH_MS.min, CHAT_HISTORY_TAB_SWITCH_MS.max);
107
+ await waitForChatHistoryPanelReady(page, '同事沟通');
91
108
  const rowsColleague = await scrapeRows();
92
109
  await clickTab('我的沟通');
93
- await sleepRandom(CHAT_HISTORY_TAB_SWITCH_MS.min, CHAT_HISTORY_TAB_SWITCH_MS.max);
110
+ await waitForChatHistoryPanelReady(page, '我的沟通');
94
111
  const rowsMine = await scrapeRows();
95
112
  const fmt = (label, rows) => {
96
113
  const lines = [`[${label}]`];
@@ -121,12 +138,7 @@ export async function runGetCommunicationHistory(page) {
121
138
  throw new Error('请先打开候选人聊天详情页,再执行“沟通记录”操作。');
122
139
  }
123
140
  let historyBlock = null;
124
- try {
125
- historyBlock = await fetchColleagueChatHistorySection(page);
126
- }
127
- catch {
128
- historyBlock = null;
129
- }
141
+ historyBlock = await fetchColleagueChatHistorySection(page);
130
142
  if (historyBlock === null) {
131
143
  return '未找到「沟通记录」入口,或当前候选人暂无可读取记录。';
132
144
  }
@@ -150,65 +162,84 @@ async function closeChatHistoryPopup(page) {
150
162
  await btn.click();
151
163
  }
152
164
  else {
153
- await page.evaluate(() => {
154
- const root = document.querySelector('.boss-popup__wrapper.chat-history') ||
155
- document.querySelector('.boss-dialog__wrapper.chat-history');
156
- const c = root?.querySelector('.boss-popup__close') ?? document.querySelector('.boss-popup__close');
157
- if (c) {
158
- c.click();
159
- }
160
- });
165
+ await page.evaluate(`(() => {
166
+ const root =
167
+ document.querySelector(".boss-popup__wrapper.chat-history") ||
168
+ document.querySelector(".boss-dialog__wrapper.chat-history");
169
+ const c = root?.querySelector(".boss-popup__close") ?? document.querySelector(".boss-popup__close");
170
+ if (c) {
171
+ c.click();
161
172
  }
162
- await sleepRandom(250, 550);
163
- const popupWrap = await page.$('.boss-popup__wrapper.chat-history');
173
+ })()`);
174
+ }
175
+ await page.waitForFunction(`(() => {
176
+ const roots = Array.from(document.querySelectorAll(".boss-popup__wrapper.chat-history, .boss-dialog__wrapper.chat-history"));
177
+ return roots.every((el) => {
178
+ if (!(el instanceof HTMLElement)) return true;
179
+ const st = window.getComputedStyle(el);
180
+ const r = el.getBoundingClientRect();
181
+ return st.display === "none" || st.visibility === "hidden" || r.width <= 0 || r.height <= 0;
182
+ });
183
+ })()`, { timeout: 2_000 }).catch(() => { });
184
+ const popupWrap = await page.$('.boss-popup__wrapper.chat-history, .boss-dialog__wrapper.chat-history');
164
185
  if (popupWrap) {
165
- await page.evaluate(() => {
166
- const root = document.querySelector('.boss-popup__wrapper.chat-history') ||
167
- document.querySelector('.boss-dialog__wrapper.chat-history');
168
- const c = root?.querySelector('.boss-popup__close') ?? document.querySelector('.boss-popup__close');
169
- c?.click();
170
- });
171
- await sleepRandom(150, 350);
186
+ await page.evaluate(`(() => {
187
+ const root =
188
+ document.querySelector(".boss-popup__wrapper.chat-history") ||
189
+ document.querySelector(".boss-dialog__wrapper.chat-history");
190
+ const c = root?.querySelector(".boss-popup__close") ?? document.querySelector(".boss-popup__close");
191
+ c?.click();
192
+ })()`);
193
+ await page.waitForFunction(`(() => {
194
+ const roots = Array.from(document.querySelectorAll(".boss-popup__wrapper.chat-history, .boss-dialog__wrapper.chat-history"));
195
+ return roots.every((el) => {
196
+ if (!(el instanceof HTMLElement)) return true;
197
+ const st = window.getComputedStyle(el);
198
+ const r = el.getBoundingClientRect();
199
+ return st.display === "none" || st.visibility === "hidden" || r.width <= 0 || r.height <= 0;
200
+ });
201
+ })()`, { timeout: 1_500 }).catch(() => { });
172
202
  }
173
203
  }
174
- catch {
175
- /* ignore */
204
+ catch (err) {
205
+ const msg = err instanceof Error ? err.message : String(err);
206
+ throw new Error(`关闭「沟通记录」弹层失败:${msg}`);
176
207
  }
177
208
  }
178
209
  async function fetchCandidateSummary(page) {
179
- const scraped = (await page.evaluate(`(() => {
180
- const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
181
- const root = document.querySelector(".base-info-single-container");
182
- if (!root) {
183
- throw new Error("未找到候选人详情容器(.base-info-single-container)。");
184
- }
185
- const name = norm(root.querySelector(".name-box")?.textContent);
186
- const active = norm(root.querySelector(".high-light-orange.active-time span")?.textContent);
187
- const basicFacts = Array.from(root.querySelectorAll(".base-info-single-detial > div"))
188
- .filter((el) => !el.classList.contains("name-contet") && !el.classList.contains("active-time"))
189
- .map((el) => norm(el.textContent))
190
- .filter((v) => v.length > 0);
191
- const recentExperience = Array.from(
192
- root.querySelectorAll(".experience-content.detail-list .work-content .value"),
193
- )
194
- .map((el) => norm(el.textContent))
195
- .filter((v) => v.length > 0);
196
- const communicationPosition = norm(
197
- root.querySelector(".position-item .position-name")?.textContent,
198
- );
199
- const expectation = norm(root.querySelector(".position-item.expect .value.job")?.textContent);
200
- const remark = norm(
201
- root.querySelector(".label-remark-content .remark span:last-child")?.textContent,
202
- );
203
- return {
204
- name,
205
- active,
206
- basicFacts,
207
- recentExperience,
208
- communicationPosition,
209
- expectation,
210
- remark,
211
- };
210
+ const scraped = (await page.evaluate(`(() => {
211
+ const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
212
+ const root = document.querySelector(".base-info-single-container");
213
+ if (!root) {
214
+ throw new Error("未找到候选人详情容器(.base-info-single-container)。");
215
+ }
216
+ const name = norm(root.querySelector(".name-box")?.textContent);
217
+ const active = norm(root.querySelector(".high-light-orange.active-time span")?.textContent);
218
+ const basicFacts = Array.from(root.querySelectorAll(".base-info-single-detial > div"))
219
+ .filter((el) => !el.classList.contains("name-contet") && !el.classList.contains("active-time"))
220
+ .map((el) => norm(el.textContent))
221
+ .filter((v) => v.length > 0);
222
+ const recentExperience = Array.from(
223
+ root.querySelectorAll(".experience-content.detail-list .work-content .value"),
224
+ )
225
+ .map((el) => norm(el.textContent))
226
+ .filter((v) => v.length > 0);
227
+ const communicationPosition = norm(
228
+ root.querySelector(".position-item .position-name")?.textContent,
229
+ );
230
+ const expectation = norm(root.querySelector(".position-item.expect .value.job")?.textContent);
231
+ const remark = norm(
232
+ root.querySelector(".label-remark-content .remark span:last-child")?.textContent,
233
+ );
234
+ return {
235
+ name,
236
+ active,
237
+ basicFacts,
238
+ recentExperience,
239
+ communicationPosition,
240
+ expectation,
241
+ remark,
242
+ };
212
243
  })()`));
213
244
  return scraped;
214
245
  }
@@ -241,30 +272,30 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
241
272
  }
242
273
  if (targetWrap)
243
274
  break;
244
- const scrollState = (await page.evaluate(`(() => {
245
- const first = document.querySelector(".geek-item-wrap");
246
- if (!first) return { moved: false, atEnd: true };
247
- let node = first.parentElement;
248
- let scroller = null;
249
- while (node) {
250
- const style = window.getComputedStyle(node);
251
- const overflowY = style.overflowY;
252
- const canScroll =
253
- (overflowY === "auto" || overflowY === "scroll") &&
254
- node.scrollHeight > node.clientHeight;
255
- if (canScroll) {
256
- scroller = node;
257
- break;
258
- }
259
- node = node.parentElement;
260
- }
261
- if (!scroller) return { moved: false, atEnd: true };
262
- const prev = scroller.scrollTop;
263
- const step = Math.max(160, Math.floor(scroller.clientHeight * 0.8));
264
- scroller.scrollTop = Math.min(scroller.scrollTop + step, scroller.scrollHeight);
265
- const moved = scroller.scrollTop !== prev;
266
- const atEnd = scroller.scrollTop + scroller.clientHeight >= scroller.scrollHeight - 2;
267
- return { moved, atEnd };
275
+ const scrollState = (await page.evaluate(`(() => {
276
+ const first = document.querySelector(".geek-item-wrap");
277
+ if (!first) return { moved: false, atEnd: true };
278
+ let node = first.parentElement;
279
+ let scroller = null;
280
+ while (node) {
281
+ const style = window.getComputedStyle(node);
282
+ const overflowY = style.overflowY;
283
+ const canScroll =
284
+ (overflowY === "auto" || overflowY === "scroll") &&
285
+ node.scrollHeight > node.clientHeight;
286
+ if (canScroll) {
287
+ scroller = node;
288
+ break;
289
+ }
290
+ node = node.parentElement;
291
+ }
292
+ if (!scroller) return { moved: false, atEnd: true };
293
+ const prev = scroller.scrollTop;
294
+ const step = Math.max(160, Math.floor(scroller.clientHeight * 0.8));
295
+ scroller.scrollTop = Math.min(scroller.scrollTop + step, scroller.scrollHeight);
296
+ const moved = scroller.scrollTop !== prev;
297
+ const atEnd = scroller.scrollTop + scroller.clientHeight >= scroller.scrollHeight - 2;
298
+ return { moved, atEnd };
268
299
  })()`));
269
300
  if (!scrollState.moved || scrollState.atEnd) {
270
301
  break;
@@ -274,110 +305,95 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
274
305
  if (!targetWrap) {
275
306
  throw new Error(`未在聊天列表中找到候选人:${targetName}`);
276
307
  }
277
- try {
278
- await targetWrap.evaluate((el) => {
279
- const row = el.querySelector('.geek-item') ?? el;
280
- row.scrollIntoView({ behavior: 'instant', block: 'center', inline: 'nearest' });
281
- row.click();
282
- });
283
- }
284
- catch {
285
- const box = await targetWrap.boundingBox();
286
- if (!box) {
287
- throw new Error(`已定位候选人 ${foundName},但元素不可点击。`);
288
- }
289
- await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2, {
290
- delay: randomIntInclusive(MOUSE_CLICK_PRESS_MS.min, MOUSE_CLICK_PRESS_MS.max),
291
- });
292
- }
293
- await sleepRandom(OPEN_CHAT_AFTER_ROW_CLICK_MS.min, OPEN_CHAT_AFTER_ROW_CLICK_MS.max);
294
- const selected = await targetWrap
308
+ await targetWrap.evaluate(`((el) => {
309
+ const row = el.querySelector(".geek-item") ?? el;
310
+ row.scrollIntoView({ behavior: "instant", block: "center", inline: "nearest" });
311
+ row.click();
312
+ })`);
313
+ let selected = await targetWrap
295
314
  .$eval('.geek-item', (el) => el.classList.contains('selected'))
296
315
  .catch(() => false);
297
316
  try {
298
- await page.waitForSelector('.base-info-single-container', { timeout: 12_000 });
299
- await page.waitForFunction(`((name) => {
300
- const text = document.querySelector(".base-info-single-container .name-box")?.textContent ?? "";
301
- return text.replace(/\\s+/g, " ").trim().includes(name);
317
+ await page.waitForFunction(`((name) => {
318
+ const text = document.querySelector(".base-info-single-container .name-box")?.textContent ?? "";
319
+ return text.replace(/\\s+/g, " ").trim().includes(name);
302
320
  })`, { timeout: 12_000 }, foundName || targetName);
303
- await page.waitForFunction(`(() => {
304
- const list = document.querySelector(".chat-message-list");
305
- if (!list) return false;
306
- const items = list.querySelectorAll(".message-item");
307
- if (!items || items.length === 0) return false;
308
- const hasText = Array.from(items).some((item) => {
309
- const txt =
310
- item.querySelector(".item-friend .text span")?.textContent ??
311
- item.querySelector(".item-myself .text span")?.textContent ??
312
- item.querySelector(".item-system .message-card-top-title")?.textContent ??
313
- "";
314
- return txt.replace(/\\s+/g, " ").trim().length > 0;
315
- });
316
- return hasText;
321
+ await page.waitForFunction(`(() => {
322
+ const list = document.querySelector(".chat-message-list");
323
+ if (!list) return false;
324
+ const items = list.querySelectorAll(".message-item");
325
+ if (!items || items.length === 0) return false;
326
+ const hasText = Array.from(items).some((item) => {
327
+ const txt =
328
+ item.querySelector(".item-friend .text span")?.textContent ??
329
+ item.querySelector(".item-myself .text span")?.textContent ??
330
+ item.querySelector(".item-system .message-card-top-title")?.textContent ??
331
+ "";
332
+ return txt.replace(/\\s+/g, " ").trim().length > 0;
333
+ });
334
+ return hasText;
317
335
  })()`, { timeout: 16_000 });
318
336
  }
319
337
  catch {
338
+ selected = await targetWrap
339
+ .$eval('.geek-item', (el) => el.classList.contains('selected'))
340
+ .catch(() => selected);
320
341
  throw new Error(`已尝试点击 ${foundName}(selected=${String(selected)}),但未检测到对应聊天详情面板。`);
321
342
  }
322
343
  let fullMessages = [];
323
344
  let hasFriendResumeAttachment = false;
324
- try {
325
- const scraped = (await page.evaluate(`(() => {
326
- const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
327
- /** Boss 系统里的「消息优先提醒」增值服务条,对业务无意义,过滤掉 */
328
- function isBossPriorityUpsellSystemText(text) {
329
- return norm(text).indexOf("优先提醒") !== -1;
330
- }
331
- const items = Array.from(document.querySelectorAll(".chat-message-list .message-item"));
332
- let currentTime = "";
333
- const messages = [];
334
- let hasFriendResumeAttachment = false;
335
- for (const item of items) {
336
- const timeNode = item.querySelector(".message-time .time");
337
- if (timeNode) {
338
- const t = norm(timeNode.textContent);
339
- if (t) currentTime = t;
340
- }
341
- const friendRoot = item.querySelector(".item-friend");
342
- let friendText = "";
343
- if (friendRoot) {
344
- friendText = norm(friendRoot.querySelector(".text > span")?.textContent);
345
- if (!friendText) {
346
- const resumeIcon = friendRoot.querySelector(".resume-icon");
347
- const title = norm(friendRoot.querySelector(".message-card-top-title")?.textContent);
348
- const cardBtn = norm(friendRoot.querySelector(".message-card-buttons .card-btn")?.textContent);
349
- if (resumeIcon) hasFriendResumeAttachment = true;
350
- if (title || cardBtn) {
351
- const parts = [];
352
- if (title) parts.push(title);
353
- if (cardBtn) parts.push(cardBtn);
354
- friendText = parts.length ? parts.join(" · ") : "";
355
- }
356
- if (!friendText) friendText = norm(friendRoot.querySelector(".text")?.textContent);
357
- }
358
- }
359
- const myselfText = norm(item.querySelector(".item-myself .text span")?.textContent);
360
- const systemText =
361
- norm(item.querySelector(".item-system .message-card-top-title")?.textContent) ||
362
- norm(item.querySelector(".item-system .text span")?.textContent);
363
- if (friendText) {
364
- messages.push({ text: friendText, time: currentTime, from: "friend" });
365
- } else if (myselfText) {
366
- messages.push({ text: myselfText, time: currentTime, from: "myself" });
367
- } else if (systemText) {
368
- if (!isBossPriorityUpsellSystemText(systemText)) {
369
- messages.push({ text: systemText, time: currentTime, from: "system" });
370
- }
371
- }
372
- }
373
- return { messages, hasFriendResumeAttachment };
374
- })()`));
375
- fullMessages = scraped.messages;
376
- hasFriendResumeAttachment = scraped.hasFriendResumeAttachment;
345
+ const scraped = (await page.evaluate(`(() => {
346
+ const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
347
+ /** Boss 系统里的「消息优先提醒」增值服务条,对业务无意义,过滤掉 */
348
+ function isBossPriorityUpsellSystemText(text) {
349
+ return norm(text).indexOf("优先提醒") !== -1;
350
+ }
351
+ const items = Array.from(document.querySelectorAll(".chat-message-list .message-item"));
352
+ let currentTime = "";
353
+ const messages = [];
354
+ let hasFriendResumeAttachment = false;
355
+ for (const item of items) {
356
+ const timeNode = item.querySelector(".message-time .time");
357
+ if (timeNode) {
358
+ const t = norm(timeNode.textContent);
359
+ if (t) currentTime = t;
377
360
  }
378
- catch {
379
- /* 抓取消息失败时仍返回摘要,不刷屏 stderr */
361
+ const friendRoot = item.querySelector(".item-friend");
362
+ let friendText = "";
363
+ if (friendRoot) {
364
+ friendText = norm(friendRoot.querySelector(".text > span")?.textContent);
365
+ if (!friendText) {
366
+ const resumeIcon = friendRoot.querySelector(".resume-icon");
367
+ const title = norm(friendRoot.querySelector(".message-card-top-title")?.textContent);
368
+ const cardBtn = norm(friendRoot.querySelector(".message-card-buttons .card-btn")?.textContent);
369
+ if (resumeIcon) hasFriendResumeAttachment = true;
370
+ if (title || cardBtn) {
371
+ const parts = [];
372
+ if (title) parts.push(title);
373
+ if (cardBtn) parts.push(cardBtn);
374
+ friendText = parts.length ? parts.join(" · ") : "";
375
+ }
376
+ if (!friendText) friendText = norm(friendRoot.querySelector(".text")?.textContent);
377
+ }
378
+ }
379
+ const myselfText = norm(item.querySelector(".item-myself .text span")?.textContent);
380
+ const systemText =
381
+ norm(item.querySelector(".item-system .message-card-top-title")?.textContent) ||
382
+ norm(item.querySelector(".item-system .text span")?.textContent);
383
+ if (friendText) {
384
+ messages.push({ text: friendText, time: currentTime, from: "friend" });
385
+ } else if (myselfText) {
386
+ messages.push({ text: myselfText, time: currentTime, from: "myself" });
387
+ } else if (systemText) {
388
+ if (!isBossPriorityUpsellSystemText(systemText)) {
389
+ messages.push({ text: systemText, time: currentTime, from: "system" });
390
+ }
380
391
  }
392
+ }
393
+ return { messages, hasFriendResumeAttachment };
394
+ })()`));
395
+ fullMessages = scraped.messages;
396
+ hasFriendResumeAttachment = scraped.hasFriendResumeAttachment;
381
397
  const detailLines = fullMessages.map((m) => {
382
398
  const tag = chatRoleTag(m.from);
383
399
  const timePart = m.time ? ` ${m.time}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/toolset/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/toolset/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deep-search.d.ts","sourceRoot":"","sources":["../../src/toolset/deep-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWxD;AAkBD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE;AAgvBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ElF;AAED,6BAA6B;AAC7B,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2D9F;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4BtF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAoBxF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgFnG;AAeD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDlB;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvF"}
1
+ {"version":3,"file":"deep-search.d.ts","sourceRoot":"","sources":["../../src/toolset/deep-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAc3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWxD;AAkBD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE;AAoyBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyElF;AAED,6BAA6B;AAC7B,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2D9F;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4BtF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAoBxF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgFnG;AAeD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ClB;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BvF"}