koishi-plugin-warframe 1.4.9 → 1.4.11

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
@@ -542,6 +542,7 @@ export const overrideGlobalRivenAttribute: (cache: AsyncCache<{
542
542
  }>) => void;
543
543
  export const globalDucatnatorIDDict: AsyncCache<Record<string, Ducatnator>>;
544
544
  export const wmOnReady: () => Promise<void>;
545
+ export const updateCache: () => Promise<string>;
545
546
  export const getItemOrders: (input: string) => Promise<{
546
547
  item: ItemShort;
547
548
  orders: OrderWithUser[];
@@ -635,6 +636,7 @@ export const ItemOrderComponent: (item: ItemShort, orders: OrderWithUser[]) => E
635
636
  export const RivenOrderComponent: (item: RivenItem, orders: RivenOrderInternal[]) => Element;
636
637
  export const wmCommand: (action: Argv, input: string) => Promise<string>;
637
638
  export const wmrCommand: (action: Argv, input: string) => Promise<string>;
639
+ export const wmuCommand: (action: Argv, input: string) => Promise<string>;
638
640
  export const onReadyHandler: () => Promise<void>;
639
641
  export const name = "warframe";
640
642
  export interface Config {
package/lib/index.js CHANGED
@@ -1198,7 +1198,12 @@ var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
1198
1198
  var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
1199
1199
  response ??= await getWFMItemList();
1200
1200
  if (!response) {
1201
- return void 0;
1201
+ return {
1202
+ globalItemList: [],
1203
+ globalItemDict: {},
1204
+ globalItemNameToSlugDict: {},
1205
+ globalItemGameRefDict: {}
1206
+ };
1202
1207
  }
1203
1208
  const data = response;
1204
1209
  const globalItemList = response;
@@ -1279,7 +1284,7 @@ var globalDucatnatorIDDict = createAsyncCache(async () => {
1279
1284
  var warframeAlias = {
1280
1285
  Volt: ["电", "电男", "伏特"],
1281
1286
  Trinity: ["奶妈", "奶"],
1282
- Rhino: ["犀牛", "牛", "铁甲犀牛"],
1287
+ Rhino: ["犀牛", "牛"],
1283
1288
  Mag: ["磁妹", "磁力"],
1284
1289
  Loki: ["洛基"],
1285
1290
  Excalibur: ["咖喱棒", "圣剑", "咖喱"],
@@ -1372,6 +1377,24 @@ var weaponPartSuffix = [
1372
1377
  ];
1373
1378
  var wmOnReady = /* @__PURE__ */ __name(async () => {
1374
1379
  }, "wmOnReady");
1380
+ var updateCache = /* @__PURE__ */ __name(async () => {
1381
+ const updateTasks = [
1382
+ { name: "globalItemData", fn: globalItemData.update() },
1383
+ { name: "globalRivenAttribute", fn: globalRivenAttribute.update() },
1384
+ { name: "globalRivenItemData", fn: globalRivenItemData.update() },
1385
+ { name: "globalDucatnatorIDDict", fn: globalDucatnatorIDDict.update() }
1386
+ ];
1387
+ const results = await Promise.allSettled(updateTasks.map((task) => task.fn));
1388
+ const lines = updateTasks.map((task, index) => {
1389
+ const result = results[index];
1390
+ if (result.status === "fulfilled") {
1391
+ return `${task.name}: 成功`;
1392
+ } else {
1393
+ return `${task.name}: 失败 - ${result.reason}`;
1394
+ }
1395
+ });
1396
+ return lines.join("\n");
1397
+ }, "updateCache");
1375
1398
  var getItemOrders = /* @__PURE__ */ __name(async (input) => {
1376
1399
  if (!input) return null;
1377
1400
  input = normalizeName(input);
@@ -2119,7 +2142,7 @@ var incarnons = [
2119
2142
  "/Lotus/Language/Items/ShotgunName"
2120
2143
  ],
2121
2144
  [
2122
- "/Lotus/Language/Locations/Lex",
2145
+ "/Lotus/Language/Items/HeavyPistolName",
2123
2146
  "/Lotus/Language/Items/PaladinMaceName",
2124
2147
  "/Lotus/Language/Items/BoltoRifleName",
2125
2148
  "/Lotus/Language/Items/HandCannonName",
@@ -50822,412 +50845,287 @@ var ArbitrationComponent = /* @__PURE__ */ __name((arbi) => {
50822
50845
  );
50823
50846
  }, "ArbitrationComponent");
50824
50847
  var CircuitComponent = /* @__PURE__ */ __name((currentIncarnons, currentWarframes, allIncarnons, allWarframes) => {
50825
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50848
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50826
50849
  "div",
50827
50850
  {
50828
50851
  style: `
50829
50852
  background: linear-gradient(135deg, #f5f0e8 0%, #fff8f0 100%);
50830
- min-height: 100vh;
50831
- padding: 40px 24px;
50832
- font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
50853
+ border-radius: 8px;
50854
+ padding: 16px;
50855
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
50856
+ width: 1000px;
50857
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
50858
+ border: 1px solid rgba(0, 0, 0, 0.05);
50833
50859
  `,
50834
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50835
- "div",
50836
- {
50837
- style: `
50838
- max-width: 1280px;
50839
- margin: 0 auto;
50860
+ children: [
50861
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50862
+ "div",
50863
+ {
50864
+ style: `
50865
+ text-align: center;
50866
+ margin-bottom: 20px;
50867
+ padding-bottom: 12px;
50868
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
50840
50869
  `,
50841
- children: [
50842
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50843
- "header",
50844
- {
50845
- style: `
50846
- text-align: center;
50847
- margin-bottom: 48px;
50870
+ children: [
50871
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50872
+ "h1",
50873
+ {
50874
+ style: `
50875
+ font-size: 22px;
50876
+ font-weight: bold;
50877
+ color: #1a1a1a;
50878
+ margin: 0 0 8px 0;
50848
50879
  `,
50849
- children: [
50850
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50851
- "h1",
50852
- {
50853
- style: `
50854
- font-size: 3rem;
50855
- font-weight: 800;
50856
- background: linear-gradient(135deg, #ff8c42, #ff3c00);
50857
- background-clip: text;
50858
- -webkit-background-clip: text;
50859
- color: transparent;
50860
- margin: 0;
50861
- letter-spacing: -1px;
50862
- `,
50863
- children: "🌀 回廊奖励总览"
50864
- }
50865
- ),
50866
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50867
- "p",
50868
- {
50869
- style: `
50870
- color: #8b7355;
50871
- font-size: 1.1rem;
50872
- margin-top: 12px;
50873
- opacity: 0.8;
50874
- `,
50875
- children: [
50876
- "共 ",
50877
- Math.max(allIncarnons.length, allWarframes.length),
50878
- " 周 · 当前灵化周第 ",
50879
- currentIncarnons + 1,
50880
- " 周 · 当前战甲周第",
50881
- " ",
50882
- currentWarframes + 1,
50883
- " 周"
50884
- ]
50885
- }
50886
- )
50887
- ]
50888
- }
50889
- ),
50890
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50891
- "div",
50892
- {
50893
- style: `
50894
- display: flex;
50895
- flex-direction: column;
50896
- gap: 24px;
50880
+ children: "回廊奖励总览"
50881
+ }
50882
+ ),
50883
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50884
+ "p",
50885
+ {
50886
+ style: `
50887
+ color: #666666;
50888
+ font-size: 11px;
50889
+ margin: 0;
50897
50890
  `,
50898
- children: [
50899
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50900
- "div",
50901
- {
50902
- style: `
50903
- background: rgba(255, 255, 255, 0.7);
50904
- backdrop-filter: blur(8px);
50905
- border-radius: 28px;
50906
- padding: 24px 28px;
50907
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03), 0 1px 2px rgba(0, 0, 0, 0.05);
50891
+ children: [
50892
+ "灵化周 ",
50893
+ currentIncarnons + 1,
50894
+ "/",
50895
+ allIncarnons.length,
50896
+ " · 战甲周",
50897
+ " ",
50898
+ currentWarframes + 1,
50899
+ "/",
50900
+ allWarframes.length
50901
+ ]
50902
+ }
50903
+ )
50904
+ ]
50905
+ }
50906
+ ),
50907
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50908
+ "div",
50909
+ {
50910
+ style: `
50911
+ display: flex;
50912
+ gap: 16px;
50913
+ `,
50914
+ children: [
50915
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50916
+ "div",
50917
+ {
50918
+ style: `
50919
+ flex: 1;
50920
+ background: rgba(255, 255, 255, 0.8);
50921
+ border-radius: 8px;
50922
+ padding: 12px;
50923
+ border: 1px solid rgba(0, 0, 0, 0.08);
50924
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
50925
+ `,
50926
+ children: [
50927
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50928
+ "div",
50929
+ {
50930
+ style: `
50931
+ font-weight: bold;
50932
+ font-size: 15px;
50933
+ color: #333333;
50934
+ margin-bottom: 12px;
50935
+ padding-bottom: 8px;
50936
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
50908
50937
  `,
50909
- children: [
50910
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50911
- "div",
50912
- {
50913
- style: `
50914
- display: flex;
50915
- align-items: center;
50916
- gap: 12px;
50917
- margin-bottom: 20px;
50918
- padding-bottom: 12px;
50919
- border-bottom: 1px solid #e8ddd0;
50920
- `,
50921
- children: [
50922
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50923
- "span",
50924
- {
50925
- style: `
50926
- font-size: 1.8rem;
50927
- font-weight: 700;
50928
- color: #c97e3a;
50929
- `,
50930
- children: "🔮 灵化之源"
50931
- }
50932
- ),
50933
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50934
- "span",
50935
- {
50936
- style: `
50937
- background: #ffedd5;
50938
- color: #c97e3a;
50939
- padding: 4px 12px;
50940
- border-radius: 40px;
50941
- font-size: 0.85rem;
50942
- font-weight: 600;
50943
- `,
50944
- children: [
50945
- "共 ",
50946
- allIncarnons.length,
50947
- " 周"
50948
- ]
50949
- }
50950
- )
50951
- ]
50952
- }
50953
- ),
50954
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50955
- "div",
50956
- {
50957
- style: `
50958
- display: flex;
50959
- flex-direction: column;
50960
- gap: 20px;
50961
- `,
50962
- children: allIncarnons.map((incarnons2, weekIdx) => {
50963
- const isCurrentWeek = weekIdx === currentIncarnons;
50964
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50965
- "div",
50966
- {
50967
- style: `
50968
- background: ${isCurrentWeek ? "linear-gradient(135deg, #fff8e7, #fff2e0)" : "rgba(250, 245, 238, 0.8)"};
50969
- border-radius: 20px;
50970
- padding: 16px 20px;
50971
- box-shadow: ${isCurrentWeek ? "0 8px 20px rgba(255, 107, 53, 0.15), 0 0 0 2px #ff8c42 inset" : "0 2px 6px rgba(0, 0, 0, 0.02)"};
50972
- transition: all 0.2s ease;
50973
- transform: ${isCurrentWeek ? "scale(1.01)" : "scale(1)"};
50974
- `,
50975
- children: [
50976
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50977
- "div",
50938
+ children: "灵化之源"
50939
+ }
50940
+ ),
50941
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50942
+ "div",
50943
+ {
50944
+ style: `
50945
+ display: flex;
50946
+ flex-direction: column;
50947
+ gap: 8px;
50948
+ `,
50949
+ children: allIncarnons.map((incarnons2, weekIdx) => {
50950
+ const isCurrent = weekIdx === currentIncarnons;
50951
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50952
+ "div",
50953
+ {
50954
+ style: `
50955
+ background: ${isCurrent ? "#fff8f0" : "#ffffff"};
50956
+ border-radius: 4px;
50957
+ padding: 8px 10px;
50958
+ border-left: 4px solid ${isCurrent ? "#ff8c42" : "#e0e0e0"};
50959
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
50960
+ `,
50961
+ children: [
50962
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50963
+ "div",
50964
+ {
50965
+ style: `
50966
+ font-size: 10px;
50967
+ font-weight: bold;
50968
+ color: ${isCurrent ? "#ff8c42" : "#999999"};
50969
+ margin-bottom: 6px;
50970
+ `,
50971
+ children: [
50972
+ "第",
50973
+ weekIdx + 1,
50974
+ "周 ",
50975
+ isCurrent ? "· 当前" : null
50976
+ ]
50977
+ }
50978
+ ),
50979
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50980
+ "div",
50981
+ {
50982
+ style: `
50983
+ display: flex;
50984
+ flex-wrap: wrap;
50985
+ gap: 6px;
50986
+ `,
50987
+ children: incarnons2.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
50988
+ "span",
50978
50989
  {
50979
50990
  style: `
50980
- display: flex;
50981
- align-items: center;
50982
- gap: 10px;
50983
- margin-bottom: 12px;
50984
- `,
50985
- children: [
50986
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50987
- "span",
50988
- {
50989
- style: `
50990
- font-weight: 700;
50991
- font-size: 1.2rem;
50992
- color: ${isCurrentWeek ? "#ff6b3d" : "#b87c4f"};
50991
+ background: ${isCurrent ? "#fff0e0" : "#f5f5f5"};
50992
+ padding: 3px 10px;
50993
+ border-radius: 4px;
50994
+ font-size: 11px;
50995
+ font-weight: 500;
50996
+ color: #333333;
50997
+ border: 1px solid ${isCurrent ? "#ffe0b5" : "#e8e8e8"};
50993
50998
  `,
50994
- children: [
50995
- "第 ",
50996
- weekIdx + 1,
50997
- " 周"
50998
- ]
50999
- }
51000
- ),
51001
- isCurrentWeek ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51002
- "span",
51003
- {
51004
- style: `
51005
- background: #ff6b3d;
51006
- color: white;
51007
- padding: 2px 10px;
51008
- border-radius: 40px;
51009
- font-size: 0.7rem;
51010
- font-weight: 600;
51011
- `,
51012
- children: "🔥 当前周"
51013
- }
51014
- ) : null
51015
- ]
51016
- }
51017
- ),
51018
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51019
- "ul",
51020
- {
51021
- style: `
51022
- display: flex;
51023
- flex-wrap: wrap;
51024
- gap: 10px;
51025
- margin: 0;
51026
- padding: 0;
51027
- list-style: none;
51028
- `,
51029
- children: incarnons2.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51030
- "li",
51031
- {
51032
- style: `
51033
- background: ${isCurrentWeek ? "#fff0e0" : "#faf5ee"};
51034
- padding: 6px 18px;
51035
- border-radius: 40px;
51036
- font-size: 0.95rem;
51037
- font-weight: 500;
51038
- color: #b45a2a;
51039
- border: ${isCurrentWeek ? "1px solid #ffd7a5" : "1px solid #f0e2d4"};
51040
- `,
51041
- children: item
51042
- }
51043
- ))
50999
+ children: item
51044
51000
  }
51045
- )
51046
- ]
51047
- }
51048
- );
51049
- })
51050
- }
51051
- )
51052
- ]
51053
- }
51054
- ),
51055
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51056
- "div",
51057
- {
51058
- style: `
51059
- background: rgba(255, 255, 255, 0.7);
51060
- backdrop-filter: blur(8px);
51061
- border-radius: 28px;
51062
- padding: 24px 28px;
51063
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03), 0 1px 2px rgba(0, 0, 0, 0.05);
51001
+ ))
51002
+ }
51003
+ )
51004
+ ]
51005
+ }
51006
+ );
51007
+ })
51008
+ }
51009
+ )
51010
+ ]
51011
+ }
51012
+ ),
51013
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51014
+ "div",
51015
+ {
51016
+ style: `
51017
+ flex: 1;
51018
+ background: rgba(255, 255, 255, 0.8);
51019
+ border-radius: 8px;
51020
+ padding: 12px;
51021
+ border: 1px solid rgba(0, 0, 0, 0.08);
51022
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
51023
+ `,
51024
+ children: [
51025
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51026
+ "div",
51027
+ {
51028
+ style: `
51029
+ font-weight: bold;
51030
+ font-size: 15px;
51031
+ color: #333333;
51032
+ margin-bottom: 12px;
51033
+ padding-bottom: 8px;
51034
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
51064
51035
  `,
51065
- children: [
51066
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51067
- "div",
51068
- {
51069
- style: `
51070
- display: flex;
51071
- align-items: center;
51072
- gap: 12px;
51073
- margin-bottom: 20px;
51074
- padding-bottom: 12px;
51075
- border-bottom: 1px solid #e8ddd0;
51076
- `,
51077
- children: [
51078
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51079
- "span",
51080
- {
51081
- style: `
51082
- font-size: 1.8rem;
51083
- font-weight: 700;
51084
- color: #3d8b7a;
51085
- `,
51086
- children: "🛡️ 战甲"
51087
- }
51088
- ),
51089
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51090
- "span",
51091
- {
51092
- style: `
51093
- background: #d1fae5;
51094
- color: #3d8b7a;
51095
- padding: 4px 12px;
51096
- border-radius: 40px;
51097
- font-size: 0.85rem;
51098
- font-weight: 600;
51099
- `,
51100
- children: [
51101
- "共 ",
51102
- allWarframes.length,
51103
- " 周"
51104
- ]
51105
- }
51106
- )
51107
- ]
51108
- }
51109
- ),
51110
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51111
- "div",
51112
- {
51113
- style: `
51114
- display: flex;
51115
- flex-direction: column;
51116
- gap: 20px;
51117
- `,
51118
- children: allWarframes.map((warframes2, weekIdx) => {
51119
- const isCurrentWeek = weekIdx === currentWarframes;
51120
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51121
- "div",
51122
- {
51123
- style: `
51124
- background: ${isCurrentWeek ? "linear-gradient(135deg, #e6f9f5, #dcf3ef)" : "rgba(240, 248, 246, 0.8)"};
51125
- border-radius: 20px;
51126
- padding: 16px 20px;
51127
- box-shadow: ${isCurrentWeek ? "0 8px 20px rgba(71, 181, 165, 0.15), 0 0 0 2px #47b5a5 inset" : "0 2px 6px rgba(0, 0, 0, 0.02)"};
51128
- transition: all 0.2s ease;
51129
- transform: ${isCurrentWeek ? "scale(1.01)" : "scale(1)"};
51130
- `,
51131
- children: [
51132
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51133
- "div",
51036
+ children: "战甲"
51037
+ }
51038
+ ),
51039
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51040
+ "div",
51041
+ {
51042
+ style: `
51043
+ display: flex;
51044
+ flex-direction: column;
51045
+ gap: 8px;
51046
+ `,
51047
+ children: allWarframes.map((warframes2, weekIdx) => {
51048
+ const isCurrent = weekIdx === currentWarframes;
51049
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51050
+ "div",
51051
+ {
51052
+ style: `
51053
+ background: ${isCurrent ? "#f0faf8" : "#ffffff"};
51054
+ border-radius: 4px;
51055
+ padding: 8px 10px;
51056
+ border-left: 4px solid ${isCurrent ? "#47b5a5" : "#e0e0e0"};
51057
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
51058
+ `,
51059
+ children: [
51060
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51061
+ "div",
51062
+ {
51063
+ style: `
51064
+ font-size: 10px;
51065
+ font-weight: bold;
51066
+ color: ${isCurrent ? "#47b5a5" : "#999999"};
51067
+ margin-bottom: 6px;
51068
+ `,
51069
+ children: [
51070
+ "第",
51071
+ weekIdx + 1,
51072
+ "周 ",
51073
+ isCurrent ? "· 当前" : null
51074
+ ]
51075
+ }
51076
+ ),
51077
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51078
+ "div",
51079
+ {
51080
+ style: `
51081
+ display: flex;
51082
+ flex-wrap: wrap;
51083
+ gap: 6px;
51084
+ `,
51085
+ children: warframes2.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51086
+ "span",
51134
51087
  {
51135
51088
  style: `
51136
- display: flex;
51137
- align-items: center;
51138
- gap: 10px;
51139
- margin-bottom: 12px;
51140
- `,
51141
- children: [
51142
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
51143
- "span",
51144
- {
51145
- style: `
51146
- font-weight: 700;
51147
- font-size: 1.2rem;
51148
- color: ${isCurrentWeek ? "#2e8b7a" : "#5f9e8e"};
51089
+ background: ${isCurrent ? "#e0f7f2" : "#f5f5f5"};
51090
+ padding: 3px 10px;
51091
+ border-radius: 4px;
51092
+ font-size: 11px;
51093
+ font-weight: 500;
51094
+ color: #333333;
51095
+ border: 1px solid ${isCurrent ? "#c0e0d8" : "#e8e8e8"};
51149
51096
  `,
51150
- children: [
51151
- "第 ",
51152
- weekIdx + 1,
51153
- " 周"
51154
- ]
51155
- }
51156
- ),
51157
- isCurrentWeek ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51158
- "span",
51159
- {
51160
- style: `
51161
- background: #47b5a5;
51162
- color: white;
51163
- padding: 2px 10px;
51164
- border-radius: 40px;
51165
- font-size: 0.7rem;
51166
- font-weight: 600;
51167
- `,
51168
- children: "🔥 当前周"
51169
- }
51170
- ) : null
51171
- ]
51172
- }
51173
- ),
51174
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51175
- "ul",
51176
- {
51177
- style: `
51178
- display: flex;
51179
- flex-wrap: wrap;
51180
- gap: 10px;
51181
- margin: 0;
51182
- padding: 0;
51183
- list-style: none;
51184
- `,
51185
- children: warframes2.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51186
- "li",
51187
- {
51188
- style: `
51189
- background: ${isCurrentWeek ? "#e0f7f2" : "#f0f8f6"};
51190
- padding: 6px 18px;
51191
- border-radius: 40px;
51192
- font-size: 0.95rem;
51193
- font-weight: 500;
51194
- color: #2c6b5e;
51195
- border: ${isCurrentWeek ? "1px solid #9ed9ce" : "1px solid #dcece8"};
51196
- `,
51197
- children: item
51198
- }
51199
- ))
51097
+ children: item
51200
51098
  }
51201
- )
51202
- ]
51203
- }
51204
- );
51205
- })
51206
- }
51207
- )
51208
- ]
51209
- }
51210
- )
51211
- ]
51212
- }
51213
- ),
51214
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51215
- "div",
51216
- {
51217
- style: `
51218
- margin-top: 40px;
51219
- text-align: center;
51220
- font-size: 0.85rem;
51221
- color: #c0a080;
51222
- border-top: 1px solid #f0e2d4;
51223
- padding-top: 24px;
51224
- `,
51225
- children: "✨ 每周一更新 ✨"
51226
- }
51227
- )
51228
- ]
51229
- }
51230
- )
51099
+ ))
51100
+ }
51101
+ )
51102
+ ]
51103
+ }
51104
+ );
51105
+ })
51106
+ }
51107
+ )
51108
+ ]
51109
+ }
51110
+ )
51111
+ ]
51112
+ }
51113
+ ),
51114
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51115
+ "div",
51116
+ {
51117
+ style: `
51118
+ margin-top: 16px;
51119
+ padding-top: 12px;
51120
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
51121
+ font-size: 10px;
51122
+ color: #999999;
51123
+ text-align: center;
51124
+ `,
51125
+ children: "每周一更新"
51126
+ }
51127
+ )
51128
+ ]
51231
51129
  }
51232
51130
  );
51233
51131
  }, "CircuitComponent");
@@ -52737,6 +52635,9 @@ var wmrCommand = /* @__PURE__ */ __name(async (action, input) => {
52737
52635
  RivenOrderComponent(result.item, result.orders)
52738
52636
  );
52739
52637
  }, "wmrCommand");
52638
+ var wmuCommand = /* @__PURE__ */ __name(async (action, input) => {
52639
+ return await updateCache();
52640
+ }, "wmuCommand");
52740
52641
 
52741
52642
  // src/hooks/on-ready.ts
52742
52643
  var onReadyHandler = /* @__PURE__ */ __name(async () => {
@@ -52781,6 +52682,7 @@ var setupCommands = /* @__PURE__ */ __name((ctx) => {
52781
52682
  ctx.command("wm <itemId:text>", "请使用wmi替代").action(wmCommand);
52782
52683
  ctx.command("wmr <itemId:text>", "查询wm的紫卡价格").action(wmrCommand);
52783
52684
  ctx.command("wmi <msg:text>", "查询wm的物品价格").action(wmCommand);
52685
+ ctx.command("wmu", "更新wm缓存数据").action(wmuCommand);
52784
52686
  ctx.command("arbitration [day:number]", "近期高价值仲裁任务").alias("arbi").alias("仲裁").alias("仲裁表").action(arbitrationCommand);
52785
52687
  ctx.command("fissure", "当前虚空裂隙").alias("裂缝").alias("裂隙").action(fissureCommand);
52786
52688
  ctx.command("spfissure", "当前钢铁之路虚空裂隙").alias("钢铁裂缝").alias("钢铁裂隙").action(steelPathFissureCommand);
@@ -52795,7 +52697,9 @@ var setupCommands = /* @__PURE__ */ __name((ctx) => {
52795
52697
  ctx.command(
52796
52698
  "rivenstat <weaponType:string> <statType:string> <disposition:number>",
52797
52699
  "获取紫卡数值范围"
52798
- ).usage("武器类型: 步枪, 手枪, 霰弹枪, 近战, Archwing枪械\n词条类型: 2, 3, 21, 31").example("rivenstat 步枪 31 0.7").alias("紫卡数值").action(rivenStatCommand);
52700
+ ).usage(
52701
+ "武器类型: 步枪, 手枪, 霰弹枪, 近战, Archwing枪械\n词条类型: 2, 3, 21, 31"
52702
+ ).example("rivenstat 步枪 31 0.7").alias("紫卡数值").action(rivenStatCommand);
52799
52703
  ctx.command("voidtrader", "虚空商人").alias("虚空商人").alias("奸商").action(voidtraderCommand);
52800
52704
  ctx.command("lichc", "c系玄骸武器", { hidden: true }).action(inDevelopment);
52801
52705
  ctx.command("lichi", "i系玄骸武器", { hidden: true }).action(inDevelopment);
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.9",
4
+ "version": "1.4.11",
5
5
  "license": "GPL-3.0",
6
6
  "scripts": {
7
7
  "build": "yakumo build",
@@ -56,9 +56,9 @@
56
56
  "@semantic-release/changelog": "^6.0.3",
57
57
  "@semantic-release/commit-analyzer": "^13.0.1",
58
58
  "@semantic-release/git": "^10.0.1",
59
- "@semantic-release/github": "^12.0.6",
59
+ "@semantic-release/github": "^12.0.8",
60
60
  "@semantic-release/npm": "^13.1.5",
61
- "@semantic-release/release-notes-generator": "^14.1.0",
61
+ "@semantic-release/release-notes-generator": "^14.1.1",
62
62
  "@types/chai": "^5.2.3",
63
63
  "@types/mocha": "^10.0.10",
64
64
  "@types/node": "^25.6.0",
@@ -70,6 +70,7 @@
70
70
  "koishi": "^4.18.11",
71
71
  "koishi-plugin-puppeteer": "^3.9.0",
72
72
  "mocha": "^11.7.5",
73
+ "reflect-metadata": "^0.2.2",
73
74
  "typescript": "^5.9.3",
74
75
  "yakumo": "^1.0.0",
75
76
  "yakumo-esbuild": "^1.0.0",
@@ -80,8 +81,8 @@
80
81
  "@nestjs/core": "^11.1.19",
81
82
  "rxjs": "^7.8.2",
82
83
  "tencentcloud-sdk-nodejs-ocr": "^4.1.213",
83
- "warframe-public-export-plus": "^0.6.0",
84
- "warframe-worldstate-data": "^3.15.1",
85
- "warframe-worldstate-parser": "^5.3.3"
84
+ "warframe-public-export-plus": "^0.6.2",
85
+ "warframe-worldstate-data": "^3.16.1",
86
+ "warframe-worldstate-parser": "^5.4.1"
86
87
  }
87
88
  }