はてなキーワード: AutoPagerizeとは
さてどうするか。今更変わりを探すのめんどい。
Auto Copy 反転しただけでコピーしてくれる。引用に便利だけど単純機能ほど代わりに何を選べばいいのか選びにくい
AutoPagerize オートページ。これは代わりのオススメ拡張機能で出てきたパワーアップ版で解決
Clearly 記事の文章だけ読みやすく抜き出して整えてくれる。Evernote亡き今、代わりは全く見つからないから終わりまで使い倒す
Easy Window Resize 最近入れたばかりなのにもう代わりを探さないといけないとは
Feedly Notifier 今は使ってないので削除
Kimetrak ネット記事読んで入れたけどとっくの昔に使えなくなったみたい
minerBlock ネット記事読んで入れたけどブラウザで採掘してるサイトもうないから消していいよね
No Coin - Block miners on the web! ネット記事読んで入れたけどこんなことしてるサイトもうないよね
Papago Translate 韓国語に強い自動翻訳として入れたけどもう使ってない
Reading List 全く使ってなかった。なんで入れたのかも覚えてない
RevEye Reverse Image Search デマ検証ツールとして入れた画像検索機能だけど、オススメに出てくる代わりの機能を入れとけば何とかなりそう
Tampermonkey これ消えたら「増田のトラバツリーを開閉するTamperMonkeyスクリプト」が使えなくなってしまうので困るけど代わりを知らない
uBlock Origin 一応代わりはあるみたいだから安心
Vandal 記事読んで入れてみたけどWayback Machineがある限り必要性はあまりなかった
VPN Free - Betternet Unlimited VPN Proxy あまり使わないけどVPN拡張機能は代わりが色々ありすぎてウィルスが怖い
Wayback Machine これ消えたらWebArchive利用が面倒くさいので更新してほしい
ユーザー単位のブックマーク履歴ページ(例: https://b.hatena.ne.jp/hatenabookmark/)でAutoPagerizeが有効になってると、はてなブックマークにもともと備わってるページング機能と、ブラウザのAutoPagerize拡張が実施する機能が重複しちゃって、ページングがおかしなことにならない?
実はすごい前々から気になってて、必要があれば一時的にAutoPagerizeを無効化したりして凌いでいたんだけど、ついに意を決して、解決に取り組んでみたよ。
というわけで、いちおう手元でもテストした上で、ブラウザのAutoPagerize拡張が参照しているデータベースのアイテムを編集して実質無効化しておいた。拡張のSITEINFOを更新してみてね。
「ユーザー単位のブックマーク履歴ページ」だけにしか影響はないと思うんだけど、問題があったら教えてほしい。
テスト用
ページが分かれてるサイト記事を、そのまま続けて読むことができる。
慣れるまで違和感があるが、わりとおぬぬめ。
https://chrome.google.com/webstore/detail/autopagerize/igiofjhpmpihnifddepnpngfjhkfenbp?hl=ja
百数件ぐらいの時に横断的に見たりする時とかに便利だったのに、残念。
Masuda A boneを利用します。
http://d.hatena.ne.jp/ku__ra__ge/20080311/p5
下記の設定済みスクリプトをコピペして使えば、Masuda A boneをインストールする必要はありません。
ChromeならTampermonkey、FirefoxならGreasemonkeyをインストールします。
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ja
https://addons.mozilla.org/ja/firefox/addon/greasemonkey/
メニューからツール-Greasemonkey-ユーザスクリプトの管理
(もしくはアドオンマネージャのユーザースクリプトをクリック)
var ignore行を編集すれば、好きな言葉を追加できます。
AutoPagerizeに対応していません。
URLが2行連続するとあぼーん対象になってしまうので、本文があればあぼーん対象から除外したい。
// ==UserScript==
// @name Masuda A bone
// @namespace http://www.petitnoir.net/
// @description
// @include http://anond.hatelabo.jp/
// @include http://anond.hatelabo.jp/?page=*
// ==/UserScript==
///////////////////////////////////////////////////////
//あぼーんしたい言葉を「""」でくくって入力します。複数個追加したい場合は「,」でくぎります。
//入力例
// igonore =["あぼーんしたい言葉1","あぼーんしたい言葉2","あぼーんしたい言葉3"]
// var ignore = ["死ね","糞","クソ","くそ","<●>","ばーか","スイーツ(笑)"];
var ignore = ["[0-9a-zA-Z/\-]https?://"];
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
//
var abonemessage = "__";
///////////////////////////////////////////////////////
(function abone(){
//本文
var section = document.evaluate('//div[@class="section"]',document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
for (i=0; i < section.snapshotLength; i++) {
var sec = section.snapshotItem(i);
var p = sec.textContent;
for (t=0; t < ignore.length; t++){
var reg = p.match(ignore[t]);
if(reg){break;}
}
if(reg){
while(sec.firstChild){
sec.removeChild(sec.firstChild);
}
var message = document.createElement('h3');
message.textContent = abonemessage;
}
}
//言及
var refererlist = document.evaluate('//ul/li',document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
for (i=0; i < refererlist.snapshotLength; i++) {
var list = refererlist.snapshotItem(i);
var p = list.textContent;
for (t=0; t < ignore.length; t++){
var reg = p.match(ignore[t]);
if(reg){break;}
}
if(reg){
for(y=0;y < 8 ; y++){
list.removeChild(list.firstChild);
}
var message =document.createElement('span');
message.textContent = abonemessage;
list.insertBefore(message, list.firstChild);
}
}
})();
AutoPagerizeを有効にしていると、1ページ目のブコメユーザー数がちゃんと表示されないのと、自動読み込みされた2ページ目以降はmasudalertが有効にならない。
知らずにmasdalertが機能してないって人がいるかもしれないので、そういう人はAutoPagerize側で除外パターンに”http://anond.hatelabo.jp/*”とかを指定しておいてね。
技術的な話はよくわからないので、両立させて下さいってのはあんまり望みません。
ってかもう誰も見てない?
autopagerize incrementalでググるとそれっぽいのが出てくる
こんなかんじの記述をAutopagerizeの適当な場所に追加したら連番URLでも使えるようになるはず
var pages = getElementsByXPath(this.info.pageElement, htmlDoc);
var url = this.getNextURL(this.info.nextLink, htmlDoc);
if (this.info.incremental) {
var exp = new RegExp(this.info.incremental.nextMatch,'i');
var _m = this.info.incremental.nextLink;
var step = this.info.incremental.step || 1;
url = this.requestURL.replace(exp,function(m0,m1){
var n = parseInt(m1,10) + step;
return _m.split('#').join(n);
});
}
var next = getFirstElementByXPath(xpath, doc);
if (next) {
if (this.info.incremental) {
var loc = this.requestURL || location.href;
var exp = new RegExp(this.info.incremental.nextMatch,'i');
var nextLink = this.info.incremental.nextLink;
var step = this.info.incremental.step || 1;
if (loc.match(exp)) {
return loc.replace(exp,nextLink.replace("#",parseInt(RegExp.$1)+step));
} else if (!loc.match(exp)) {
return loc + nextLink.replace("#",step);
}
} else {
return next.getAttribute('href') || next.getAttribute('action') || next.getAttribute('value');
}
}
連番に適応するSITEINFOはこんなかんじになる
pageelementは普通のsiteinfoと同じ
nextlinkはリンクをたどるわけじゃないので意味ないのだが一応書いておく必要があるので'//a'とでも書いておけばいい
url: '^http://matome\.naver\.jp/odai/'
,incremental: {
nextMatch: 'page=(\\d+)'
,nextLink: 'page=#'
}
,pageElement: '//div[@role="main"]'
,nextLink: '//a'
サンプル
広告って言ってるしAutoPagerizeの類ではないんじゃないのかなぁ、と思ったけど、真意は知らない。
Webboyというのがどんなもんか使ったことないからわからないけども、設定いじったのがまずかったかねえ。
下じゃAutopagerizeでクラッシュしたかのような増田もあったしなあ。
http://anond.hatelabo.jp/20110217154516
プニルだと…!
うん。
ここのページアクセスしただけでアホかというほど重くなったからな。
AutoPagerizeのおかげでいったん強制終了するはめになったぜ。
Greasemonkeyが0.9にアップデートされてから?かどうかは分からないけどAutoPagerizeやLDRizeが動かなくて困った。
エラーコンソールを見たらVimperatorプラグインのldrize_cooperation.jsの
GreasemonkeyService = Cc["@greasemonkey.mozdev.org/greasemonkey-service;1"].getService().wrappedJSObject; this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,codebase,sandbox){ if(sandbox.window.LDRize != undefined &amp;&amp; sandbox.window.Minibuffer != undefined){
でエラーになっていた。
greasemonkey.jsをみてみたら
evalInSandbox: function(code, sandbox, script) {
で0.8のgreasemonkey.jsは
evalInSandbox: function(code, codebase, sandbox, script) {
だった。
- this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,codebase,sandbox){ + this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,sandbox,script){
したらAutoPagerizeは動くようになった
LDRizeはこれでもまだ動かない。Vimperatorを無効にしても同じ。
どうやらGreasemonkey 0.8ではMinibufferでのwindowとLDRizeでのwindowが同一のXPCNativeWrapperオブジェクトだったけど0.9では別のオブジェクトになったようだ。だからLDRizeでのwindow.MinibufferもundefinedになるしGM_MinibufferLoadedのイベントリスナーを設定してもwindowが違うから発行されないということみたい
ううむ
追記
0.9.0から0.9.1の間のこの変更が原因ぽい…
https://github.com/greasemonkey/greasemonkey/commit/6a4ffd52c90091714e6f49376ef07e2ce5009f79
増田民ともあろうものが、いまさらAutoPagerizeの導入ごときではしゃぐとは…。
例えば、autopagerizeでpage1, page2, page3とページングされるべきところなのに、
page1, page2, page2などと実行される人や、
niconicofavlistでニコ動のお気に入りマイリストのコンテナが二個も表示される人へ。
↓
どうも、AVG Safe Searchが最新Firefoxと相性が悪い模様。
FirefoxにインストールされているGreasemonkeyスクリプ - ブラウザ - 教えて!goo
http://oshiete.goo.ne.jp/qa/6283865.html
の回答5にもあるが、AVG Safe Searchを無効にしたら治った。
↓
動作から推測するに、AVG Safe Searchは一定時間ごとに何らかのチェック動作を行うらしい。
これがGreasemonkeyの動作と相性が悪いらしい。
AutoPagerizeのsiteinfoを利用した先読みアドオンを誰か作ってくれないかな
・2chブラウザで開く https://addons.mozilla.org/ja/firefox/addon/11022
・Adblock Plus https://addons.mozilla.org/ja/firefox/addon/1865
・All-in-One Sidebar https://addons.mozilla.org/ja/firefox/addon/1027
・Better YouTube https://addons.mozilla.org/ja/firefox/addon/6460
・Check4Change https://addons.mozilla.org/ja/firefox/addon/3028
・Context Search https://addons.mozilla.org/ja/firefox/addon/240
・Video DownloadHelper https://addons.mozilla.org/ja/firefox/addon/3006
・dragdropupload https://addons.mozilla.org/ja/firefox/addon/2190
・FireGestures https://addons.mozilla.org/ja/firefox/addon/6366
・FoxTab https://addons.mozilla.org/ja/firefox/addon/8879
・Google Toolbar for Firefox http://www.google.com/tools/firefox/toolbar/FT2/intl/ja/
・Greasemonkey https://addons.mozilla.org/ja/firefox/addon/748
・Hatena Bookmark https://addons.mozilla.org/ja/firefox/addon/11285/
・IE Tab https://addons.mozilla.org/ja/firefox/addon/1419
・IE View https://addons.mozilla.org/ja/firefox/addon/35
・Japanize http://japanize.31tools.com/
・Menu Editor https://addons.mozilla.org/ja/firefox/addon/710
・Resizeable Textarea https://addons.mozilla.org/ja/firefox/addon/3818
・ScrapBook https://addons.mozilla.org/ja/firefox/addon/427
・Screengrab https://addons.mozilla.org/ja/firefox/addon/1146
・User Agent Switcher https://addons.mozilla.org/ja/firefox/addon/59
・テキストリンク (Text Link) https://addons.mozilla.org/ja/firefox/addon/1939
・ブックマークを新しいタブで開く (Open Bookmarks in New Tab) https://addons.mozilla.org/ja/firefox/addon/13784
Greasemonkeyスプリクト
・AutoPagerize http://autopagerize.net/
・Loopy for YouTube http://userscripts.org/scripts/show/28832
デザインが悪い、というのも否定はしないが、そういうのに慣れていないという話でもある。
紙媒体とWebでは広告の立場が違う。それは仕組み上の特性や歴史もあいまって、そう変わるものではない。
だから、デザインが悪いところもあるが、それでも使うのであれば慣れるしかない。つか、使わなければ慣れないわけだけど。
基本、webでは一番目立つところに広告が来る。紙面では、そんな良い場所に広告など置かない。見出しが来る。
それでも幾らかの共通点はある。真ん中付近は本文である。本文は地味である。
慣れれば瞬時に判別が付く。クリックすべき場所もそれなりに。
あと、ページと画面が1:1でないのも注意点か。
そういえば本文識別なんてことをなおやんが言ってたな。
autopagerizeなんてのもあるし、本文以外を目立たなくするuser scriptとか出来なくもなさそう。
あと、addinならページ領域と現在の表示エリアを表すサイドカラムとか。リンクにピンが立つとか。
ワイド画面ではgoogle earth的UIが必要かも。
僕が4ヶ月間、Tumblrを使ってみた経験をもとに、あなたにTumblrを勧めない理由を10個にまとめてみました。
2.reblogが繰り返されるうちにオリジナルのソースがよくわからなくなってしまう。最終的に自分という存在がよくわからなくなる。
3.そんなTumblrのあり方についての不毛な議論を訳のわからない人たちがしょっちゅうしてる。
4.時間を大量に消費する。気がつくと一日が終わっている。その割りには知識が増えないし、生産性もない。
5.自分がreblogしたものとdashboardでもう一度出会ったりして非効率的。しかも流れてくるのが女の子と猫ばっか。
6.「これいい!」しかないので偏ったものの見方になる。なんかもう世界中が「いい!」のではないかと、間違った世界認識を持ってしまう。
7.文章を読んだりするとき、どこかquoteできないかと常に探してしまうようになる。
8.AutoPagerizeとTomblooが便利すぎて、これらのない生活に戻れなくなってしまう。
9.楽しすぎてやめられない。
10.実は、特に知り合いの、followerがいない方が楽しいので、友達に紹介できない。だからこんなところに書いてしまうようになる。
// ==UserScript== // @name anond // @namespace http://anond.hatelabo.jp/ // @include http://anond.hatelabo.jp/?page=* // ==/UserScript== function anond(doc) { $X(".//div[@class='section'][.//h3/a[2][starts-with(@href, 'http://anond.hatelabo.jp')]]", doc, Array).forEach(function(node){ node.style.display = "none"; }); $X(".//h3/a[1]", doc, Array).forEach(function(node){ var a = document.createElement("a"); a.name = node.pathname; a.href = "#" + node.pathname + "/footer"; a.innerHTML = "V"; node.parentNode.insertBefore(a, node); }); $X(".//p[@class = 'sectionfooter']/a[1]", doc, Array).forEach(function(node){ var a = document.createElement("a"); a.name = node.pathname + "/footer"; a.href = "#" + node.pathname; a.innerHTML = "^"; node.parentNode.insertBefore(a, node); node.parentNode.insertBefore(document.createTextNode(" | "), node); }); } anond(document); if (AutoPagerize.addDocumentFilter) AutoPagerize.addDocumentFilter(anond); // by http://lowreal.net/blog/2007/11/17/1 // $X(exp); // $X(exp, context); // $X(exp, type); // $X(exp, context, type); function $X (exp, context, type /* want type */) { if (typeof context == "function") { type = context; context = null; } if (!context) context = document; var exp = (context.ownerDocument || context).createExpression(exp, function (prefix) { var o = document.createNSResolver(context).lookupNamespaceURI(prefix); if (o) return o; return (document.contentType == "application/xhtml+xml") ? "http://www.w3.org/1999/xhtml" : ""; }); switch (type) { case String: return exp.evaluate( context, XPathResult.STRING_TYPE, null ).stringValue; case Number: return exp.evaluate( context, XPathResult.NUMBER_TYPE, null ).numberValue; case Boolean: return exp.evaluate( context, XPathResult.BOOLEAN_TYPE, null ).booleanValue; case Array: var result = exp.evaluate( context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var ret = []; for (var i = 0, len = result.snapshotLength; i < len; i++) { ret.push(result.snapshotItem(i)); } return ret; case undefined: var result = exp.evaluate(context, XPathResult.ANY_TYPE, null); switch (result.resultType) { case XPathResult.STRING_TYPE : return result.stringValue; case XPathResult.NUMBER_TYPE : return result.numberValue; case XPathResult.BOOLEAN_TYPE: return result.booleanValue; case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: { // not ensure the order. var ret = []; var i = null; while (i = result.iterateNext()) { ret.push(i); } return ret; } } return null; default: throw(TypeError("$X: specified type is not valid type.")); } }