您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes pagination from posts
// ==UserScript== // @name Depaginator for Wykop.pl // @namespace Violentmonkey Scripts // @match https://*.wykop.pl/* // @grant none // @require https://unpkg.com/xhook@latest/dist/xhook.min.js // @version 1.4 // @author LuK1337 // @description Removes pagination from posts // @license MIT // ==/UserScript== (function() { 'use strict'; xhook.after((request, response) => { if (response.status !== 200) { // Don't care about anything non-200. return } let url = null try { url = new URL(request.url) } catch { // Bad URL ;( return } if (url.host !== "wykop.pl") { return } let searchParams = new URLSearchParams(url.searchParams) if (searchParams.get('page') !== '1') { return } const regexes = [ /\/api\/v3\/entries\/\d+\/comments/, /\/api\/v3\/links\/\d+\/comments/, ] if (regexes.some(x => x.test(url.pathname))) { let json = JSON.parse(response.text) // Append data from remaining pages for (let page = 2; page <= Math.ceil(json['pagination']['total'] / json['pagination']['per_page']); ++page) { // Update page searchParams.set('page', page.toString()) // Open XHR request let req = new XMLHttpRequest(); req.open('GET', `${url.pathname}?${searchParams.toString()}`, false) // Copy original headers for (let key of Object.keys(request.headers)) { req.setRequestHeader(key, request.headers[key]) } req.send(null) if (req.status !== 200) { // Request failed, sad! break } let data = JSON.parse(req.responseText)['data'] if (data.length === 0) { // No more data ^.^ break } json['data'] = json['data'].concat(data) } // Hide pagination json['pagination']['total'] = 0 // Override response text response.text = JSON.stringify(json) } }); })();