benchmark-collector 1.1.0 → 1.1.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.
|
@@ -86,13 +86,27 @@ function buildPythonScript(dbPath, domains) {
|
|
|
86
86
|
? path.join(path.dirname(path.dirname(dbPath)), 'Local State')
|
|
87
87
|
: '';
|
|
88
88
|
return `# -*- coding: utf-8 -*-
|
|
89
|
-
import sqlite3, json, sys, os, subprocess, hashlib, base64, platform
|
|
89
|
+
import sqlite3, json, sys, os, subprocess, hashlib, base64, platform, shutil, tempfile
|
|
90
|
+
|
|
91
|
+
# Windows 下强制 stdout 为 UTF-8,防止中文乱码
|
|
92
|
+
if sys.platform == 'win32':
|
|
93
|
+
sys.stdout.reconfigure(encoding='utf-8')
|
|
90
94
|
|
|
91
95
|
db_path = ${JSON.stringify(dbPath)}
|
|
92
96
|
domains = [${domainList}]
|
|
93
97
|
local_state_path = ${JSON.stringify(localStatePath)}
|
|
94
98
|
current_platform = platform.system()
|
|
95
99
|
|
|
100
|
+
# Windows 上 Chrome 会锁 Cookies 文件,需要复制到临时目录再读取
|
|
101
|
+
actual_db_path = db_path
|
|
102
|
+
if current_platform == 'Windows' and os.path.exists(db_path):
|
|
103
|
+
try:
|
|
104
|
+
tmp_db = os.path.join(tempfile.gettempdir(), f'chrome-cookies-{os.getpid()}.db')
|
|
105
|
+
shutil.copy2(db_path, tmp_db)
|
|
106
|
+
actual_db_path = tmp_db
|
|
107
|
+
except Exception:
|
|
108
|
+
pass # 复制失败就尝试直接读原文件
|
|
109
|
+
|
|
96
110
|
# ========== macOS 解密 ==========
|
|
97
111
|
def get_mac_key():
|
|
98
112
|
password = subprocess.check_output(
|
|
@@ -380,7 +394,7 @@ try:
|
|
|
380
394
|
key_hex = key_raw.hex()
|
|
381
395
|
decrypt_fn = lambda ev: decrypt_linux(ev, key_hex)
|
|
382
396
|
|
|
383
|
-
conn = sqlite3.connect(f'file:{
|
|
397
|
+
conn = sqlite3.connect(f'file:{actual_db_path}?immutable=1', uri=True)
|
|
384
398
|
placeholders = ','.join(['?'] * len(domains))
|
|
385
399
|
rows = conn.execute(
|
|
386
400
|
'SELECT host_key, name, value, encrypted_value, path, expires_utc, is_secure, is_httponly, samesite '
|
|
@@ -388,6 +402,10 @@ try:
|
|
|
388
402
|
domains
|
|
389
403
|
).fetchall()
|
|
390
404
|
conn.close()
|
|
405
|
+
# 清理 Windows 临时文件
|
|
406
|
+
if actual_db_path != db_path:
|
|
407
|
+
try: os.unlink(actual_db_path)
|
|
408
|
+
except: pass
|
|
391
409
|
|
|
392
410
|
result = []
|
|
393
411
|
for host_key, name, value, encrypted_value, cookie_path, expires_utc, is_secure, is_httponly, samesite in rows:
|
|
@@ -442,12 +460,15 @@ function extractCookiesForUrl(url) {
|
|
|
442
460
|
const pyScript = buildPythonScript(dbPath, domains);
|
|
443
461
|
const tmpPy = path.join(os.tmpdir(), `chrome-cookie-extract-${Date.now()}.py`);
|
|
444
462
|
try {
|
|
445
|
-
fs.writeFileSync(tmpPy, pyScript);
|
|
463
|
+
fs.writeFileSync(tmpPy, pyScript, 'utf-8');
|
|
446
464
|
// Windows 上用 python,macOS/Linux 上用 python3
|
|
447
465
|
const pythonCmd = os.platform() === 'win32' ? 'python' : 'python3';
|
|
466
|
+
// Windows: 设置 PYTHONIOENCODING 确保 Python 输出 UTF-8;encoding:'utf-8' 确保 Node 正确解码
|
|
448
467
|
const result = (0, child_process_1.execSync)(`${pythonCmd} "${tmpPy}" 2>&1`, {
|
|
449
468
|
maxBuffer: 10 * 1024 * 1024,
|
|
450
|
-
|
|
469
|
+
encoding: 'utf-8',
|
|
470
|
+
env: { ...process.env, PYTHONIOENCODING: 'utf-8' },
|
|
471
|
+
}).trim();
|
|
451
472
|
const parsed = JSON.parse(result);
|
|
452
473
|
if (parsed.error) {
|
|
453
474
|
console.log(` ⚠️ Cookie 提取失败: ${parsed.error}`);
|
|
@@ -456,8 +477,9 @@ function extractCookiesForUrl(url) {
|
|
|
456
477
|
return parsed;
|
|
457
478
|
}
|
|
458
479
|
catch (e) {
|
|
459
|
-
|
|
460
|
-
const
|
|
480
|
+
// encoding:'utf-8' 下 stderr/stdout 已经是 string
|
|
481
|
+
const stderr = typeof e.stderr === 'string' ? e.stderr.trim() : (e.stderr ? e.stderr.toString('utf-8').trim() : '');
|
|
482
|
+
const stdout = typeof e.stdout === 'string' ? e.stdout.trim() : (e.stdout ? e.stdout.toString('utf-8').trim() : '');
|
|
461
483
|
console.log(` ⚠️ Cookie 提取失败: ${stderr || stdout || e.message?.split('\n')[0]}`);
|
|
462
484
|
return [];
|
|
463
485
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-extract.js","sourceRoot":"","sources":["../../src/cookie-extract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"cookie-extract.js","sourceRoot":"","sources":["../../src/cookie-extract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8aA,oDAmCC;AAjdD;;;;;GAKG;AACH,iDAAyC;AACzC,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAa7B,yBAAyB;AACzB,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,MAAM,OAAO,GAAa,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACrG,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9I,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAiB;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,mCAAmC;IACnC,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;QAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;;YAOG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACrB,UAAU;qBACF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiWlD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,2CAA2C;QAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,gFAAgF;QAChF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,GAAG,SAAS,KAAK,KAAK,QAAQ,EAAE;YACtD,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE;SACnD,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAwB,CAAC;IAClC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,8CAA8C;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACxC,CAAC;AACH,CAAC"}
|