* Solidarprinzip

Fügt einen Button zum schnellen Teilen der eigenen Einsätze aus der Einsatzliste hinzu.

目前为 2023-03-08 提交的版本。查看 最新版本

// ==UserScript==
// @name        * Solidarprinzip
// @namespace   bos-ernie.leitstellenspiel.de
// @version     1.0.0
// @license     BSD-3-Clause
// @author      BOS-Ernie
// @description Fügt einen Button zum schnellen Teilen der eigenen Einsätze aus der Einsatzliste hinzu.
// @match       https://www.leitstellenspiel.de/
// @icon        https://www.google.com/s2/favicons?sz=64&domain=leitstellenspiel.de
// @run-at      document-idle
// @grant       none
// ==/UserScript==

/* global missionMarkerAdd */

(function () {
  function addShareButtonToMissionList() {
    document
      .querySelectorAll(
        "#mission_list .missionSideBarEntry:not(.mission_deleted)"
      )
      .forEach((mission) => {
        if (mission.querySelector(".panel-success")) {
          return;
        }

        const missionId = mission.id.replace(/\D+/g, "");

        addShareButtonToMission(missionId);
      });
  }

  function addShareButtonToNewMissions() {
    let originalMissionMarkerAdd = missionMarkerAdd;

    missionMarkerAdd = (e) => {
      originalMissionMarkerAdd(e);

      if (e.alliance_id) {
        const shareButton = document.querySelector(`#share-button-${e.id}`);

        if (shareButton) {
          shareButton.remove();
        }
      }

      if (
        e.user_id !== user_id ||
        e.kt === false ||
        e.alliance_id ||
        document.querySelector(`#share-button-${e.id}`)
      ) {
        return;
      }

      addShareButtonToMission(e.id);
    };
  }

  function addShareButtonToMission(missionId) {
    const mission = document.querySelector(
      `#mission_list #mission_${missionId}`
    );
    mission.querySelector("#alarm_button_" + missionId).insertAdjacentHTML(
      "afterend",
      `<a id="share-button-${missionId}" class="btn btn-default btn-xs" data-mission-id="${missionId}" title="Im Verband freigeben">
        <span class="glyphicon glyphicon-bullhorn"></span>
    </a>`
    );
  }

  function addShareButtonEventListener() {
    document.addEventListener("click", async (event) => {
      const parent = event.target.parentElement;

      if (!parent.id.startsWith("share-button-")) {
        return;
      }

      event.preventDefault();

      await share(parent.dataset.missionId).then(() => {
        parent.remove();
      });
    });
  }

  async function share(missionId) {
    await fetch(`/missions/${missionId}/alliance`);
  }

  function main() {
    addShareButtonToMissionList();
    addShareButtonToNewMissions();
    addShareButtonEventListener();
  }

  main();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址