Nicorepo AutoPagerize

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

目前為 2018-10-11 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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 }
  )
}