「ブックマークレット」を含む日記 RSS

はてなキーワード: ブックマークレットとは

2024-11-19

google拡張のあれにAI要約ボタンを追加したよ

anond:20241114205729

AI要約ボタンを追加したよ

https://chromewebstore.google.com/detail/%E3%81%AF%E3%81%A6%E3%83%96%E3%83%AB-%E3%83%91%E3%83%8D%E3%83%AB/jffjglclhogdgliiibiciikihejddgeb

長文で読む気が起きないけど、内容は気になる!ってときに便利\(^o^)/

Perplexity、Felo、Genspark あたりを別タブで開いて要約してもらえます

ブックマークレットでも足りると言えば足りる

2024-10-28

ブコメスター数でソートする拡張機能を作った

ダウンロードこちから

https://chromewebstore.google.com/detail/hatebu-comments-sorted-by/fnkcdmbjapomjpilfeekjofbndmdobib


機能としては、新着コメントの横に人気コメントのタブを用意して、そこをクリックするとスター数が多い順でコメントを表示するというシンプルものだ。


建設的コメントアルゴリズムに弾かれても星を取りに行くブクマカとしての生き様を追い求めたいという増田についていたブコメを見て作成した。

半分くらい作ったところで、似たような機能を持つブックマークレット存在することを知ってショックを受けたが、とりあえず完成はさせた。


記事についたコメント数が数百を超えるような場合には、上手く動作しないことがある。

同期処理が上手くいってないことが原因だと思われるが、Javascriptはよくわかっていないのでそこは諦めた。

2024-08-20

anond:20240816153906

ありがとう。ChatGPTに作ってもらった。数値文字参照でないといけないというのは素人には教えてもらわないとたどり着けないので感謝です。

ハイライトされた文字列を <pre> タグで囲み、特殊文字数値文字参照に変換し、改行を <br> タグに置き換えて、元の文章をその場で置き換えるブックマークレット作成

javascript:(function() {
function escapeHtml(text) {
return text.replace(/&/g, '&#38;')
.replace(/</g, '&#60;')
.replace(/>/g, '&#62;')
.replace(/"/g, '&#34;')
.replace(/'/g, '&#39;')
.replace(/\n/g, '<br>');
}

var s = window.getSelection().toString();
if (s) {
var escapedText = escapeHtml(s);
var wrappedText = '<pre>' + escapedText + '</pre>';
prompt('以下のコードコピーしてください:', wrappedText);
} else {
alert("文字列ハイライトしてください。");
}
})();

2024-08-17

匿名ダイアリーのおかげでAmazonURL長すぎ問題解決した

この記事のおかげ

FANZAの検索結果から熟女を除外するブックマークレット

詳しくは上記記事を読んで。

そして、このコードブクマに突っ込むのです。

&gt;|| javascript: (() =&gt; {let r = location.href;r = r.replace(/(https:\/\/www.amazon.co.jp\/).+?(dp\/..........).+?$/,'$1$2');navigator.clipboard.writeText(r);})() ||&lt;

ありがとう匿名の方。

2024-08-16

anond:20240814115136

最近全くの素人ながらにChatGPT使って簡単自分ブックマークレットを作ってもらってるけど、ちょっと複雑な機能になると何をどう命令すればいいかすら分からなくて初手で詰んでしまう現状だったから、こういう詳細な解説はありがたい。

2024-08-15

スターの多い順にブコメを並び替える

FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークコメント欄スター数順にソートするブックマークレット作りました

作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設コメント順位付けモデル無効化していますが、あのアルゴリズムには特に不満は特にありません。

ブックマークレット

javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();

ミニファイしたものコードに一部誤りがありましたので訂正しました(2024-08-16 11:47)

javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()

使い方

FANZAの検索結果から熟女を除外するブックマークレット 参照

コード解説

コード説明にダサイところがあったら厳しく指摘して下さい。

javascript:

ブックマークレット必要な、URLの種類を示すスキーム名です。

(async () => {
// 処理
})();

ページに元々ある変数たちとバッティングしないように、まず無名関数ラップします。処理の中で await を使いたいので async 宣言しています

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

処理の途中で待ち時間を設けるための関数です。便利。

document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);

「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています

window.scrollTo(0, 0);
await wait(1000);

ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。

const p = document.querySelector('.js-bookmarks-recent');

新着ブコメの親要素です。繰り返し呼び出すので名前をつけています

let l = Array.from(p.querySelectorAll('.entry-comment-contents'));

コメントをすべて配列に格納します。

const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};

コメントはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。

l = l.filter(e => g(e) > 0);

ソートする前に、無スターコメントを消去しています。してもしなくてもいいことですが。

l.sort((a, b) => g(b) - g(a));

残ったコメントスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列共通メソッドもいくつかあるものの、大半は使えないのです)。

p.replaceChildren(...l);

親要素の内容を、並び替えの終わったコメントそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスターソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装しません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装しません。

2024-08-14

FANZA検索結果から熟女を除外するブックマークレット

興味のない作品検索結果に混じるのは邪魔ですよね。

私は熟女モノとか人妻モノは眼中にないのですが、なぜだか最近そっち系作品が多くて閉口しています

しかFANZA側の検索システムはNOT検索できるようになっていません。そこで、検索結果から除外できそうなものを除外するブックマークレットを作ることにしました。

さいわい近年は内容の概要文をそのままタイトルにしたような作品ばかりなので、タイトルに含まれキーワードで除外が簡単にできそうです。

熟女」とか「五十路」のような単語を含む作品非表示にしてしまえばよいのです。

ブックマークレット

javascript: (() => {
const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;
const q = '#list>li';
document.querySelectorAll(q).forEach(l => {
if (r.test(l.textContent)) {
l.remove();
}
});
})();

ミニファイしたもの

javascript:(()=>{const r=/熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;const q='#list>li';document.querySelectorAll(q).forEach(l=>{if(r.test(l.textContent)){l.remove()}})})()

このブックマークレットで、検索結果に含まれ熟女作品の数を1/3くらいにまで減らすことができます

使い方

ブックマークレットとは、ブックマークURLではなくJavaScript登録して、閲覧中のページ上で自分(やほかの誰か)が作ったプログラムを実行できるしくみのことです。普通ブックマークと同じようにブックマークバーなどに並べておいて、クリックひとつで呼び出すことができて便利です。

登録のしかたは簡単PCChromeを例に説明します。

①まず、どこのページでもいいので(今読んでいるこのページでもよい)ブックマークひとつ作り、ブックマークバーなどの呼び出しやすいところに置きます

②できたブックマーク右クリックして「編集...」を選びます

③「名前」欄は、自分にわかやす名前に変更します。でも「FANZAフィルター」などあけすけな名前をつけると、誰かに画面を覗かれた時に困りますよ。

④「URL」欄に、上記したプログラムコード入力します。ただし上記コードは私向けのキーワード選定になっていますので、ご自身の好みに合わせたキーワード選定をしていただければよいかと思います/単語1|単語2|単語3/ のように記述してください。

ふつうソースコードと、改行・インデントなどを省いてミニファイ(最小化)したもの、どちらをコピペしても大丈夫です。

編集の済んだブックマークレットを保存します。

FANZA動画検索します。

⑦このブックマークレットを起動します。すると、瞬時に検索結果が減ります

キーワードけが異なる複数ブックマークレット登録しておいて、場面に応じて使い分けるなどの工夫もできるでしょう。

コード解説

上記スクリプトが何か悪さをするようなものではないことを説明するために、また、JavaScript学習し始めたばかりの人のために、このシンプルスクリプト解説します。

javascript:

URLの種類を示すスキーム名です。一般的URLhttps:mailto: などで始まりますが、javascript: と書くと、これに続くコードプログラムとして実行されます

(() => {
// 処理
})();

