UNPKG

api-interface

Version:
22 lines (21 loc) 1.09 kB
"use strict"; const utils_1 = require("../../utils"); module.exports = async (param) => { const { qq } = param; // qq 昵称仅支持 GBK 编码,若使用 utf8 会产生乱码 const url = 'https://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?g_tk=&uins=' + qq; const result = await (0, utils_1.getRequest)(url, 'arraybuffer'); // 在 node 13 之前使用原生 TextEncoder 需要完整的 ICU Data,所以如果是 node 13 之前的版本需要使用 iconv || iconv-lite 转换 // TextDecoder node 12: https://nodejs.org/docs/latest-v12.x/api/util.html#util_class_util_textdecoder // TextDecoder node 13: https://nodejs.org/docs/latest-v13.x/api/util.html#util_class_util_textdecoder let data = new TextDecoder('gbk').decode(result.buffer); const start = data.indexOf('['); const end = data.indexOf(']', start) + 1; if (start === -1 || end === -1) throw new Error('"qq" parameter is not legal'); data = data.substring(start, end); const res = { nick: JSON.parse(data)[6] }; return res; };