Reglas personalizadas avanzadas

https://hoothin.github.io/UserScripts/Pagetual/pagetualRules.json

discord Discordopen in new window github Githubopen in new window twitter Twitteropen in new window Outsourceopen in new window

Si Pagetual te resulta útil y te lo puedes permitir, agradeceríamos mucho una propina para financiar su desarrollo. Si no, no te preocupes, ¡disfrútalo! 💞

PayPal

Ko-fi

愛發電
Join 💬Discord
Follow 🕊️twitter
Send 📧E-Mail
Made with ❤️ by Hoothin
[
  {
    "name":"yande",
    "url":"^https://yande-demo\\.re/",
    "pageElement":"ul#post-list-posts>li",
    "nextLink":"a.next_page",
    "css":".javascript-hide {display: inline-block !important;}"
  },
  {
    "name": "so.3dm",
    "url": "^https://so\\.3dmgame-demo\\.com",
    "pageElement": "div.content > div.search_wrap > div.search_lis",
    "action": 1
  },
  {
    "name":"xxgame",
    "url":"^http://www\\.xxgame-demo\\.net/chinese",
    "pageElement":"div.layui-row>div.layui-col-md4:not(div:nth-child(5),div:nth-child(6),div:nth-child(7))",
    "nextLinkByUrl":[
      "(http://www\\.xxgame-demo\\.net/chinese/?)(?:\\?page=|$)(\\d*)",
      "$1?page={$2+1}"
    ]
  }
]

Más ejemplos de reglasopen in new window

name

Nombre del sitio web de destino

"name": "Nombre del sitio"

author

Autor de esta regla

"author": "Hoothin"

example

URL de ejemplo para esta regla

"example": "https://abc.com"

url

Expresión regular (RegExp) para la URL del sitio web de destino

"url": "^https://abc\\.com/\\d+"

pinUrl

A veces el siguiente enlace o elemento de la página no existirá. Configúralo como true para poder fijar la regla solo con la URL en lugar de buscar elementos con reglas inteligentes

"pinUrl": true

enable

0 significa detener la acción cuando se cumplan todas las condiciones

"enable": 0

include

Selector o xpath del elemento que debe incluirse

"include": "div.content"

exclude

Selector o xpath del elemento que no debe incluirse

"exclude": "div.content"

wait

El tiempo de espera para que la página esté lista cuando estés seguro de que la URL coincide con el sitio. También puedes usar un código JavaScript que devuelva un booleano para verificar si la página está lista

"wait": 500
"wait": "let img=doc.querySelector('ul.list img');return img!=null"

waitElement

La matriz ["exist", "not exist"] contiene el "selector o xpath del elemento que debe existir (para algunos elementos de carga perezosa)" y el "selector o xpath del elemento que no debe existir (para algunos marcadores de posición de carga que necesitan desplazarse para ser cargados)"

"waitElement": [
    ".summary",
    "#popular.fade:not(.in)"
]

action

0 significa cargar la URL e insertarla con HTML estático, 1 significa cargarla mediante un iframe para que el código JavaScript dinámico en la página pueda tener efecto, 2 significa forzar la inserción del iframe en la parte inferior

"action": 1

Selector o xpath del enlace de la página siguiente, se desactiva cuando se establece en 0. Puedes configurarlo como una matriz para que contenga múltiples enlaces siguientes.

"nextLink": ".page-next>a"
"nextLink": [
    ".page1-next>a",
    ".page2-next>a",
    ".page3-next>a"
]

nextLinkByUrl

Si no hay un elemento siguiente, puedes usar esto para generar un href a partir de la URL actual. [0] significa cadena de expresión regular (RegExp), [1] significa cadena de reemplazo, [2] significa selector o xpath del elemento que debe incluirse, [3] significa selector o xpath del elemento que no debe incluirse. Puedes usar {} para evaluar código simple

"nextLinkByUrl": [
    "(&page=(\\d+))?$",
    "&page={$2+1}"
]
"nextLinkByUrl": [
    "(&page=(\\d+))?$",
    "&page={$2+1}",
    ".disable>button"
]

nextLinkByJs (doc)

Usa esto para evaluar código JavaScript y devolver la URL de destino de la página siguiente con doc (documento de cada página cargada)

"nextLinkByJs": "let n=doc.querySelector('a.curr+a');if(n)return n.href.replace(/^javascript:.*\\((\\d+)'\\);/,'$1_.html');"

stopSign

Deja de cargar la página siguiente cuando coincida con esta señal

"stopSign": ["#pagenum", ".disable",
    [
        "#pagenum",
        "(\\d+)"
    ],
    [
        "#pagenum",
        "\\/(\\d+)"
    ]
]

pageElement

Selector o xpath del contenido principal que debe insertarse. Puedes configurarlo como una matriz para que contenga múltiples elementos de página.

"pageElement": ".Context>.Article"

pageElementByJs (over)

Usa esto para evaluar código JavaScript y crear los elementos que desees insertar. Se necesita una devolución de llamada over(eles) con la matriz de elementos para la inserción

"pageElementByJs": "let src=match[1]+match[3];img.onload=()=>{over([img])};img.onerror=e=>{over()};img.src=src;"

replaceElement

Selector o xpath del elemento que quieres reemplazar por uno nuevo, puede ser una matriz

"replaceElement": "#page"
"replaceElement": ["#page1", "#page2"]

lazyImgSrc

El atributo de la imagen que apunta a la URL real. Se puede configurar como ["lazysrc", "removeProp1,removeProp2"] para eliminar las propiedades de la imagen

"lazyImgSrc": "data-cfsrc"
"lazyImgSrc": ["data-lazy-src", "removeProp1,removeProp2"]

css

