koishi-plugin-warframe 1.4.12 → 1.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -5,6 +5,8 @@ import WorldState from 'warframe-worldstate-parser';
5
5
  import { RivenWeaponDisposition, RivenStatFixFactorMap } from '../../types/wf/riven';
6
6
  import { RivenStatAnalyzeResult, RivenStatResult } from '../types/wf/riven';
7
7
  import Element from '@satorijs/element';
8
+ import { RivenWeaponItem } from '../../types/miscs/lab';
9
+ import { RivenWeaponItem } from '../types/miscs/lab';
8
10
  export const toTimeStamp: (timeStr: string) => number;
9
11
  /**
10
12
  * 毫秒转「X小时X分钟X秒」格式(0单位不显示)
@@ -637,6 +639,10 @@ export const RivenOrderComponent: (item: RivenItem, orders: RivenOrderInternal[]
637
639
  export const wmCommand: (action: Argv, input: string) => Promise<string>;
638
640
  export const wmrCommand: (action: Argv, input: string) => Promise<string>;
639
641
  export const wmuCommand: (action: Argv, input: string) => Promise<string>;
642
+ export const getHotRivenWeapons: (num?: number) => Promise<RivenWeaponItem[] | undefined>;
643
+ export const globalHotRivenWeapons: AsyncCache<import("types/miscs/lab").RivenWeaponItem[]>;
644
+ export const HotRivenComponent: (data: RivenWeaponItem[]) => Element;
645
+ export const hotRivenCommand: (action: Argv) => Promise<string>;
640
646
  export const onReadyHandler: () => Promise<void>;
641
647
  export const name = "warframe";
642
648
  export interface Config {
package/lib/index.js CHANGED
@@ -52646,6 +52646,65 @@ var wmuCommand = /* @__PURE__ */ __name(async (action, input) => {
52646
52646
  return await updateCache();
52647
52647
  }, "wmuCommand");
52648
52648
 
52649
+ // src/infrastructure/miscs/lab-api.ts
52650
+ var getHotRivenWeapons = /* @__PURE__ */ __name(async (num = 30) => {
52651
+ const response = await fetchAsyncData(
52652
+ `https://lab.webutilitykit.com/api/RivenTracker/hot-weapons?limit=${num}&sortBy=price`
52653
+ );
52654
+ return response?.data;
52655
+ }, "getHotRivenWeapons");
52656
+
52657
+ // src/data/miscs/lab.ts
52658
+ var globalHotRivenWeapons = createAsyncCache(async () => {
52659
+ const items = await getHotRivenWeapons(40);
52660
+ return items || [];
52661
+ }, 18e5);
52662
+
52663
+ // src/components/miscs.tsx
52664
+ var import_jsx_runtime3 = require("@satorijs/element/jsx-runtime");
52665
+ var HotRivenComponent = /* @__PURE__ */ __name((data) => {
52666
+ const displayData = data.slice(0, 20);
52667
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: "width: 600px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px; background-color: #f8f9fa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;", children: displayData.map((item) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: "display: flex; align-items: center; justify-content: space-between; gap: 4px; background-color: #ffffff; padding: 8px 10px; border-radius: 6px; border: 1px solid #e8ecf0;", children: [
52668
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: "flex: 1; min-width: 0; max-width: 60%;", children: [
52669
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: "display: flex; align-items: baseline; gap: 4px;", children: [
52670
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: "font-size: 13px; font-weight: 600; color: #1a2332; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;", children: item.name_zh }),
52671
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: "font-size: 10px; color: #6b7a8f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;", children: item.name_en })
52672
+ ] }),
52673
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: "display: flex; align-items: center; gap: 4px; margin-top: 1px; flex-wrap: wrap;", children: [
52674
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: "font-size: 11px; font-weight: 500; color: #1a2332;", children: [
52675
+ "倾向 ",
52676
+ item.disposition.toFixed(2)
52677
+ ] }),
52678
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: "font-size: 10px; color: #9aabb8;", children: "·" }),
52679
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: "font-size: 10px; color: #6b7a8f;", children: [
52680
+ "🟢在线 ",
52681
+ item.active_count
52682
+ ] })
52683
+ ] })
52684
+ ] }),
52685
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: "text-align: right; flex-shrink: 0;", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: "font-size: 16px; font-weight: 700; color: #2d7a6d;", children: [
52686
+ item.bottom_price,
52687
+ "p"
52688
+ ] }) })
52689
+ ] })) });
52690
+ }, "HotRivenComponent");
52691
+
52692
+ // src/commands/miscs.ts
52693
+ var hotRivenCommand = /* @__PURE__ */ __name(async (action) => {
52694
+ try {
52695
+ const result = await globalHotRivenWeapons.get();
52696
+ if (!result || result.length === 0) {
52697
+ return "暂无热门紫卡数据。";
52698
+ }
52699
+ return await generateImageOutput(
52700
+ action.session.app.puppeteer,
52701
+ HotRivenComponent(result)
52702
+ );
52703
+ } catch (error) {
52704
+ return "获取热门紫卡数据失败";
52705
+ }
52706
+ }, "hotRivenCommand");
52707
+
52649
52708
  // src/hooks/on-ready.ts
52650
52709
  var onReadyHandler = /* @__PURE__ */ __name(async () => {
52651
52710
  await wmOnReady();
@@ -52710,6 +52769,7 @@ var setupCommands = /* @__PURE__ */ __name((ctx) => {
52710
52769
  ctx.command("voidtrader", "虚空商人").alias("虚空商人").alias("奸商").action(voidtraderCommand);
52711
52770
  ctx.command("lichc", "c系玄骸武器", { hidden: true }).action(inDevelopment);
52712
52771
  ctx.command("lichi", "i系玄骸武器", { hidden: true }).action(inDevelopment);
52772
+ ctx.command("hotriven", "热门紫卡").action(hotRivenCommand);
52713
52773
  }, "setupCommands");
52714
52774
  var inDevelopment = /* @__PURE__ */ __name(() => {
52715
52775
  return "功能暂未开放";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-warframe",
3
3
  "description": "WF Toolkit",
4
- "version": "1.4.12",
4
+ "version": "1.4.13",
5
5
  "license": "GPL-3.0",
6
6
  "scripts": {
7
7
  "build": "yakumo build",