ここからJavaScript です。まず処理全体をくるむ大きなカッコと最後に付け足された () は、自己実行無名関数という形式です。今回のブックマークレット変数を含みますので、実行するページに元々ある変数たちとバッティングしないようこのようなかたちにします。

const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;

除外したい単語を羅列した正規表現です。個人個人で設定が変わる部分なので、編集やすいように切り出しておきました。

const q = '#list>li';

フィルター対象とするHTML要素群のクエリセレクター文字列です。検索結果に一覧表示される、個々の作品要素を選択します。FANZAシステム改修を行うと変わってしま可能性がある部分なので、メンテやすいようにここだけ切り出しておきました。

document.querySelectorAll(q).forEach(l => {
// 処理
});

クエリセレクター q に一致する要素 l ひとつひとつについて反復して処理を行います

if (r.test(l.textContent)) {
l.remove();
}

もし要素 l 内のテキスト正規表現 r と一致していたら、要素 l を取り除く、という処理です。正規表現 rキーワードの羅列ですので、テキストの一部にキーワードのどれかが含まれていたら一致したことになります

魂の叫び

追記

NOT検索できるよ。俺はこの検索結果をブックマークしている「サンプル -近親相姦 -MM号 -義母 -義父」

ほ、ほんまや……!!!

2024-07-11

選択した言葉英語翻訳して検索する」ブックマークレットが便利

はてブで流れてくるニュース記事でも「~とAP通信が伝えた」「~とCNNが伝えた」みたいなストレートニュースをよく見る。こういう外信記事は元の外国記事だと詳細な解説がついていたりする。それを読むために元の記事を探すのに便利。

国際ニュースを読んでて「何か情報が省かれ過ぎじゃないか?」という記事でも、リード文を適当選択して翻訳検索すれば現地で発信されてる詳細記事が結果に出る(英語圏じゃないメディアでもだいたい英語発信してるし)。

日本語記事では、カタカナ翻訳されて伝えられる外国人の名前。気になる人物だったら元の言語検索して調べたいのだが、カタカナで書かれている名前英語でどう綴ればいいか、なかなか正確に分からない。そんな時にも選択するだけで英語自動翻訳して検索してくれて便利。日本語Wikipediaに項目がなくても英語版にはあったりするから簡単検索できると人物の背景が掴みやすい。

こんな便利なブックマークレットがChatGPTにお願いするだけで誰でも生み出せるのだからスゴい世の中だ。

2023-12-25

ChatGTPでブックマークレットを作りまくってる

自分では作れないので今までは誰かが作って公開していたGoogleキャッシュの取得やTwitter検索魚拓検索くらいしか利用できていなかったが、ChatGTPに頼めば簡単に作ってくれるので、いくらでも細かい指示を出して量産できる。Twitterで今見てるアカウント内で検索ハイライトした文字国会図書館デジタル検索青空文庫検索Fanza検索、その他◯◯で検索ってのを普段調べで使うサイトで作って他に、増田で太字タグをつける、URLタグをつける、引用タグをつける、といったはてな記法を使いやすくするブックマークレットも作った。Webアーカイブで開いたページの元ページのはてブコメントページを開く、だったり、朝日新聞URLを変換してTwitter検索するなんて「葬送のフリーレン」に出てくる魔法みたいに特定用途しか使わない自分用のブックマークレットも作れて満悦。

2023-12-13

なんでWEBマンガブコメするんだろう

無言ブクマはわかるんだ、それこそ「あとで読む」つもりとか

あと各話じゃなくて作品トップページもわかる、更新のたびに繰り返し訪問するんだろうなーと想像できる

からないのは各話のブコメ

だいたいのWEBマンガにはコメント欄があるのにそこに書かず、わざわざB!ボタン押して(下手したらリンクコピーとかブックマークレットまで使って)敢えて別サイトに書くほどでもない感想を書きにくるのはマジでからない たぶん読み返すこともないだろうし

学校ではダンマリでおうちでしか話せない子かな

2023-05-14