Agrega CSS para que puedas mostrar algunos elementos ocultos. Si comienza con "inIframe:", este CSS solo tendrá efecto en la siguiente página del iframe

"css": ".card-lazy{display:none}"

insert

La posición en la que quieres insertar. Puedes configurarlo como una matriz para que contenga múltiples posiciones.

"insert": "ul#feed-main"

insertPos

1 significa insertar antes, 2 significa simplemente añadir al final del objetivo

"insertPos": 2

iframeInit (win, iframe)

El código JavaScript que se ejecutará lo más rápido posible antes de que se ejecute cualquier código en el iframe.

"iframeInit": "win.self=win.top;"

init (doc, win, iframe, click, enter, input)

El código JavaScript que se ejecutará solo una vez con la página principal actual o en cada iframe con doc: (documento de la página principal o iframe)

"init": "if(doc)doc.querySelector('[data-title=sh]').click();"

pagePre (response)

El código JavaScript que se ejecutará después de obtener la respuesta de la URL del siguiente enlace. Puedes modificar el contenido de la respuesta y devolverlo

"pagePre": "return decodeURI(response).replace(/[\\\\]/g,'')"

pageInit (doc, eles)

El código JavaScript que se ejecutará con cada página insertada con doc: (documento de cada página cargada) y eles: (elementos encontrados con la regla), se ejecuta antes de la inserción. Puedes activar eventos como onView()

"pageInit": "let ops=doc.querySelectorAll('op');[].forEach.call(ops,op=>{img.src=op.value;imgCon.appendChild(img)})"

pageAction (doc, eles)

El código JavaScript que se ejecutará con cada página insertada con doc: (documento de cada página cargada) y eles: (elementos encontrados con la regla), se ejecuta después de la inserción. Puedes agregar funciones como click()

"pageAction": "let j=document.querySelector('.lazy');eles.forEach(i=>{i.src=i.dataset.srcset;})"

filter

Filtra los elementos insertados de la página siguiente.

"filter": {
    "count": 20,
    "words": "spams\\d",
    "link": "^https://spams\\.xxx",
    "selector": "div#spam"
}

loadMore

Selector del botón "cargar más"

"loadMore": ".loadMore"

sleep

Tiempo de espera (en ms) cuando se carga la página siguiente si el sitio está limitado por un intervalo de tiempo

"sleep": 1000

rate

El multi-windowHeight que puedes configurar en 2 o 3 mientras algunos sitios tardan en cargar la página siguiente

"rate": 3

autoLoadNum

La cantidad de páginas para pasar automáticamente después de abrir la página

"autoLoadNum": 5

listenHashChange

Configura esto en true para que Pagetual se reinicie cuando el hash cambie

"listenHashChange": true

refreshByClick

Si el sitio recarga el contenido sin cambiar la URL al hacer clic en un botón de envío. Configura esto con el selector del botón de destino, Pagetual se reiniciará después de hacer clic en él.

"refreshByClick": "#sreach"

pageNum

Indica el número de página con $p en la URL actual. Puedes usar {} para evaluar la cadena de resultado del número de página, como {$p*25+1}

"pageNum": "&start={15*($p-1)}"

pageBar (pageBar)

El código JavaScript para cambiar la barra de paginación. 0 significa ocultar

"pageBar": "pageBar.classList.add('j_thread_list');"

pageBarText

Configúralo en 1 para que el título del documento de la página siguiente se muestre en la barra de paginación

"pageBarText": 1

autoClick

El selector CSS o xpath del elemento que quieres que se haga clic automáticamente

"autoClick": "#btn-sky"

history

Configúralo en 0 para desactivar la escritura del historial. Configúralo en 1 para habilitarla. Configúralo en 2 para que la escritura del historial se active inmediatamente después del splicing. Sin importar cuál sea el valor de la opción general.

"history": 1

lockScroll

Configúralo en true si no quieres que la página se desplace automáticamente cuando navegas a la página siguiente

"lockScroll": true

wheel

Configúralo en true para que la acción de la página siguiente solo tenga efecto cuando la rueda del mouse se desplace

"wheel": true

fitWidth

Configúralo en false si el elemento de la página tiene un ancho pequeño incorrecto

"fitWidth": false

delay

El código JavaScript para retrasar la siguiente acción hasta que devuelva true. Usa esta propiedad para obtener elementos de página completos con carga perezosa.

"delay": "return document.querySelector('#feed_pagenation>li.cur').innerText>=curpage"

manualMode

Configúralo en true para habilitar el modo manual. La paginación se detendrá y la flecha derecha (o el evento 'pagetual.next') se vinculará para hacer clic en el siguiente enlace.

"manualMode": true

openInNewTab

Configúralo en true para que todos los enlaces se abran en nuevas pestañas, false para que se abran en la misma.

"openInNewTab": true

pageElementCss

El estilo CSS que quieres establecer para cada elemento de la página.

"pageElementCss": "color: red"

initRun

Se ejecuta inmediatamente después de la inicialización.

"initRun": true

sideController

Muestra u oculta la barra de herramientas del sideController.

"sideController": true

listenUrlChange

Actualiza el script después de que la URL cambie.

"listenUrlChange": false

clickMode

Detiene el paso de página y hace clic en el siguiente enlace después de desplazarse hasta el final.

"clickMode": true

preloadImages(doc)

Analiza la página y devuelve una matriz de las URL de las imágenes que necesitan ser precargadas.

"preloadImages": "return ['1.jpg']"

child script

Si el sitio tiene alguna limitación para la evaluación de código. Puedes crear un script secundario con una función bajo el objeto window. Debes nombrarlas comenzando con pagetual en camelCase. Como window.pagetualWait, window.pagetualNextLinkByJs, window.pagetualPageInit, window.pagetualPageAction, window.pagetualInit, window.pagetualPageBarText.