ВКонтакте: исправление новомодных названий меню

VK обозвал группы сообществами, а сообщения - мессенджером. Не беда, ведь есть этот скрипт! Работает настолько быстро, насколько это возможно

目前為 2021-04-12 提交的版本,檢視 最新版本

// ==UserScript==
// @name          ВКонтакте: исправление новомодных названий меню
// @description   VK обозвал группы сообществами, а сообщения - мессенджером. Не беда, ведь есть этот скрипт! Работает настолько быстро, насколько это возможно
// @namespace     https://gf.qytechs.cn/users/424058
// @version       3.1.2
// @compatible    Chrome
// @compatible    Opera
// @compatible    Firefox
// @author        https://vk.me/id222792011
// @icon          https://www.google.com/s2/favicons?domain=vk.com&sz=32
// @match         https://vk.com/*
// @require       https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js
// @run-at        document-body
// @grant         none
// @noframes
// ==/UserScript==

// Есть вопросы или предложения? Можно написать мне тут: vk.me/id222792011 или через систему обсуждений Greasy Fork镜像

/*
 История изменений:

 3.1.2 (12.04.2021) Исправлен редкий случай когда скрипт не работал если вкладка была открыта в фоне
 3.0.1 (19.11.2020) Исправление заголовка вкладки не работало если перейти по ссылке типа vk.me/id1. Исправлено
 3.0.0 (13.11.2020) Обновлена основа скрипта. Теперь скрипт работает настолько быстро, насколько это возможно
 2.0.0 (07.11.2020) Обновлена основа скрипта. Удаление рекламы AliExpress из слов "Скидка", "Распродажа" и т.д.
                    Подробнее о рекламе AliExpress: https://habr.com/ru/news/t/526524/
 1.1.0 (03.10.2020) "Мессенджер" исправляется на "Сообщения"
 1.0.0 (19.12.2019) Релиз. Исправление "Сообщества" на "Группы" в левом меню и в заголовке вкладки
*/

/* jshint esversion: 6 */

(function() {
  'use strict';

  const replaceList = {
    'Сообщества': 'Группы',
    'Мессенджер': 'Сообщения'
  };

  document.arrive('title', {
    onceOnly: true,
    existing: true
  }, (titleNode) => {
    // чтобы не переименовывать вкладку, например, 
    // с каким-нибудь видео под названием "Сообщества..."
    if (currentPathIsGroupsOrMsgs()) {
      document.title = fixStringWords(document.title);
    }

    const titleObserver = new MutationObserver((mutations, observer) => {
      if (!currentPathIsGroupsOrMsgs()) return;

      document.title = fixStringWords(document.title);
      observer.takeRecords();
    });

    titleObserver.observe(titleNode, { childList: true });
  });

  document.arrive('#l_msg span.left_label.inl_bl', { existing: true }, fixNodeWords);
  document.arrive('#l_gr  span.left_label.inl_bl', { existing: true }, fixNodeWords);


  // utils -------------------------------------------------

  function currentPathIsGroupsOrMsgs() {
    if (
      location.pathname === '/im' ||
      location.pathname === '/groups' ||
      location.pathname.match(/^\/write(\d|)/m)
    ) return true;

    return false;
  }

  function fixStringWords(str) {
    for (const sought in replaceList) {
      const replaceTo = replaceList[sought];

      str = str.replace(sought, replaceTo);
    }

    return str;
  }

  function fixNodeWords(node) {
    node.innerText = fixStringWords(node.innerText);
  }

  // -------------------------------------------------------

})();

QingJ © 2025

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