koishi-plugin-ets2-tools-tmp 3.3.4 → 3.3.5
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/api/evmOpenApi.js
CHANGED
|
@@ -223,4 +223,34 @@ module.exports = {
|
|
|
223
223
|
}
|
|
224
224
|
return data
|
|
225
225
|
},
|
|
226
|
+
/**
|
|
227
|
+
* 查询 Steam 游戏时长(ETS2 227300 / ATS 270880)
|
|
228
|
+
* 通过代理访问 Steam IPlayerService,返回格式化后的 { ets2, ats } 字符串
|
|
229
|
+
* 未配置 apiKey 或请求失败时对应字段为 null
|
|
230
|
+
*/
|
|
231
|
+
async steamGameTime(http, steamApiKey, steamId) {
|
|
232
|
+
if (!steamApiKey || !steamId) {
|
|
233
|
+
return { ets2: null, ats: null }
|
|
234
|
+
}
|
|
235
|
+
const path = `/proxy/steam/IPlayerService/GetOwnedGames/v1?key=${encodeURIComponent(steamApiKey)}&steamid=${steamId}&appids_filter[0]=227300&appids_filter[1]=270880&include_played_free_games=1`
|
|
236
|
+
let response
|
|
237
|
+
try {
|
|
238
|
+
response = await apiLog.get(http, 'evm.steam.gameTime', `${BASE_APIS[0]}${path}`)
|
|
239
|
+
} catch {
|
|
240
|
+
return { ets2: null, ats: null }
|
|
241
|
+
}
|
|
242
|
+
const result = { ets2: null, ats: null }
|
|
243
|
+
if (response?.response?.game_count > 0 && Array.isArray(response.response.games)) {
|
|
244
|
+
for (const game of response.response.games) {
|
|
245
|
+
const minutes = game.playtime_forever
|
|
246
|
+
if (minutes == null) continue
|
|
247
|
+
const h = Math.floor(minutes / 60)
|
|
248
|
+
const m = minutes % 60
|
|
249
|
+
const playtime = `${h}小时${m}分钟`
|
|
250
|
+
if (game.appid === 227300) result.ets2 = playtime
|
|
251
|
+
else if (game.appid === 270880) result.ats = playtime
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return result
|
|
255
|
+
},
|
|
226
256
|
}
|
|
@@ -161,28 +161,12 @@ module.exports = async (ctx, cfg, session, tmpId) => {
|
|
|
161
161
|
data.ets2GameTime = null;
|
|
162
162
|
data.atsGameTime = null;
|
|
163
163
|
if (cfg.commands?.tmpQueryGameTime) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (response.response && response.response.game_count > 0) {
|
|
171
|
-
for (const game of response.response.games) {
|
|
172
|
-
const playtimeMinutes = game.playtime_forever;
|
|
173
|
-
const hours = Math.floor(playtimeMinutes / 60);
|
|
174
|
-
const minutes = playtimeMinutes % 60;
|
|
175
|
-
const playtime = `${hours}小时${minutes}分钟`;
|
|
176
|
-
if (game.appid === 227300) {
|
|
177
|
-
data.ets2GameTime = playtime;
|
|
178
|
-
} else if (game.appid === 270880) {
|
|
179
|
-
data.atsGameTime = playtime;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
} catch (error) {
|
|
185
|
-
ctx.logger.error(`查询Steam游戏时长出错: ${error}`);
|
|
164
|
+
const steamApiKey = cfg.steamApi?.key;
|
|
165
|
+
if (steamApiKey) {
|
|
166
|
+
const steamId = playerInfo.data.steamId;
|
|
167
|
+
const gameTimes = await evmOpenApi.steamGameTime(ctx.http, steamApiKey, steamId);
|
|
168
|
+
data.ets2GameTime = gameTimes.ets2;
|
|
169
|
+
data.atsGameTime = gameTimes.ats;
|
|
186
170
|
}
|
|
187
171
|
}
|
|
188
172
|
let page;
|
|
@@ -184,35 +184,11 @@ module.exports = async (ctx, cfg, session, tmpId) => {
|
|
|
184
184
|
|
|
185
185
|
// 查询Steam游戏时长
|
|
186
186
|
async function getSteamGameTimes(steamId) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (!steamApiKey) {
|
|
190
|
-
return { ets2: null, ats: null };
|
|
191
|
-
}
|
|
192
|
-
const url = `https://evmapi.cxnnn.cn/proxy/steam/IPlayerService/GetOwnedGames/v1?key=${steamApiKey}&steamid=${steamId}&appids_filter[0]=227300&appids_filter[1]=270880&include_played_free_games=1`;
|
|
193
|
-
const response = await ctx.http.get(url);
|
|
194
|
-
const result = { ets2: null, ats: null };
|
|
195
|
-
|
|
196
|
-
if (response.response && response.response.game_count > 0) {
|
|
197
|
-
for (const game of response.response.games) {
|
|
198
|
-
const playtimeMinutes = game.playtime_forever;
|
|
199
|
-
const hours = Math.floor(playtimeMinutes / 60);
|
|
200
|
-
const minutes = playtimeMinutes % 60;
|
|
201
|
-
const playtime = `${hours}小时${minutes}分钟`;
|
|
202
|
-
|
|
203
|
-
if (game.appid === 227300) {
|
|
204
|
-
result.ets2 = playtime;
|
|
205
|
-
} else if (game.appid === 270880) {
|
|
206
|
-
result.ats = playtime;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
return result;
|
|
212
|
-
} catch (error) {
|
|
213
|
-
ctx.logger.error(`查询Steam游戏时长出错: ${error}`);
|
|
187
|
+
const steamApiKey = cfg.steamApi?.key;
|
|
188
|
+
if (!steamApiKey) {
|
|
214
189
|
return { ets2: null, ats: null };
|
|
215
190
|
}
|
|
191
|
+
return evmOpenApi.steamGameTime(ctx.http, steamApiKey, steamId);
|
|
216
192
|
}
|
|
217
193
|
|
|
218
194
|
// 获取欧卡和美卡游戏时长
|