高度なカスタマイズ

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

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

Pagetualが役に立ったと感じ、余裕があれば、その開発資金を支援するための寄付をいただけると大変ありがたいです。もし難しければ、気にせず楽しんでください!💞

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}"
    ]
  }
]

その他のルールの例open in new window

name

対象サイトの名前

"name": "Site name"

author

このルールの作成者

"author": "Hoothin"

example

このルールのURLの例

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

url

対象サイトのURLの正規表現

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

pinUrl

次へのリンクやページ要素が存在しない場合があるため、これをtrueに設定すると、要素をインテリジェントなルールで探すのではなく、URLだけでルールを固定できます。

"pinUrl": true

enable

0はすべて一致したときにアクションを停止することを意味します。

"enable": 0

include

含める必要がある要素のセレクターまたはxpath

"include": "div.content"

exclude

含めてはならない要素のセレクターまたはxpath

"exclude": "div.content"

wait

URLがサイトと一致することが確実な場合に、ページが準備できるまで待つ時間。ページが準備できたかどうかをチェックするために、booleanを返すJavaScriptコードも使用できます。

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

waitElement

"存在する必要がある要素のセレクターまたはxpath(遅延読み込み要素用)"と "存在してはならない要素のセレクターまたはxpath(スクロールして読み込む必要があるローディングプレースホルダー用)"を含む配列["exist", "not exist"]

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

action

0はURLを読み込んで静的HTMLで挿入することを意味し、1は動的なJavaScriptコードがページに影響を与えるようにiframeで読み込むことを意味し、2は強制的にiframeを最下部に挿入することを意味します。

"action": 1

次のページへのリンクのセレクターまたはxpath。0に設定すると無効になります。複数の次のリンクを含む配列にすることもできます。

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

nextLinkByUrl

次の要素がない場合、これを使用して現在のURLからhrefを生成できます。[0]は正規表現文字列、[1]は置換文字列、[2]は含める必要がある要素のセレクターまたはxpath、[3]は含めてはならない要素のセレクターまたはxpathを意味します。簡単なコードを評価するために{}を使用できます。

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

nextLinkByJs (doc)

これを使用してJavaScriptコードを評価し、doc(読み込まれた各ページのドキュメント)で次のページのターゲットURLを返します。

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

stopSign

このサインに一致した場合、次のページの読み込みを停止します。

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

pageElement

挿入する必要がある主要なコンテンツのセレクターまたはxpath。複数のページ要素を含む配列にすることもできます。

"pageElement": ".Context>.Article"

pageElementByJs (over)

これを使用してJavaScriptコードを評価し、挿入したい要素を何でも作成します。挿入する要素の配列をコールバックするためにover(eles)が必要です。

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

replaceElement

新しい要素に置き換えたい要素のセレクターまたはxpath。配列にすることもできます。

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

lazyImgSrc

実際のsrcを対象とする画像の属性。画像のプロパティを削除するために["lazysrc", "removeProp1,removeProp2"]で設定できます。

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

css

隠された要素を表示できるようにCSSを追加します。"inIframe:"で始まると、このCSSは次のiframeページでのみ効果を発揮します。

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

insert

挿入したい位置。複数の位置を含む配列にすることもできます。

"insert": "ul#feed-main"

insertPos

1は前に挿入することを意味し、2はターゲットの最下部に単に追加することを意味します。

"insertPos": 2

iframeInit (win, iframe)

iframe内のどのコードよりも速く実行されるJavaScriptコード。

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

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

現在のメインページまたは各iframeで一度だけ実行されるJavaScriptコード。docはメインページまたはiframeのドキュメントです。

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

pagePre (response)

次のリンクのURLからレスポンスを取得した後に実行されるJavaScriptコード。レスポンスの内容を変更して返すことができます。

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

pageInit (doc, eles)

