UNPKG

koishi-plugin-tmp-bot

Version:

欧洲卡车模拟2 TMP查询插件,不会部署的可以直接使用此机器人->QQ:3523283907

56 lines (55 loc) 2.08 kB
const { segment } = require('koishi'); const { resolve } = require('path'); const common = require('../util/common'); const evmOpenApi = require('../api/evmOpenApi'); const guildBind = require('../database/guildBind'); module.exports = async (ctx, session, rankingType) => { if (!ctx.puppeteer) { return '未启用 Puppeteer 功能'; } // 查询排行榜信息 let mileageRankingList = await evmOpenApi.mileageRankingList(ctx.http, rankingType, null); if (mileageRankingList.error) { return '查询排行榜信息失败'; } else if (mileageRankingList.data.length === 0) { return '暂无数据'; } // 查询当前玩家的排行信息 let guildBindData = await guildBind.get(ctx.database, session.platform, session.userId); let playerMileageRanking = null; if (guildBindData) { let playerMileageRankingResult = await evmOpenApi.mileageRankingList(ctx.http, rankingType, guildBindData.tmp_id); if (!playerMileageRankingResult.error && playerMileageRankingResult.data.length > 0) { playerMileageRanking = playerMileageRankingResult.data[0]; } } // 拼接页面数据 let data = { rankingType: rankingType, mileageRankingList: mileageRankingList.data, playerMileageRanking: playerMileageRanking }; let page; try { page = await ctx.puppeteer.page(); await page.setViewport({ width: 1000, height: 1000, deviceScaleFactor: 1.5 }); await page.goto(`file:///${resolve(__dirname, '../resource/mileage-leaderboard.html')}`); await page.evaluate(`setData(${JSON.stringify(data)})`); await page.waitForNetworkIdle(); await common.sleep(500); const element = await page.$("#container"); return (segment.image(await element.screenshot({ encoding: "binary" }), "image/jpg")); } catch (e) { console.info(e); return '渲染异常,请重试'; } finally { if (page) { await page.close(); } } };