無色透明マスク

無色透明祭のサムネイル,再生数,コメ数,マイリス数,ランキング最高順位をマスクします

当前为 2022-07-29 提交的版本,查看 最新版本

// ==UserScript==
// @name         無色透明マスク
// @namespace    https://site.nicovideo.jp/mushokutomeisai
// @version      0.7
// @description  無色透明祭のサムネイル,再生数,コメ数,マイリス数,ランキング最高順位をマスクします
// @author       -
// @match        https://www.nicovideo.jp/watch/*
// @match        https://ch.nicovideo.jp/mushokutomeisai
// @include      /^https?://ch\.nicovideo\.jp/mushokutomeisai/
// @match        https://www.nicovideo.jp/user/124082477/mylist/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=nicovideo.jp
// @grant        none
// @run-at       document-start
// @license      CC0
// ==/UserScript==
(function() {
  'use strict';

  const addStyle = css => {
    const style = document.createElement('STYLE');
    style.textContent = css;
    document.head.appendChild(style);
  };

  const mask = (target, color) => {
    addStyle(`
      ${target} { color: ${color}; background: ${color}; transition: 0s 0s }
      ${target}:hover { color: unset; background: unset; transition: 10s 2s }
    `);
  };

  let retry = 0;
  const modPlayPage = () => {
    const caption = document.getElementsByClassName('VideoDescription-html')[0];
    if (!caption || caption.textContent != '【無色透名祭】参加作品です。https://site.nicovideo.jp/mushokutomeisai/') {
      retry --;
      if (retry) {
	      setTimeout(modPlayPage, 10);
      }
      return;
    }
    for (const target of [
      ':is(.VideoViewCountMeta-counter, .CommentCountMeta-counter, .MylistCountMeta-counter) .FormattedNumber',
      '.GenreRankMeta-yesterdayRank'
    ]) {
      mask(target, '#657586');
      addStyle(`${target} {
        display: inline-block;
        width: 5rem;
        overflow: hidden;
      }`);
    }
  };

  const modChannelPage = () => {
    mask('.g-video_counts', '#6296c1');
    addStyle(`
      .thumb_anchor::before {
        background: #222 url('https://secure-dcdn.cdn.nimg.jp/nicochannel/material/design/5677558/img_main_01.png') no-repeat center;
        background-size: 170px;
        content: '';
        display: block;
        width:130px;
        height:100px;
        position: absolute;
      }
      .thumb_anchor { position: relative; }
    `);
  };

  const modMyListPage = () => {
    mask('.NC-VideoMediaObject-metaCount', '#bebebe');
    addStyle(`
      .NC-Thumbnail-image::after {
        background: #222 url('https://secure-dcdn.cdn.nimg.jp/nicochannel/material/design/5677558/img_main_01.png') no-repeat center;
        background-size: 120%;
        content: '';
        display: block;
        width:100%;
        height:100%;
        position: absolute;
      }
    `);
  };

  const href = location.href;
  if (href.startsWith('https://www.nicovideo.jp/watch/')) {
    retry = 100;
    modPlayPage();
  } else if (href.startsWith('https://ch.nicovideo.jp/mushokutomeisai')) {
    modChannelPage();
  } else {
    modMyListPage();
  }

})();