Nicorepo AutoPagerize

ニコニコ動画のニコレポにAutoPager機能を追加する

当前为 2018-10-11 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Nicorepo AutoPagerize
// @namespace    https://foooomio.net/
// @description  ニコニコ動画のニコレポにAutoPager機能を追加する
// @version      0.2
// @author       foooomio
// @license      MIT License
// @match        *://www.nicovideo.jp/my/top*
// @match        *://www.nicovideo.jp/user/*
// @run-at       document-idle
// @grant        none
// ==/UserScript==

{
  'use strict'

  const $ = document.querySelector.bind(document)

  const autopager = new IntersectionObserver(entries => {
    if (!entries[0].isIntersecting || entries[0].target.parentElement.classList.contains('loading')) return
    entries[0].target.click()
  })

  // bootstrap
  new MutationObserver((mutations, self) => {
    const target = $('.NicorepoPastFetcher .next-page-link')
    if (target) {
      autopager.observe(target)
      self.disconnect()
    }
  }).observe(
    $('#MyPageNicorepoApp') || $('#UserPageNicorepoApp'),
    { childList: true, subtree: true }
  )
}