wuhu-torn-helper/src/ts/class/action/FetchEventCallback.ts
2023-04-03 18:00:41 +08:00

44 lines
1.6 KiB
TypeScript

import { MiniProfile } from "../../interface/responseType/MiniProfile";
import CommonUtils from "../utils/CommonUtils";
import Provider from "../provider/Provider";
import ResponseInject from "../../interface/ResponseInject";
import { Injectable } from "../../container/Injectable";
import ClassName from "../../container/ClassName";
import LocalConfigWrapper from "../LocalConfigWrapper";
/**
* fetch 事件监听回调
*/
@Injectable()
@ClassName("FetchEventCallback")
export default class FetchEventCallback extends Provider implements ResponseInject {
className = "FetchEventCallback";
constructor(
private readonly localConfigWrapper: LocalConfigWrapper,
private readonly commonUtils: CommonUtils,
) {
super();
}
/**
* fetch 返回后处理
* @param url
* @param response
*/
public responseHandler(url: string, response) {
// mini profile 中添加上次动作
if (url.includes('profiles.php?step=getUserNameContextMenu') && this.localConfigWrapper.config.ShowMiniProfLastAct) {
window.setTimeout(async () => {
let cont = CommonUtils.querySelector('[class*=profile-mini-_userProfileWrapper___]');
let resp: MiniProfile = response.json as MiniProfile;
let newNode = document.createElement('div');
let formatted = this.commonUtils.secondsFormat(resp.user.lastAction.seconds);
newNode.innerText = '上次动作: ' + formatted;
(await cont).append(newNode);
}, 0);
}
}
}