web漫画にショートカットキーを追加

minarai
2019-02-13T11:46:36Z

←→：前／次のページ　Shift+A：頭出しオンオフ　f [：全画面化　Shift+←→か ] Enter：前の話/次の話に移動　Shift+↑：作品情報ページに戻る　（ニコニコ静画のみ）C：コメントオンオフ　（作品情報ページで）→：第1話に移動、Enter：最新話に移動、Shift＋↑：パンくずリスト1つ上に移動　Shift+@：インスタントsibling登録

■　機能

１．対応サイトにキーボードによるショートカットキー（後述）を追加します
ニコニコ静画（漫画）、ツイ４、コミックぜにょん、コミックエッセイ劇場、裏サンデー、やわらかスピリッツ、コミックバンチ、ジャンプルーキー、マンガハック、ヤングエースUP、コミックNewtype、MATOGROSSO、すくパラぷらす、Souffle、comicタタン、cakes（要リロード）、コミックPASH!、よみタイ、note、笑うメディアクレイジー、Game*Spark,コミチ等

２．対応サイト（ソース参照）で漫画の作者名の横にそのキーワードでWeb漫画アンテナを検索するリンクを追加します
このリンクを右クリックすると作者名でpixivとtwitterを検索するページを開きます
３．対応サイトで新しいタブを開くタイプのリンク（target="_blank"）を同じページで遷移するようにします

■　追加されるキー操作

○漫画各話ページ

・←→で前／次のページ画像までキリよくスクロール
・画面に中途半端に見えているページ画像を左クリックすると画面のちょうどの位置にスクロール
・画面ちょうどの位置に見えているページ画像を左クリックすると次の画像までキリよくスクロール

・スクロールが画面の上端にいる時に←で前のエピソードに移動
・スクロールが最終画像の位置にいる状態で→で次のエピソードに移動
・Shift+←（または ] キー）で前のエピソードに移動
・Shift+→（または Enter）で次のエピソードに移動
・Shift+↑で作品情報ページに戻る

・Shift+Aキーで頭出し機能オンオフ（オンにすると各話ページを開いた時にすぐに1つめのページまでスクロール）
・fキー（または [ キー）で全画面表示オンオフ
・左に読んでいくサイトで各話最後のページで次のエピソードに移動するリンクがあれば←キーでそれを押す

○作品情報ページ（seiga.nicovideo.jp/comic/* 等）

・→で第1話のページに移動
・Shift+→（または Enter）で最新話のページに移動
・Shift+↑でパンくずリストを1つ上に昇る

○ニコニコ静画（漫画）のみの機能
・cキーでコメント表示をオンオフ

○ツイコミ（仮）のみの機能
・↑↓キーでページをキリよくスクロール

○いくつかのサイト（ツイコミ、コミックNewType、コミックエッセイ劇場、ツイ4、ニコニコ静画、ヤングエースUP、ジャンプルーキー、マンガハック、文春オンライン、ヤンマガWeb、ダ・ヴィンチニュース、コミチ、Matogrosso、すくパラ、等）のみの機能
・画像を画面にフィット（デフォルト）　Aキーでオンオフ

○いくつかの必要なサイトのみの機能
・デフォルトで画像サイズが中途半端なサイトで最初に「拡大」などのボタンやアコーディオンを開くボタンをクリックする

設定はGM_setValue領域に保存されます

どの機能が実装されているかはサイトによって違い、使える機能はポップアップで表示されます
要素がページに追加されるタイミングが遅いサイトなどで機能は使えるのにポップアップが出ないこともあります

■　備考

・対応サイトは自分でサイト情報を書いて増やすことができます
スクリプト冒頭の const SITEINFO = [] の中にサイト１つごとに{}でソースを参考に必要な情報を追加してください
追加したらスクリプト冒頭のメタデータブロックにそのサイトに対応する@match文（または// @match *://*/*）も追加してください

・web漫画に～という名前ですが縦に記事等が並んでいるサイトならSITEINFOでたいてい対応できます
デモとしてWeb漫画アンテナ、bokete、類似漫画検索、5ch、Togetter、twitter/nitter等で←→キーが使えます

・サイトの隅々のページまでは動作確認していないので判定を誤爆するところがあるかもしれません
不便な判定をする時はスクリプトマネージャでそのドメインを除外設定するかSITEINFOの該当する行を書き直したり消したりしてください

・全画面化する時の警告表示や暗転のアニメーションが邪魔な時はFirefoxならabout:configを開いて
full-screen-api.transition系を0
full-screen-api.warning系を0
toolkit.cosmeticAnimations.enabledをfalse
等を設定する手があります

・スクリプト冒頭で若干の設定ができます
const PopupHelpMS = 4000; // ポップアップの表示時間
var scrollSpeed = 1.5; // ←→キーのスクロール速度（0：API使用、1：瞬間移動、1.01～：速度指定）

・Web漫画アンテナのuAutoPagerize/weAutoPagerize用のMY_SITEINFOをここに書いておきます
{
url : '^https?://webcomics\\.jp',
nextLink : '//div[@class="pager-next"]/a',
pageElement : '//div[@id="main"]',
},

■　インスタントsibling登録機能

「←→キーで前／次の項目へキリよくスクロールする」機能のみ、ソースに触らずに素早く設定して使うことができます
最初にスクリプト冒頭のメタデータブロックにそのサイトに対応する@match文（または// @match *://*/*）を追加して
目的のサイトでShift+@を押すとプロンプトが出るので←→キーで移動したいページ要素を指すXPathかCSSセレクタを入力してください
プロンプトの初期値にはShift+@を押した時にマウスで指していた要素を指せるCSSセレクタを簡易に生成したものが入りますが
あくまで簡易なので基本的には自力で良いセレクタを書いてください
空欄を入力すると設定を削除します
XPathが適切なら同ドメイン内のページで←→キーが効くようになります
この設定はGM_setValue領域に保存され、内蔵のサイト情報より優先して利用されます
再度Shift+@を押すとソースに挿入できる形でSITEINFOの一節がプロンプトに出力されるので必要ならソースにコピーしてください

不具合や要望があれば：(Bitmessage)BM-NBKhGgzahPds3f5Ms6ZRJyvZoMNgTYy4