replace ADF title

replace title

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==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 });
    }

})();