はてぶのブックマークレットが、ブクマしたい対象twitterだと反応しなくてめんどくさい

2023-04-17

ChatGPTは「反転」という言葉理解できない

ChatGPTに「文字を反転させて、その部分を太字にできるブックマークレット作って」って言ったら文字の順番が逆転して太字になるブックマークレットが完成してしまった。

 

。たっましてし成完がトッレクーマクッブるなに字太てし転逆が番順の字文らたっ言てっ」てっ作トッレクーマクッブるきでに字太を分部のそ、てせさ転反を字文「にTPGtahC

2023-03-23

anond:20230322173459

ズバリRaindrop.io おすすめ。ほぼ一択ほとんどの主なブラウザ対応パソコンでもスマホでも使える。開いているタブを全部まとめて一斉に一つのフォルダ登録することもできる。(Safariのタブグループにも対応

無料プランでもブックマーク数は無制限。有料プランでも大して高くはなくて、全文検索機能フォルダネスティングや全Webページ自動保存などの機能が加わる。

次点Diigo かな。有料プランちょっと高め。拡張機能Chromeのみで、ブックマークレットがちょっと弱い。

2023-03-04

朝日新聞digitalプレゼント機能

無料会員のタダ読み3本機能の代わりに導入された有料会員によるプレゼント機能が導入されてもう1年(?)。増田が初めて知ったのはwattoさんのブコメプレゼントURLを貼ってくれた時だが、最近になってTwitterスーパーインフルエンサーの暇空アノンいちゃもんのおかげで一気に機能が周知された。その結果なのかTwitterでもプレゼントURLの貼り付けが増えた感。

面白いのは、いわゆるリベラル系のアカウントの利用のみならず、反リベラル系の有名アカウントもちらほらとプレゼント機能を利用してるってことな。閲覧数は反リベラル系が圧倒的。まあそれなりにコンサル系や研究者系なら思想の左右問わず朝日読売日経辺りを読まないわけにはいかないし、中立アピールのためにあえて朝日ソースを使うってことかな

 

そして我ながらとんでもなくみみっちいブックマークレットをChatGPTに頼んで作ってもらった

朝日有料記事プレゼント検索

朝日デジタルの有料記事ページを開いている時にクリックするとTwitterで有料記事プレゼント機能を使ってる(と思われる)ツイート検索するブックマークレット

javascript: (() => {  const currentUrl = window.location.href;  const digitalUrl = `digital${currentUrl.match(/\.asahi\.com\/articles\/.+\.html/i)[0]}`;  const searchUrl = `https://twitter.com/search?q=${encodeURIComponent(digitalUrl)}&f=live`;  window.open(searchUrl, %27_blank%27);})();

2023-02-25

ChatGPTにJavaScriptブックマークレットを作ってもらってるんだが

このChatGPTのJavaScript説明がどうしても分からない。解説あってる?

var idx は、現在開いているWebページURL文字列に ? が含まれている場合に、その位置を取得するために使用されます。これは、クエリ文字列の開始位置特定するために必要な処理です。

たとえば、以下のようなURL現在開いているWebページURLであった場合

https://example.com/search?q=keyword&page=1

var idx = url.indexOf('?'); というコードを実行することで、変数 idx には 8 という値が代入されます。これは、? の位置URL文字列の8文字目にあることを示しています

var idx はURL文字列の何番目に?があるかって意味だとは分かった。でも例文のURLだと?の位置はhから数えて27番目だよね。聞いてみた

おっしゃる通り、指定されたURL https://example.com/search?q=keyword&page=1 において ? の位置は h から数えて 27 番目の文字です。

しかし、ブックマークレットコード中では idx の初期値として url.indexOf('?') を設定しています。この indexOf() メソッドは、指定された文字列最初に現れる位置を返します。もし文字列が見つからなかった場合は -1 を返します。

したがって、ブックマークレットコード中で url.indexOf('?') を実行すると、? の位置が返されます指定されたURLにおいて ? は https:// の直後に出現するため、url.indexOf('?') の実行結果は 8 になります

まりブックマークレットコード中では ? の位置ではなく、? の次の文字(q)の位置が idx として設定されていることになります

なんか意味がわからない。その後もどっから数えた数字がidxになるのかいくつか聞いてみたが堂々巡りになってしまって明確な答えが分からない

2023-01-31

anond:20230131121539

2009-06-18 - はてなブックマーク開発ブログ

この現状を受けて、はてなブックマーク側でも、ブックマークレットブックマークするときcanonical URL をチェックし、ブックマークしようとしている URL が異なる場合、ナビゲーションによる正規化された URL提示するようなインターフェイス作成を行いました。

最近・・・

2022-12-12

anond:20221211141138

今開いているWebページURLから、?以降を削除して、代わりに .jpg と付け足したURLを、同じブラウザのタブで開き直すブックマークレット

javascript: (function () {

var url = window.location.href;

var newUrl = url.substring(0, url.indexOf("?")) + ".jpg";

window.open(newUrl, "_self");

})();

javascript: (function () {

var url = window.location.href;

if (url.startsWith("https://pbs.twimg.com/")) {

var newUrl = url.substring(0, url.indexOf("?")) + ".jpg";

window.open(newUrl, "_self");

} else {

alert("このブックマークレットTwitter画像限定でのみ使用できます。");

}

})();

2022-12-11

anond:20221209223614

ChatGPTに作ってもらった「今開いてるWebページURLから#以下を取り除いたURLを同じブラウザのタブで開く」ブックマークレット

javascript:(function(){

var url = window.location.href;

var index = url.indexOf('#');

if (index &gt; 0) {

url = url.substring(0, index);

}

window.open(url, '_self');

})();

2022-12-09

anond:20221209153444

やったー!プログラムとか全然分からんけどChatGPTに頼んで「開いてるページのURLから#以下を消してURLを開くブックマークレット」を作ってもらったぜ

javascript:(function() {

var currentUrl = window.location.href;

var urlWithoutHash = currentUrl.split('#')[0];

window.open(urlWithoutHash);

})();

やったー!プログラムとか全くわからんけどChatGPTに聞いたら前からしかったブックマークレット機能簡単に作ってくれたぜ

JavaScriptで今見てるサイトタイトルクリップボードコピーするブックマークレットコードを教えて

JavaScriptで今見ているサイトタイトルクリップボードコピーするブックマークレットコードは、以下のようになります

 

javascript:(function(){

let title = document.title;

let input = document.createElement("input");

input.value = title;

document.body.appendChild(input);

input.select();

document.execCommand("copy");

document.body.removeChild(input);

alert("クリップボードに「" + title + "」をコピーしました。");

})();

2022-05-26

m.wikipediaからm無しに遷移できないのクソ

自動で遷移しろとは言わないけど、いちいち手でアドレス書きかえるのめんどくさすぎでクソ(なのでブックマークレット作った)

2022-01-22

anond:20220122003244

ブックマークレットだったらブラウザによっては動くけど、

ブラウザお気に入りだったら、拡張機能みたいにしないと駄目だったかな…

2021-11-10

anond:20211108215516

ブックマークレットjavascriptをどうぞ。 例えば↓だったら、増田の「言及エントリを開く」や「ツリー言及」を全部開くことが出来る。

javascript:document.querySelectorAll(".optimize-get-reference-button,.trackback-header a[onclick]").forEach(function(e){e.click();});

んでブックマークレットに慣れてきたら、Greasemonkey(Tempermonkey)やstylusのような拡張をどうぞ。

 

追記(使い方※chrome場合

1. ↑の青色範囲範囲選択

2a. コピーしてブックマークURLペーストして登録

2b. ツールバードラックアップして登録

3. 必要に応じて名前の変更

4. 増田で、登録したブックマーククリック

→ 言及が全部開かれる

ログイン ユーザー登録
ようこそ ゲスト さん