replace ADF title

replace title

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         replace ADF title
// @namespace    http://tampermonkey.net/
// @version      2026-05-13
// @description  replace title
// @author       You
// @match        https://adf.azure.com/*
// @match        https://*.azuredatabricks.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=azure.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const replace_map = {
        "dtf-sgesss-dev-az1-cfpuv7hera2": "DEV ADF",
        "dtf-sgesss-dev-az1-m5rbvkhera2": "SIT ADF",
        "dtf-sgesss-uat-az1-kaoi9khera2": "UAT ADF",
        "sgesss-prd-az1-ramcat": "PRD ADF",

        "adb-4693644767318262": "DEV ADB",
        "adb-6251393601425350": "SIT ADB",
        "adb-3769403716554776.16": "UAT ADB",
        "adb-2232446691151506.6": "PRD ADB",
        "3263952417704082.2": "Optimus POC ADB",
        "328189355790169.9": "Optimus DEV ADB",
        "4167251017893463.3": "Optimus SIT ADB",

        "dtf-sgesss-dev-az1-tw12jnoptimus": "Opt POC ADF",
        "dtf-sgesss-dev-az1-p89dtaoptimus": "Opt SIT ADF",
        "adb-2869921049264012.12": "SIT2 ADB",
    };

    function updateTitle() {
        const url = window.location.href;
        let currentTitle = document.title;

        for (const [key, prefix] of Object.entries(replace_map)) {
            if (url.includes(key)) {
                // 检查是否已经加上了前缀
                const fullPrefix = prefix + " | ";
                if (!currentTitle.startsWith(fullPrefix)) {
                    // 核心逻辑:如果标题发生了变化(比如由于切换 Pipeline),
                    // 我们把新的标题内容接在我们的前缀后面
                    console.log("Updating title for:", prefix);

                    // 先把可能存在的旧前缀删掉(防止重复叠加),再加新的
                    let originalPart = currentTitle;
                    Object.values(replace_map).forEach(p => {
                        originalPart = originalPart.replace(p + " | ", "");
                    });

                    document.title = fullPrefix + originalPart;
                }
                break;
            }
        }
    }

    // 使用每秒检查一次的逻辑(你原有的习惯,最稳健)
    setInterval(updateTitle, 1000);

    // 同时配合 MutationObserver,让标题修改更即时
    const observer = new MutationObserver(updateTitle);
    const titleElement = document.querySelector('title');
    if (titleElement) {
        observer.observe(titleElement, { childList: true });
    }

})();