youtube_history_ago

    @@ -18,28 +18,46 @@ return s_url; } //登録処理 -var d_url = location.href; -var s_url = para_del(d_url); -if (s_url != "https://www.youtube.com/feed/history") { - localStorage.setItem(s_url, moment().format("YYYY-MM-DD")); +var result3 = document.evaluate('id("search-form")', document, null, 7, null); +if (document.getElementById("mark") == null) { + result3.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="登録" id="mark">'); } +var result4 = document.evaluate('id("mark")', document, null, 7, null); +result4.snapshotItem(0).addEventListener('click', function () { + var d_url = location.href; + var s_url = para_del(d_url); + if (s_url != "https://www.youtube.com/feed/history") { + if (window.confirm("アドレスバーに" + s_url + "から始まる文字列が表示されていますか?\n異なる場合はキャンセルを押してください。\nリロードを行います")) { + localStorage.setItem(s_url, moment().format("YYYY-MM-DD")); + alert("ローカルストレージにこの動画のキーを登録しました"); + } else { + location.reload(); + } + } +}); //検索処理と書き出し -var result = document.evaluate('//a[@id="video-title"]', document, null, 7, null); -var result2 = document.evaluate('//div[@id="metadata-line"]', document, null, 7, null); -for (var i = 0; i < result.snapshotLength; i++) { - var n_url = result.snapshotItem(i).href; - var nr_url = para_del(n_url); - if (nr_url in localStorage) { - var to = moment(); - var from = moment(localStorage.getItem(nr_url), "YYYY-MM-DD"); - if (moment(from).fromNow() != moment().startOf('day').fromNow()) { - if (to.diff(from, 'day') == 1) { - result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " day ago "); +if (document.getElementById("write") == null) { + result3.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="表示" id="write">'); +} +var result5 = document.evaluate('id("write")', document, null, 7, null); +result5.snapshotItem(0).addEventListener('click', function () { + var result = document.evaluate('//a[@id="video-title"]', document, null, 7, null); + var result2 = document.evaluate('//div[@id="metadata-line"]', document, null, 7, null); + for (var i = 0; i < result.snapshotLength; i++) { + var n_url = result.snapshotItem(i).href; + var nr_url = para_del(n_url); + if (nr_url in localStorage) { + var to = moment(); + var from = moment(localStorage.getItem(nr_url), "YYYY-MM-DD"); + if (moment(from).fromNow() != moment().startOf('day').fromNow()) { + if (to.diff(from, 'day') == 1) { + result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " day ago "); + } else { + result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " days ago "); + } } else { - result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " days ago "); + result2.snapshotItem(i).insertAdjacentHTML("afterbegin", "Today "); } - } else { - result2.snapshotItem(i).insertAdjacentHTML("afterbegin", "Today "); } } -} +});
  • // ==UserScript==
    // @title        youtube_history_ago
    // @name         youtube_history_ago
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://www.youtube.com/watch?v=*
    // @match        https://www.youtube.com/feed/history
    // @grant        none
    // @require      https://momentjs.com/downloads/moment-with-locales.js
    // ==/UserScript==
    //パラメータ削除用関数
    function para_del(str) {
      var s_url = str + "&";
      var array_url = s_url.split("&");
      s_url = array_url[0];
      return s_url;
    }
    //登録処理
    var result3 = document.evaluate('id("search-form")', document, null, 7, null);
    if (document.getElementById("mark") == null) {
      result3.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="登録" id="mark">');
    }
    var result4 = document.evaluate('id("mark")', document, null, 7, null);
    result4.snapshotItem(0).addEventListener('click', function () {
      var d_url = location.href;
      var s_url = para_del(d_url);
      if (s_url != "https://www.youtube.com/feed/history") {
        if (window.confirm("アドレスバーに" + s_url + "から始まる文字列が表示されていますか?\n異なる場合はキャンセルを押してください。\nリロードを行います")) {
          localStorage.setItem(s_url, moment().format("YYYY-MM-DD"));
          alert("ローカルストレージにこの動画のキーを登録しました");
        } else {
          location.reload();
        }
      }
    });
    //検索処理と書き出し
    if (document.getElementById("write") == null) {
      result3.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="表示" id="write">');
    }
    var result5 = document.evaluate('id("write")', document, null, 7, null);
    result5.snapshotItem(0).addEventListener('click', function () {
      var result = document.evaluate('//a[@id="video-title"]', document, null, 7, null);
      var result2 = document.evaluate('//div[@id="metadata-line"]', document, null, 7, null);
      for (var i = 0; i < result.snapshotLength; i++) {
        var n_url = result.snapshotItem(i).href;
        var nr_url = para_del(n_url);
        if (nr_url in localStorage) {
          var to = moment();
          var from = moment(localStorage.getItem(nr_url), "YYYY-MM-DD");
          if (moment(from).fromNow() != moment().startOf('day').fromNow()) {
            if (to.diff(from, 'day') == 1) {
              result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " day ago ");
            } else {
              result2.snapshotItem(i).insertAdjacentHTML("afterbegin", to.diff(from, 'day') + " days ago ");
            }
          } else {
            result2.snapshotItem(i).insertAdjacentHTML("afterbegin", "Today ");
          }
        }
      }
    });
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/11/23 16:14:41 - 2018-11-23
  2. 2018/11/23 11:30:01 - 2018-11-23
  3. 2018/11/22 18:16:04 - 2018-11-22
  4. 2018/11/22 15:05:19 - 2018-11-22