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); } } }