Как сделать vk.com менее отвлекающим?

Как сделать так, чтобы Vk.com меньше отвлекал от действительно важных дел?
Самый простой способ — удалиться из этой социальной сети, или вообще не создавать там аккаунт, если у вас его ещё нет.
Но что делать тем, у кого вконтакте есть множество «друзей», с которыми больше негде вести переписку?
Или тем, кто пользуется музыкой вконтакте?

Итак, предположим, наша задача: сделать так, чтобы ВКонтакте можно было пользоваться только перепиской с другими пользователями, и музыкой. При этом, в нерабочее время мы хотим использовать все возможности.

Решить задачу поможет пользовательский скрипт, подключаемый с помощью GreasyMonkey/TamperMonkey

Установка скрипта:

1. Установить в браузере плагин для подключения пользовательских скриптов:

Для FireFox это GreaseMonkey
Для Google Chrome и основаных на нём браузерах, не имеющих своего магазина расширений (Chromium, Vivaldi) это TamperMonkey
Для Opera это собственная версия TamperMonkey

2. Скопировать код скрипта здесь: https://github.com/MihanEntalpo/VkMessagingAndAudioOnly/blob/master/script.js

Или прямо здесь:

// ==UserScript==
// @name        vk.com only messaging
// @namespace   mihanentalpo.me
// @description Allow to use messaging only on vk.com
// @include     https://vk.com/*
// @match       https://vk.com/*
// @match       http://vk.com/*
// @version     1
// @grant       none
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// ==/UserScript==
 
(function(){
 
window.global_vkscript_is_active = false;
window.global_current_href = '';
 
function every_page_remove()
{
   jQuery('.left_box.attention').remove();
}
 
function detect_move_out(url)
{
  var regtxt = "^https://(new\.)?vk.com/(im|audios?|away|share|login)";
  var regexp = new RegExp(regtxt);
  if (!regexp.test(url))
  {
     window.location.href = "https://vk.com/im";
  }
}
 
function update_url(url)
    {
        if (window.global_current_href != url)
        {
            jQuery('#url-box').text('URL:' + url);
            detect_move_out(url);
            every_page_remove();
            window.global_current_href = url;
        }
    }
 
/**
* Функция, возвращающая временные переделы работы
*/
function get_time_limits()
{
  return {
    // Со скольки начинать блокировать отвлекающий функционал
    from: "9:30",
    // До скольки блокировать отвлекающий функционал
    to: "18:30"
  };
}
 
/**
* Проверить, должена ли сейчас быть активной блокировка?
*/
function is_active(){
 
  var d = Date.now();
  var d1 = new Date(d);
  var d2 = new Date(d);
 
  var limits = get_time_limits();
 
  d1.setHours(limits.from.split(":")[0]);
  d1.setMinutes(limits.from.split(":")[1]);
 
  d2.setHours(limits.to.split(":")[0]);
  d2.setMinutes(limits.to.split(":")[1]);
 
  return (d2 > d && d1 < d);
 
}
 
 
/**
* Попытаться активировать или деактивировать
*/
function tryToActivate()
{
  jQuery("#ads_left").remove();
  if (!window.global_vkscript_is_active && is_active())
  {
    window.global_vkscript_is_active = true;
    jQuery('#side_bar li').each(function (index, element) {
      var text = jQuery(element).find('span.left_label.inl_bl').text();
      if (-1 == jQuery.inArray(text, ["Сообщения", "Музыка"]))
      {
        jQuery(element).remove();
      }
    });
 
    jQuery('.more_div').remove();
    jQuery('body').append('
<div style="\'position:fixed;left:10px;top:50px;z-index:1000;" background:white;="" padding:4px;="" border:1px="" solid="" grey\'="" id="\'url-box\'">URL:</div>
');
 
 
 
    update_url(window.location.href);
 
    setInterval(function(){
      update_url(window.location.href);
    }, 1000);
 
  }
  else if(window.global_vkscript_is_active &amp;&amp; !is_active())
  {
     window.location.reload();
  }
 
}
 
/**
* Проверять активацию каждые 2 секунды
*/
setInterval(tryToActivate, 2000);
 
})();

3. Создать в установленном расширении новый скрипт, и вставить туда код, скопированный из предоставленного выше скрипта.

Проверка:

1. Открываем сайт vk.com, и, если нужно, авторизуемся. Если вконтакт уже был открыт, страницу нужно перезагрузить.

2. Если время сейчас входит в указанные вами пределы, то на левой панели должны исчезнуть все пункты кроме аудиозаписей и сообщений.

3. Если время сейчас выходит за рамки установленных границ, то будет доступен полный функционал

Левая панель
в нормальном состоянии
Левая панель
при блокировке всего лишнего

4. Рекламный блок слева под пунктами меню должен исчезнуть (это дополнительный бонус).

5. При попытке зайти на какую-то страницу, которая должна быть недоступна в рабочее время, произойдёт редирект на страницу сообщений.

Единственный минус данного скрипта в том, что он пока не умеет деактивироваться в выходные.


Оставить комментарий