abema_update_check Fork

    @@ -8,24 +8,41 @@ // @match https://abema.tv/video/title/* // @grant none // ==/UserScript== - var result = document.evaluate('//div[@role="listitem"]//a[not(.//img)]', document, null, 7, null); + var result = document.evaluate('//div[@role="listitem"][.//img]//a[not(.//img)]', document, null, 7, null); var flag = 0; - for (var i = 0; i < result.snapshotLength; i++) { - var n_url = result.snapshotItem(i).href; - var l_url = localStorage.getItem('check_update'); - if (n_url == l_url) { - flag = 1; - if (i == 0) { - alert("更新はありません"); - break; - } else { - alert(i + "本の更新があります"); - localStorage.setItem('check_update', n_url); - break; + if (!("update_time" in localStorage)) { + var now1 = Math.floor((new Date).getTime() / 1000); + localStorage.setItem('update_time', now1); + localStorage.setItem("check_update", result.snapshotItem(0).href); + alert("最終更新動画をチェック対象に設定しました"); + } else { + var now2 = Math.floor((new Date).getTime() / 1000); + var l_update_time = Number(localStorage.getItem('update_time')); + if (now2 - l_update_time > 24 * 60 * 60) { + for (var i = 0; i < result.snapshotLength; i++) { + var n_url = result.snapshotItem(i).href; + var l_url = localStorage.getItem('check_update'); + if (n_url == l_url) { + flag = 1; + localStorage.setItem('update_time', now2); + if (i == 0) { + alert("更新はありません"); + break; + } else { + alert(i + "本の更新があります"); + localStorage.setItem('check_update', result.snapshotItem(0).href); + break; + } + } } + if (flag == 0) { + alert("20本以上の更新があります"); + localStorage.setItem('update_time', now2); + localStorage.setItem('check_update', result.snapshotItem(0).href); + } + } else { + var sec = now2 - l_update_time; + alert("前回の更新から" + sec + "秒が経過しています"); + localStorage.setItem('update_time', now2); } - } - if (flag == 0) { - localStorage.setItem("check_update", result.snapshotItem(0).href); - alert("20本以上の更新があります"); }
  • // ==UserScript==
    // @title        abema_update_check
    // @name         abema_update_check
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://abema.tv/video/title/*
    // @grant        none
    // ==/UserScript==
    var result = document.evaluate('//div[@role="listitem"][.//img]//a[not(.//img)]', document, null, 7, null);
    var flag = 0;
    if (!("update_time" in localStorage)) {
      var now1 = Math.floor((new Date).getTime() / 1000);
      localStorage.setItem('update_time', now1);
      localStorage.setItem("check_update", result.snapshotItem(0).href);
      alert("最終更新動画をチェック対象に設定しました");
    } else {
      var now2 = Math.floor((new Date).getTime() / 1000);
      var l_update_time = Number(localStorage.getItem('update_time'));
      if (now2 - l_update_time > 24 * 60 * 60) {
        for (var i = 0; i < result.snapshotLength; i++) {
          var n_url = result.snapshotItem(i).href;
          var l_url = localStorage.getItem('check_update');
          if (n_url == l_url) {
            flag = 1;
            localStorage.setItem('update_time', now2);
            if (i == 0) {
              alert("更新はありません");
              break;
            } else {
              alert(i + "本の更新があります");
              localStorage.setItem('check_update', result.snapshotItem(0).href);
              break;
            }
          }
        }
        if (flag == 0) {
          alert("20本以上の更新があります");
          localStorage.setItem('update_time', now2);
          localStorage.setItem('check_update', result.snapshotItem(0).href);
        }
      } else {
        var sec = now2 - l_update_time;
        alert("前回の更新から" + sec + "秒が経過しています");
        localStorage.setItem('update_time', now2);
      }
    }
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。