Prostagma / dtf add Свежее

// ==UserScript==
// @name         dtf add Свежее
// @namespace    https://dtf.ru
// @version      2
// @description  More control of your posts timeline!
// @author       Prostagma?
// @author       Andrey Apanasik
// @match        https://dtf.ru/*
// @grant        GM_addStyle
// @copyright 2020, Prostagma (https://openuserjs.org/users/Prostagma)
// @license MIT
// @icon          https://leonardo.osnova.io/835cfcc1-35c8-2be8-8481-13edfdb0a243/
// @icon64        https://leonardo.osnova.io/835cfcc1-35c8-2be8-8481-13edfdb0a243/
// ==/UserScript==
(function () {
  GM_addStyle(`.sidebar-tree-list-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    height: 44px;
    font-size: 16px;
    cursor: pointer;
    margin-bottom: 3px;
    border-radius: 8px;
}
.sidebar-tree-list-item__link, .sidebar-tree-list-item--custom-html {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    height: auto;
    -ms-flex-positive: 2;
    flex-grow: 2;
    padding: 0 13px;
}
.sidebar-tree-list-item:hover:not(.sidebar-tree-list-item--active) {
    background: rgba(255,255,255,0.5);
}`);
  tryToAddNew();
})();

function tryToAddNew() {
  setTimeout(function () {
    const menu = document.getElementsByClassName("sidebar-tree-list");

    if (menu && menu.length) {
      const menuLinks = menu[0];

      // заменяем "Ленту" на "Свежее"
      const newPosts = menuLinks.firstElementChild;
      newPosts.firstElementChild.textContent = "Свежее";
      newPosts.firstElementChild.href = "https://dtf.ru/new";
      newPosts.classList.remove("sidebar-tree-list-item--active");
      newPosts.lastElementChild.remove();

      // добавляем "Популярное"
      const popPosts = addItem(newPosts, "Популярное", "https://dtf.ru?forced");

      // добавляем "Свежее" без учёта подписок
      const newPostsAll = addItem(popPosts, "Свежее (все)", "https://dtf.ru/all/new");

      // добавляем "Популярное" без учёта подписок
      const popPostsAll = addItem(newPostsAll, "Популярное (все)", "https://dtf.ru/all?forced");
    }
    else {
      tryToAddNew();
    }
  }, 100);
}

function addItem(firstElem, name, link) {
  let newElem = document.createElement('div');
  newElem.innerHTML = `<div href="${link}" data-gtm="Sidebar — SiteNavigation — My feed" class="sidebar-tree-list-item"><a href="${link}" class="sidebar-tree-list-item__link">${name}</a> </div>`;
  firstElem.insertAdjacentElement("afterend", newElem);

  return newElem;
}