您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Fragt alle Fahrzeuge ab, speichert sie im SessionStorage ab und stellt eine Funktion zum Abrufen zur Verfügung
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/484898/1311830/%2A%20Common%3A%20getVehicles.js
- // ==UserScript==
- // @name * Common: getVehicles
- // @namespace bos-ernie.leitstellenspiel.de
- // @version 1.0.0
- // @license BSD-3-Clause
- // @author BOS-Ernie
- // @description Fragt alle Fahrzeuge ab, speichert sie im SessionStorage ab und stellt eine Funktion zum Abrufen zur Verfügung
- // @icon https://www.google.com/s2/favicons?sz=64&domain=leitstellenspiel.de
- // @run-at document-idle
- // @grant none
- // ==/UserScript==
- async function getVehicles() {
- if (
- !sessionStorage.bosErnieVehicles ||
- JSON.parse(sessionStorage.bosErnieVehicles).lastUpdate < new Date().getTime() - 5 * 1000 * 60
- ) {
- return updateVehiclesCache();
- }
- return JSON.parse(LZString.decompress(JSON.parse(sessionStorage.bosErnieVehicles).value));
- }
- async function updateVehiclesCache() {
- let vehicles = [];
- let nextPage = null;
- let page = 0;
- let totalPages = null;
- do {
- page++;
- if (page === 1) {
- nextPage = "/api/v2/vehicles";
- }
- const response = await fetch(nextPage).then(response => response.json());
- vehicles = vehicles.concat(
- response.result.map(vehicle => ({
- id: vehicle.id,
- caption: vehicle.caption,
- building_id: vehicle.building_id,
- vehicle_type: vehicle.vehicle_type,
- assigned_personnel_count: vehicle.assigned_personnel_count,
- tractive_vehicle_id: vehicle.tractive_vehicle_id,
- })),
- );
- nextPage = response.paging.next_page;
- if (totalPages === null) {
- totalPages = Math.ceil(response.paging.count_total / 10000);
- }
- } while (nextPage);
- const lastUpdate = new Date();
- try {
- const compressedVehicleData = LZString.compress(JSON.stringify(vehicles));
- const uncompressedSize = JSON.stringify(vehicles).length;
- const compressedSize = compressedVehicleData.length;
- sessionStorage.setItem(
- "bosErnieVehicles",
- JSON.stringify({
- lastUpdate: lastUpdate.getTime(),
- value: compressedVehicleData,
- uncompressedSize: uncompressedSize,
- compressedSize: compressedSize,
- }),
- );
- } catch (e) {}
- return vehicles;
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址