@lightcone-ai/daemon 0.15.21 → 0.15.22

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightcone-ai/daemon",
3
- "version": "0.15.21",
3
+ "version": "0.15.22",
4
4
  "type": "module",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -106,19 +106,56 @@ export const PLATFORM_CONFIGS = {
106
106
  },
107
107
  async isPageLoggedIn(session) {
108
108
  const result = await session.send('Runtime.evaluate', {
109
- expression: `(() => {
109
+ expression: `(async () => {
110
110
  const href = location.href;
111
111
  const text = document.body?.innerText || '';
112
+ const token = new URL(href).searchParams.get('token') || '';
113
+ if (!/[?&]token=\\d+/.test(href) || text.includes('登录超时') || text.includes('重新登录')) {
114
+ return {
115
+ href,
116
+ hasToken: Boolean(token),
117
+ loginTimedOut: text.includes('登录超时') || text.includes('重新登录'),
118
+ apiOk: false
119
+ };
120
+ }
121
+
122
+ const url = new URL('/cgi-bin/searchbiz', location.origin);
123
+ url.searchParams.set('action', 'search_biz');
124
+ url.searchParams.set('begin', '0');
125
+ url.searchParams.set('count', '1');
126
+ url.searchParams.set('query', '腾讯');
127
+ url.searchParams.set('token', token);
128
+ url.searchParams.set('lang', 'zh_CN');
129
+ url.searchParams.set('f', 'json');
130
+ url.searchParams.set('ajax', '1');
131
+
132
+ let apiOk = false;
133
+ try {
134
+ const response = await fetch(url.toString(), {
135
+ credentials: 'include',
136
+ headers: {
137
+ 'Accept': 'application/json, text/javascript, */*; q=0.01',
138
+ 'X-Requested-With': 'XMLHttpRequest'
139
+ }
140
+ });
141
+ const payload = await response.json();
142
+ apiOk = response.ok && Number(payload?.base_resp?.ret ?? 0) === 0 && Array.isArray(payload?.list);
143
+ } catch {
144
+ apiOk = false;
145
+ }
146
+
112
147
  return {
113
148
  href,
114
- hasToken: /[?&]token=\\d+/.test(href),
115
- loginTimedOut: text.includes('登录超时') || text.includes('重新登录')
149
+ hasToken: Boolean(token),
150
+ loginTimedOut: false,
151
+ apiOk
116
152
  };
117
153
  })()`,
118
154
  returnByValue: true,
155
+ awaitPromise: true,
119
156
  }, 5000);
120
157
  const value = result?.result?.value ?? {};
121
- return Boolean(value.hasToken) && !value.loginTimedOut;
158
+ return Boolean(value.hasToken) && !value.loginTimedOut && Boolean(value.apiOk);
122
159
  },
123
160
  },
124
161
  };