fix:部分逻辑

This commit is contained in:
kissnavel 2025-05-17 19:46:53 +08:00
parent 800bc15007
commit c5d9131c1d
9 changed files with 56 additions and 30 deletions

View file

@ -8,12 +8,15 @@ import settings from './settings.js';
/**
* 获取角色基础信息列表
* @param {MysZZZApi} api
* @param {string} deviceFp
* @param {boolean} origin 是否返回原始数据
* @returns {Promise<ZZZAvatarBasic[] | null>}
*/
export const getAvatarBasicList = async (api, origin = false) => {
export const getAvatarBasicList = async (api, deviceFp, origin = false) => {
// 获取米游社角色列表
const avatarBaseListData = await api.getFinalData('zzzAvatarList');
const avatarBaseListData = await api.getFinalData('zzzAvatarList', {
deviceFp,
});
if (!avatarBaseListData) return null;
// 是否返回原始数据
if (origin) return avatarBaseListData.avatar_list;
@ -27,17 +30,19 @@ export const getAvatarBasicList = async (api, origin = false) => {
/**
* 获取角色详细信息列表
* @param {MysZZZApi} api
* @param {string} deviceFp
* @returns {Promise<ZZZAvatarInfo[] | null>}
* @param {boolean} origin 是否返回原始数据
*/
export const getAvatarInfoList = async (api, origin = false) => {
export const getAvatarInfoList = async (api, deviceFp, origin = false) => {
// 获取角色基础信息列表
const avatarBaseList = await getAvatarBasicList(api, origin);
const avatarBaseList = await getAvatarBasicList(api, deviceFp, origin);
if (!avatarBaseList) return null;
// 获取角色详细信息列表
const avatarInfoList = [];
for (const item of avatarBaseList) {
const data = await api.getFinalData('zzzAvatarInfo', {
deviceFp,
query: {
id_list: [item.id],
},
@ -90,11 +95,12 @@ export const updatePanelData = (uid, newData) => {
/**
* 刷新面板
* @param {MysZZZApi} api
* @param {string} deviceFp
* @returns {Promise<ZZZAvatarInfo[] | null>}
*/
export const refreshPanel = async api => {
export const refreshPanel = async (api, deviceFp) => {
// 获取新数据
const newData = await getAvatarInfoList(api, true);
const newData = await getAvatarInfoList(api, deviceFp, true);
if (!newData) return null;
// 合并新旧数据

View file

@ -22,12 +22,14 @@ export const saveMonthlyNewData = (uid, ...newDatas) => {
/**
* 获取月度数据
* @param {MysZZZApi} api
* @param {string} deviceFp
* @param {string} month
* @returns {Promise<object | null>}
*/
export const getMonthly = async (api, month) => {
export const getMonthly = async (api, deviceFp, month) => {
// 获取月度数据
const data = await api.getFinalData('zzzMonthly', {
deviceFp,
query: { month },
});
saveMonthlyNewData(api.uid, data);
@ -37,11 +39,12 @@ export const getMonthly = async (api, month) => {
/**
* 月度数据统计
* @param {MysZZZApi} api
* @param {string} deviceFp
* @returns {Promise<object | null>}
*/
export const getMonthlyCollect = async api => {
export const getMonthlyCollect = async (api, deviceFp) => {
// 获取当前月度数据
const currentData = await getMonthly(api, '');
const currentData = await getMonthly(api, deviceFp, '');
if (!currentData) return null;

View file

@ -368,13 +368,14 @@ export default class MysZZZApi extends MysApi {
}
}
const device_fp = await redis.get(`ZZZ:DEVICE_FP:${ltuid}:FP`);
if (device_fp) {
data.deviceFp = device_fp;
data.headers['x-rpc-device_fp'] = device_fp;
}
const device_id = await redis.get(`ZZZ:DEVICE_FP:${ltuid}:ID`);
if (device_id) {
data.deviceId = device_id;
if (device_fp && device_id) {
data = {
...data,
deviceFp: device_fp,
deviceId: device_id,
};
data.headers['x-rpc-device_fp'] = device_fp;
data.headers['x-rpc-device_id'] = device_id;
}
}