doc(読み込まれた各ページのドキュメント)とeles(ルールで見つかった要素)で挿入された各ページで実行されるJavaScriptコード。挿入前に実行されます。onView()のようなイベントをトリガーできます。

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

pageAction (doc, eles)

doc(読み込まれた各ページのドキュメント)とeles(ルールで見つかった要素)で挿入された各ページで実行されるJavaScriptコード。挿入後に実行されます。click()のような機能を追加できます。

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

filter

次のページから挿入された要素をフィルタリングします。

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

loadMore

「もっと読み込む」ボタンのセレクター

"loadMore": ".loadMore"

sleep

サイトが時間間隔によって制限されている場合に、次のページを読み込む際の待機時間(ミリ秒)

"sleep": 1000

rate

ページによっては次のページの読み込みが遅い場合、2または3に設定できるmulti-windowHeight

"rate": 3

autoLoadNum

ページを開いた後に自動でページをめくるページ数

"autoLoadNum": 5

listenHashChange

これをtrueに設定すると、ハッシュが変更されたときにpagetualが再起動します。

"listenHashChange": true

refreshByClick

サイトが送信ボタンをクリックしてもURLを変更せずにコンテンツをリロードする場合。これをターゲットボタンのセレクターに設定すると、クリック後にpagetualがリセットされます。

"refreshByClick": "#sreach"

pageNum

現在のURLでページ番号を$pで指定します。ページ番号から結果文字列を評価するために{}を使用できます。例:{$p*25+1}

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

pageBar (pageBar)

ページバーを変更するためのJavaScriptコード。0は非表示を意味します。

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

pageBarText

1に設定すると、次のページのドキュメントタイトルがページバーに表示されます。

"pageBarText": 1

autoClick

自動的にクリックしたい要素のCSSセレクターまたはxpath

"autoClick": "#btn-sky"

history

0に設定すると、履歴の書き込みが無効になります。1に設定すると、履歴の書き込みが有効になります。2に設定すると、スプライシング直後に履歴の書き込みが実行されます。一般的なオプションの値に関係なく。

"history": 1

lockScroll

次のページに移動したときにページが自動スクロールしないようにしたい場合は、trueに設定します。

"lockScroll": true

wheel

マウスホイールが回転したときにのみ次のページのアクションが有効になるようにする場合は、trueに設定します。

"wheel": true

fitWidth

pageElementが間違った小さな幅を取得している場合は、falseに設定します。

"fitWidth": false

delay

trueを返すまで次のアクションを遅延させるJavaScriptコード。このプロパティを使用して、遅延読み込みのある完全なページ要素を取得します。

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

manualMode

手動モードを有効にするにはtrueに設定します。ページングは停止し、右矢印(または「pagetual.next」イベント)が次のリンクをクリックするようにバインドされます。

"manualMode": true

openInNewTab

すべてのリンクを新しいタブで開くようにするにはtrueに設定し、現在のタブで開くようにするにはfalseに設定します。

"openInNewTab": true

pageElementCss

各ページ要素に設定したいスタイルCSS。

"pageElementCss": "color: red"

initRun

初期化後すぐに実行します。

"initRun": true

sideController

サイドコントローラーのツールバーを表示または非表示にします。

"sideController": true

listenUrlChange

URLが変更された後にスクリプトを更新します。

"listenUrlChange": false

clickMode

ページめくりを停止し、最下部までスクロールした後に次のリンクをクリックします。

"clickMode": true

preloadImages(doc)

ページを分析し、プリロードする必要がある画像のURLの配列を返します。

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

child script

サイトがコードの評価にいくつかの制限を設けている場合。windowオブジェクトの下に関数を持つ子スクリプトを作成できます。それらの名前はpagetualをキャメルケースで始める必要があります。例:window.pagetualWaitwindow.pagetualNextLinkByJswindow.pagetualPageInitwindow.pagetualPageActionwindow.pagetualInitwindow.pagetualPageBarText