mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
refactor: shared logic in webapi.ts
This commit is contained in:
parent
0f77d9df1f
commit
fa5d5f1bcc
@ -1,259 +1,302 @@
|
|||||||
import { RequestUtil } from '@/common/utils/request';
|
import { RequestUtil } from '@/common/utils/request';
|
||||||
import { InstanceContext } from '../wrapper';
|
import {
|
||||||
|
GroupEssenceMsgRet,
|
||||||
|
InstanceContext,
|
||||||
|
WebApiGroupMember,
|
||||||
|
WebApiGroupMemberRet,
|
||||||
|
WebApiGroupNoticeRet,
|
||||||
|
WebHonorType,
|
||||||
|
} from '@/core';
|
||||||
import { NapCatCore } from '..';
|
import { NapCatCore } from '..';
|
||||||
import { GroupEssenceMsgRet, WebApiGroupMember, WebApiGroupMemberRet, WebApiGroupNoticeRet, WebHonorType } from '../entities/webapi';
|
|
||||||
|
|
||||||
export class NTQQWebApi {
|
export class NTQQWebApi {
|
||||||
context: InstanceContext;
|
context: InstanceContext;
|
||||||
core: NapCatCore;
|
core: NapCatCore;
|
||||||
constructor(context: InstanceContext, core: NapCatCore) {
|
|
||||||
this.context = context;
|
|
||||||
this.core = core;
|
|
||||||
}
|
|
||||||
async shareDigest(groupCode: string, msgSeq: string, msgRandom: string, targetGroupCode: string) {
|
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
|
||||||
let ret: any = undefined;
|
|
||||||
const data = 'group_code=' + groupCode + '&msg_seq=' + msgSeq + '&msg_random=' + msgRandom + '&target_group_code=' + targetGroupCode;
|
|
||||||
const url = 'https://qun.qq.com/cgi-bin/group_digest/share_digest?bkn=' + Bkn + "&" + data;
|
|
||||||
//console.log(url);
|
|
||||||
try {
|
|
||||||
ret = await RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': CookieValue });
|
|
||||||
return ret;
|
|
||||||
} catch (e) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
async getGroupEssenceMsg(GroupCode: string, page_start: string) {
|
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
|
||||||
const url = 'https://qun.qq.com/cgi-bin/group_digest/digest_list?bkn=' + Bkn + '&group_code=' + GroupCode + '&page_start=' + page_start + '&page_limit=20';
|
|
||||||
let ret;
|
|
||||||
try {
|
|
||||||
ret = await RequestUtil.HttpGetJson<GroupEssenceMsgRet>(url, 'GET', '', { 'Cookie': CookieValue });
|
|
||||||
} catch {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
//console.log(url, CookieValue);
|
|
||||||
if (ret.retcode !== 0) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
async getGroupMembers(GroupCode: string, cached: boolean = true): Promise<WebApiGroupMember[]> {
|
|
||||||
//logDebug('webapi 获取群成员', GroupCode);
|
|
||||||
let MemberData: Array<WebApiGroupMember> = new Array<WebApiGroupMember>();
|
|
||||||
try {
|
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
|
||||||
const retList: Promise<WebApiGroupMemberRet>[] = [];
|
|
||||||
const fastRet = await RequestUtil.HttpGetJson<WebApiGroupMemberRet>('https://qun.qq.com/cgi-bin/qun_mgr/search_group_members?st=0&end=40&sort=1&gc=' + GroupCode + '&bkn=' + Bkn, 'POST', '', { 'Cookie': CookieValue });
|
|
||||||
if (!fastRet?.count || fastRet?.errcode !== 0 || !fastRet?.mems) {
|
|
||||||
return [];
|
|
||||||
} else {
|
|
||||||
for (const key in fastRet.mems) {
|
|
||||||
MemberData.push(fastRet.mems[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//初始化获取PageNum
|
|
||||||
const PageNum = Math.ceil(fastRet.count / 40);
|
|
||||||
//遍历批量请求
|
|
||||||
for (let i = 2; i <= PageNum; i++) {
|
|
||||||
const ret: Promise<WebApiGroupMemberRet> = RequestUtil.HttpGetJson<WebApiGroupMemberRet>('https://qun.qq.com/cgi-bin/qun_mgr/search_group_members?st=' + (i - 1) * 40 + '&end=' + i * 40 + '&sort=1&gc=' + GroupCode + '&bkn=' + Bkn, 'POST', '', { 'Cookie': CookieValue });
|
|
||||||
retList.push(ret);
|
|
||||||
}
|
|
||||||
//批量等待
|
|
||||||
for (let i = 1; i <= PageNum; i++) {
|
|
||||||
const ret = await (retList[i]);
|
|
||||||
if (!ret?.count || ret?.errcode !== 0 || !ret?.mems) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (const key in ret.mems) {
|
|
||||||
MemberData.push(ret.mems[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
return MemberData;
|
|
||||||
}
|
|
||||||
return MemberData;
|
|
||||||
}
|
|
||||||
// public async addGroupDigest(groupCode: string, msgSeq: string) {
|
|
||||||
// const url = `https://qun.qq.com/cgi-bin/group_digest/cancel_digest?random=665&X-CROSS-ORIGIN=fetch&group_code=${groupCode}&msg_seq=${msgSeq}&msg_random=444021292`;
|
|
||||||
// const res = await this.request(url);
|
|
||||||
// return await res.json();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public async getGroupDigest(groupCode: string) {
|
constructor(context: InstanceContext, core: NapCatCore) {
|
||||||
// const url = `https://qun.qq.com/cgi-bin/group_digest/digest_list?random=665&X-CROSS-ORIGIN=fetch&group_code=${groupCode}&page_start=0&page_limit=20`;
|
this.context = context;
|
||||||
// const res = await this.request(url);
|
this.core = core;
|
||||||
// return await res.json();
|
|
||||||
// }
|
|
||||||
async setGroupNotice(GroupCode: string, Content: string = '') {
|
|
||||||
//https://web.qun.qq.com/cgi-bin/announce/add_qun_notice?bkn=${bkn}
|
|
||||||
//qid=${群号}&bkn=${bkn}&text=${内容}&pinned=0&type=1&settings={"is_show_edit_card":1,"tip_window_type":1,"confirm_required":1}
|
|
||||||
|
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
|
||||||
let ret: any = undefined;
|
|
||||||
const data = 'qid=' + GroupCode + '&bkn=' + Bkn + '&text=' + Content + '&pinned=0&type=1&settings={"is_show_edit_card":1,"tip_window_type":1,"confirm_required":1}';
|
|
||||||
const url = 'https://web.qun.qq.com/cgi-bin/announce/add_qun_notice?bkn=' + Bkn;
|
|
||||||
try {
|
|
||||||
ret = await RequestUtil.HttpGetJson<any>(url, 'GET', '', { 'Cookie': CookieValue });
|
|
||||||
return ret;
|
|
||||||
} catch (e) {
|
|
||||||
return undefined;
|
|
||||||
}
|
}
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
async getGrouptNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet> {
|
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
|
||||||
let ret: WebApiGroupNoticeRet | undefined = undefined;
|
|
||||||
//console.log(CookieValue);
|
|
||||||
const url = 'https://web.qun.qq.com/cgi-bin/announce/get_t_list?bkn=' + Bkn + '&qid=' + GroupCode + '&ft=23&ni=1&n=1&i=1&log_read=1&platform=1&s=-1&n=20';
|
|
||||||
try {
|
|
||||||
ret = await RequestUtil.HttpGetJson<WebApiGroupNoticeRet>(url, 'GET', '', { 'Cookie': CookieValue });
|
|
||||||
if (ret?.ec !== 0) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
} catch (e) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
genBkn(sKey: string) {
|
|
||||||
sKey = sKey || '';
|
|
||||||
let hash = 5381;
|
|
||||||
|
|
||||||
for (let i = 0; i < sKey.length; i++) {
|
async shareDigest(groupCode: string, msgSeq: string, msgRandom: string, targetGroupCode: string) {
|
||||||
const code = sKey.charCodeAt(i);
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
hash = hash + (hash << 5) + code;
|
const url = `https://qun.qq.com/cgi-bin/group_digest/share_digest?${
|
||||||
}
|
new URLSearchParams({
|
||||||
|
bkn: this.getBknFromCookie(cookieObject),
|
||||||
return (hash & 0x7FFFFFFF).toString();
|
group_code: groupCode,
|
||||||
}
|
msg_seq: msgSeq,
|
||||||
async getGroupHonorInfo(groupCode: string, getType: WebHonorType) {
|
msg_random: msgRandom,
|
||||||
const CookiesObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
target_group_code: targetGroupCode,
|
||||||
const CookieValue = Object.entries(CookiesObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
}).toString()
|
||||||
const Bkn = this.genBkn(CookiesObject.skey);
|
}`;
|
||||||
const getDataInternal = async (Internal_groupCode: string, Internal_type: number) => {
|
try {
|
||||||
let url = 'https://qun.qq.com/interactive/honorlist?gc=' + Internal_groupCode + '&type=' + Internal_type.toString();
|
return RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
let res = '';
|
} catch (e) {
|
||||||
let resJson;
|
return undefined;
|
||||||
try {
|
|
||||||
res = await RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': CookieValue });
|
|
||||||
const match = res.match(/window\.__INITIAL_STATE__=(.*?);/);
|
|
||||||
if (match) {
|
|
||||||
resJson = JSON.parse(match[1].trim());
|
|
||||||
}
|
}
|
||||||
if (Internal_type === 1) {
|
}
|
||||||
return resJson?.talkativeList;
|
|
||||||
|
async getGroupEssenceMsg(GroupCode: string, page_start: string) {
|
||||||
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
|
const url = `https://qun.qq.com/cgi-bin/group_digest/digest_list?${
|
||||||
|
new URLSearchParams({
|
||||||
|
bkn: this.getBknFromCookie(cookieObject),
|
||||||
|
group_code: GroupCode,
|
||||||
|
page_start,
|
||||||
|
page_limit: '20',
|
||||||
|
}).toString()
|
||||||
|
}`;
|
||||||
|
let ret;
|
||||||
|
try {
|
||||||
|
ret = await RequestUtil.HttpGetJson<GroupEssenceMsgRet>
|
||||||
|
(url, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
} catch {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (ret.retcode !== 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getGroupMembers(GroupCode: string, cached: boolean = true): Promise<WebApiGroupMember[]> {
|
||||||
|
//logDebug('webapi 获取群成员', GroupCode);
|
||||||
|
const memberData: Array<WebApiGroupMember> = new Array<WebApiGroupMember>();
|
||||||
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
|
const retList: Promise<WebApiGroupMemberRet>[] = [];
|
||||||
|
const fastRet = await RequestUtil.HttpGetJson<WebApiGroupMemberRet>
|
||||||
|
(`https://qun.qq.com/cgi-bin/qun_mgr/search_group_members?${
|
||||||
|
new URLSearchParams({
|
||||||
|
st: '0',
|
||||||
|
end: '40',
|
||||||
|
sort: '1',
|
||||||
|
gc: GroupCode,
|
||||||
|
bkn: this.getBknFromCookie(cookieObject)
|
||||||
|
}).toString()
|
||||||
|
}`, 'POST', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
if (!fastRet?.count || fastRet?.errcode !== 0 || !fastRet?.mems) {
|
||||||
|
return [];
|
||||||
} else {
|
} else {
|
||||||
return resJson?.actorList;
|
for (const key in fastRet.mems) {
|
||||||
|
memberData.push(fastRet.mems[key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
//初始化获取PageNum
|
||||||
this.context.logger.logDebug('获取当前群荣耀失败', url, e);
|
const PageNum = Math.ceil(fastRet.count / 40);
|
||||||
}
|
//遍历批量请求
|
||||||
return undefined;
|
for (let i = 2; i <= PageNum; i++) {
|
||||||
|
const ret = RequestUtil.HttpGetJson<WebApiGroupMemberRet>
|
||||||
|
(`https://qun.qq.com/cgi-bin/qun_mgr/search_group_members?${
|
||||||
|
new URLSearchParams({
|
||||||
|
st: ((i - 1) * 40).toString(),
|
||||||
|
end: (i * 40).toString(),
|
||||||
|
sort: '1',
|
||||||
|
gc: GroupCode,
|
||||||
|
bkn: this.getBknFromCookie(cookieObject)
|
||||||
|
}).toString()
|
||||||
|
}`, 'POST', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
retList.push(ret);
|
||||||
|
}
|
||||||
|
//批量等待
|
||||||
|
for (let i = 1; i <= PageNum; i++) {
|
||||||
|
const ret = await (retList[i]);
|
||||||
|
if (!ret?.count || ret?.errcode !== 0 || !ret?.mems) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (const key in ret.mems) {
|
||||||
|
memberData.push(ret.mems[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return memberData;
|
||||||
}
|
}
|
||||||
|
|
||||||
const HonorInfo: any = { group_id: groupCode };
|
// public async addGroupDigest(groupCode: string, msgSeq: string) {
|
||||||
|
// const url = `https://qun.qq.com/cgi-bin/group_digest/cancel_digest?random=665&X-CROSS-ORIGIN=fetch&group_code=${groupCode}&msg_seq=${msgSeq}&msg_random=444021292`;
|
||||||
|
// const res = await this.request(url);
|
||||||
|
// return await res.json();
|
||||||
|
// }
|
||||||
|
|
||||||
if (getType === WebHonorType.TALKACTIVE || getType === WebHonorType.ALL) {
|
// public async getGroupDigest(groupCode: string) {
|
||||||
try {
|
// const url = `https://qun.qq.com/cgi-bin/group_digest/digest_list?random=665&X-CROSS-ORIGIN=fetch&group_code=${groupCode}&page_start=0&page_limit=20`;
|
||||||
let RetInternal = await getDataInternal(groupCode, 1);
|
// const res = await this.request(url);
|
||||||
if (!RetInternal) {
|
// return await res.json();
|
||||||
throw new Error('获取龙王信息失败');
|
// }
|
||||||
|
|
||||||
|
async setGroupNotice(GroupCode: string, Content: string) {
|
||||||
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
|
let ret: any = undefined;
|
||||||
|
try {
|
||||||
|
ret = await RequestUtil.HttpGetJson<any>
|
||||||
|
(`https://web.qun.qq.com/cgi-bin/announce/add_qun_notice${
|
||||||
|
new URLSearchParams({
|
||||||
|
bkn: this.getBknFromCookie(cookieObject),
|
||||||
|
qid: GroupCode,
|
||||||
|
text: Content,
|
||||||
|
pinned: '0',
|
||||||
|
type: '1',
|
||||||
|
settings: '{"is_show_edit_card":1,"tip_window_type":1,"confirm_required":1}',
|
||||||
|
}).toString()
|
||||||
|
}`, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
return ret;
|
||||||
|
} catch (e) {
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
HonorInfo.current_talkative = {
|
|
||||||
user_id: RetInternal[0]?.uin,
|
|
||||||
avatar: RetInternal[0]?.avatar,
|
|
||||||
nickname: RetInternal[0]?.name,
|
|
||||||
day_count: 0,
|
|
||||||
description: RetInternal[0]?.desc
|
|
||||||
}
|
|
||||||
HonorInfo.talkative_list = [];
|
|
||||||
for (const talkative_ele of RetInternal) {
|
|
||||||
HonorInfo.talkative_list.push({
|
|
||||||
user_id: talkative_ele?.uin,
|
|
||||||
avatar: talkative_ele?.avatar,
|
|
||||||
description: talkative_ele?.desc,
|
|
||||||
day_count: 0,
|
|
||||||
nickname: talkative_ele?.name
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.context.logger.logDebug(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (getType === WebHonorType.PERFROMER || getType === WebHonorType.ALL) {
|
|
||||||
try {
|
async getGroupNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet> {
|
||||||
let RetInternal = await getDataInternal(groupCode, 2);
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
if (!RetInternal) {
|
let ret: WebApiGroupNoticeRet | undefined = undefined;
|
||||||
throw new Error('获取群聊之火失败');
|
try {
|
||||||
|
ret = await RequestUtil.HttpGetJson<WebApiGroupNoticeRet>(`https://web.qun.qq.com/cgi-bin/announce/get_t_list?${
|
||||||
|
new URLSearchParams({
|
||||||
|
bkn: this.getBknFromCookie(cookieObject),
|
||||||
|
qid: GroupCode,
|
||||||
|
type: '1',
|
||||||
|
start: '0',
|
||||||
|
num: '1',
|
||||||
|
}).toString()
|
||||||
|
}`, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
if (ret?.ec !== 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
} catch (e) {
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
HonorInfo.performer_list = [];
|
|
||||||
for (const performer_ele of RetInternal) {
|
|
||||||
HonorInfo.performer_list.push({
|
|
||||||
user_id: performer_ele?.uin,
|
|
||||||
nickname: performer_ele?.name,
|
|
||||||
avatar: performer_ele?.avatar,
|
|
||||||
description: performer_ele?.desc
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.context.logger.logDebug(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (getType === WebHonorType.PERFROMER || getType === WebHonorType.ALL) {
|
|
||||||
try {
|
async getGroupHonorInfo(groupCode: string, getType: WebHonorType) {
|
||||||
let RetInternal = await getDataInternal(groupCode, 3);
|
const cookieObject = await this.core.getApiContext().UserApi.getCookies('qun.qq.com');
|
||||||
if (!RetInternal) {
|
const getDataInternal = async (Internal_groupCode: string, Internal_type: number) => {
|
||||||
throw new Error('获取群聊炽焰失败');
|
const url = `https://qun.qq.com/interactive/honorlist?${
|
||||||
|
new URLSearchParams({
|
||||||
|
gc: Internal_groupCode,
|
||||||
|
type: Internal_type.toString(),
|
||||||
|
}).toString()
|
||||||
|
}`;
|
||||||
|
let resJson;
|
||||||
|
try {
|
||||||
|
const res = await RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) });
|
||||||
|
const match = res.match(/window\.__INITIAL_STATE__=(.*?);/);
|
||||||
|
if (match) {
|
||||||
|
resJson = JSON.parse(match[1].trim());
|
||||||
|
}
|
||||||
|
if (Internal_type === 1) {
|
||||||
|
return resJson?.talkativeList;
|
||||||
|
} else {
|
||||||
|
return resJson?.actorList;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.context.logger.logDebug('获取当前群荣耀失败', url, e);
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
const HonorInfo: any = { group_id: groupCode };
|
||||||
|
|
||||||
|
if (getType === WebHonorType.TALKACTIVE || getType === WebHonorType.ALL) {
|
||||||
|
try {
|
||||||
|
const RetInternal = await getDataInternal(groupCode, 1);
|
||||||
|
if (!RetInternal) {
|
||||||
|
throw new Error('获取龙王信息失败');
|
||||||
|
}
|
||||||
|
HonorInfo.current_talkative = {
|
||||||
|
user_id: RetInternal[0]?.uin,
|
||||||
|
avatar: RetInternal[0]?.avatar,
|
||||||
|
nickname: RetInternal[0]?.name,
|
||||||
|
day_count: 0,
|
||||||
|
description: RetInternal[0]?.desc,
|
||||||
|
};
|
||||||
|
HonorInfo.talkative_list = [];
|
||||||
|
for (const talkative_ele of RetInternal) {
|
||||||
|
HonorInfo.talkative_list.push({
|
||||||
|
user_id: talkative_ele?.uin,
|
||||||
|
avatar: talkative_ele?.avatar,
|
||||||
|
description: talkative_ele?.desc,
|
||||||
|
day_count: 0,
|
||||||
|
nickname: talkative_ele?.name,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.context.logger.logDebug(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
HonorInfo.legend_list = [];
|
if (getType === WebHonorType.PERFROMER || getType === WebHonorType.ALL) {
|
||||||
for (const legend_ele of RetInternal) {
|
try {
|
||||||
HonorInfo.legend_list.push({
|
const RetInternal = await getDataInternal(groupCode, 2);
|
||||||
user_id: legend_ele?.uin,
|
if (!RetInternal) {
|
||||||
nickname: legend_ele?.name,
|
throw new Error('获取群聊之火失败');
|
||||||
avatar: legend_ele?.avatar,
|
}
|
||||||
desc: legend_ele?.description
|
HonorInfo.performer_list = [];
|
||||||
});
|
for (const performer_ele of RetInternal) {
|
||||||
|
HonorInfo.performer_list.push({
|
||||||
|
user_id: performer_ele?.uin,
|
||||||
|
nickname: performer_ele?.name,
|
||||||
|
avatar: performer_ele?.avatar,
|
||||||
|
description: performer_ele?.desc,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.context.logger.logDebug(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
if (getType === WebHonorType.PERFROMER || getType === WebHonorType.ALL) {
|
||||||
this.context.logger.logDebug('获取群聊炽焰失败', e);
|
try {
|
||||||
}
|
const RetInternal = await getDataInternal(groupCode, 3);
|
||||||
|
if (!RetInternal) {
|
||||||
|
throw new Error('获取群聊炽焰失败');
|
||||||
|
}
|
||||||
|
HonorInfo.legend_list = [];
|
||||||
|
for (const legend_ele of RetInternal) {
|
||||||
|
HonorInfo.legend_list.push({
|
||||||
|
user_id: legend_ele?.uin,
|
||||||
|
nickname: legend_ele?.name,
|
||||||
|
avatar: legend_ele?.avatar,
|
||||||
|
desc: legend_ele?.description,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.context.logger.logDebug('获取群聊炽焰失败', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (getType === WebHonorType.EMOTION || getType === WebHonorType.ALL) {
|
||||||
|
try {
|
||||||
|
const RetInternal = await getDataInternal(groupCode, 6);
|
||||||
|
if (!RetInternal) {
|
||||||
|
throw new Error('获取快乐源泉失败');
|
||||||
|
}
|
||||||
|
HonorInfo.emotion_list = [];
|
||||||
|
for (const emotion_ele of RetInternal) {
|
||||||
|
HonorInfo.emotion_list.push({
|
||||||
|
user_id: emotion_ele.uin,
|
||||||
|
nickname: emotion_ele.name,
|
||||||
|
avatar: emotion_ele.avatar,
|
||||||
|
desc: emotion_ele.description,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.context.logger.logDebug('获取快乐源泉失败', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//冒尖小春笋好像已经被tx扬了
|
||||||
|
if (getType === WebHonorType.EMOTION || getType === WebHonorType.ALL) {
|
||||||
|
HonorInfo.strong_newbie_list = [];
|
||||||
|
}
|
||||||
|
return HonorInfo;
|
||||||
}
|
}
|
||||||
if (getType === WebHonorType.EMOTION || getType === WebHonorType.ALL) {
|
|
||||||
try {
|
private cookieToString(cookieObject: any) {
|
||||||
let RetInternal = await getDataInternal(groupCode, 6);
|
return Object.entries(cookieObject).map(([key, value]) => `${key}=${value}`).join('; ');
|
||||||
if (!RetInternal) {
|
|
||||||
throw new Error('获取快乐源泉失败');
|
|
||||||
}
|
|
||||||
HonorInfo.emotion_list = [];
|
|
||||||
for (const emotion_ele of RetInternal) {
|
|
||||||
HonorInfo.emotion_list.push({
|
|
||||||
user_id: emotion_ele?.uin,
|
|
||||||
nickname: emotion_ele?.name,
|
|
||||||
avatar: emotion_ele?.avatar,
|
|
||||||
desc: emotion_ele?.description
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.context.logger.logDebug('获取快乐源泉失败', e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//冒尖小春笋好像已经被tx扬了
|
|
||||||
if (getType === WebHonorType.EMOTION || getType === WebHonorType.ALL) {
|
private getBknFromCookie(cookieObject: any) {
|
||||||
HonorInfo.strong_newbie_list = [];
|
const sKey = cookieObject.skey as string;
|
||||||
|
|
||||||
|
let hash = 5381;
|
||||||
|
for (let i = 0; i < sKey.length; i++) {
|
||||||
|
const code = sKey.charCodeAt(i);
|
||||||
|
hash = hash + (hash << 5) + code;
|
||||||
|
}
|
||||||
|
return (hash & 0x7FFFFFFF).toString();
|
||||||
}
|
}
|
||||||
return HonorInfo;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user