はてなキーワード: fanzaとは
今、妻が妊娠していて、セックスご無沙汰なので、妻にはナイショで、人生初のオナホを買ってみた。
うちは3LDKで、寝室、妻の部屋、自分の部屋があるので、自分の部屋であればオナニーはばれない。
アマゾンとかFANZAとかのレビューを見て、電動のものを1つ、非電動のものを1つ、合計2個購入。
自宅に送って、間違って妻が開くといけないので、駅の近くのロッカーで受け取り。
で、人生初オナホを試してみたのだが、確かに何もないオナニーよりは気持ちはいいとは思うのだが、それ以上に準備と後片付けが面倒すぎませんか?
普通のオナニーの準備工数1、後片付け工数を1とすると、オナホ使用オナニーは準備工数10、後片付け工数40くらいな感じがする。
特に後片付けの面倒くささは異常。ローションがついた陰部をウェットティッシュごしごし拭いて清掃し、その後オナホを裏返しにして洗ってふいて乾燥させるって、とにかく面倒すぎる。
オナホオナニーが、普通のオナニーの何倍も何十倍も気持ちがよければ、後片付け工数も見合うのだが、何倍、何十倍の気持ちよさとは思えないので、面倒くささのほうが先立ってしまう。
https://anond.hatelabo.jp/20240817215752
興味深い増田だったのだが良く分からない点があったので書く。なお本文章は山田太郎議員を擁護する意図を持たないが、結論としては「ワード規制を行わないと言質を取ったこと自体は、やはり暫定的に正解だったのではないか」になってしまうこと御了承頂きたい。もちろん私の書いていることが全部間違っててトンチンカンな可能性はある。
まず元エントリは(うがった読み方で恐縮だが)CSAMなら自動的、いっそ自然現象的に止められるようにも読めてしまうが、それは違う。誰かが声を挙げなければどんなCSAM(か何か)でも野放しにされてしまう。
だからある人は声をあげ、またある人や組織は声をあげられる面倒を怖れて自発的に規制する。空気や忖度(この言葉は好きではないが)、大企業が勝手にびびるのもGoogleがなんか言い出すのも、「現実的には野放しになるわけねーだろ」も、立派な「声の結果」なのだ。
言い換えれば、VISAだろうがアクワイアラーだろうがなんだろうが堂々と「fanzaやDLsiteはCSAMを扱いまくってるので抑圧します!」といくらでも公言していいはずなのだ。人を助けたり守ったりすることの一体何が問題なのか。もちろんVISA本社はやってないんだから公言もクソもないだろというのが正解なのだろうが、だとすれば誰が具体的に声を挙げた(あるいは架空だが重要な声をおそれた)のか。
とらのあなの例では『決済会社様より』と、VISA本社ではないにしてもプラットフォーマー側から文句が来たことは明言されている。だから我々が本当に要望しなければいけないのは、『犯罪とみなす基準を変えろ、である。』ではなく、『お前らのやってることは犯罪だから諦めろ、という主張を、隠さずきちんと署名入りで公言してほしい。』ということなのだ。生活や尊厳のために匿名性を必要とする個人や集団なら、そのような暴きは許されない場合も多く強くあろうが、クレジットカード関連のプラットフォーマー側企業なら署名入りでいいはずだ。
結果としてホッブズ的なつまらん万人泥試合が起きるかもしれないが、本来「話し合おう」とか「相互理解」とか「対話を拒否するな」ってそういうものである(そして繰り返すが相手は企業であり人間ではない。人間の集合体ではあるにせよだ)。まあ単に理念面ではなく実装面で難しいということもありそうだが(なんせクレカでお金を直接やりとりする界隈なれば、守秘義務はいろいろ大変だろう)。
もうひとつ気になったのは、CSAM(か何か)の具体的な抑圧方法についてこそ、ワード規制が十分有効と思われていることである。思われているってまあ私とかその辺のオタクが勝手に思っているだけかもしれないが、少なくとも「あいつらワード規制してるに違いねえ!」と推測(あるいは誤解)するに至った経緯ははっきりとある。DLsiteの用語言い換え問題だ。
https://www.itmedia.co.jp/news/articles/2403/27/news095.html
元エントリの例えと推測を借りて言えば、DLsiteは「コカインを”雪だるま作ろう”に、LSDを”TB-303なかよし”に……と淫語じゃなかった隠語に置き換えればなんとかセーフでは?」とあくせく努力していた訳だ。そもそもそういう手段に至ったことからも、ワードとCSAM等が密接に関連していた(あるいはDLsiteがそのように勝手に判断する事情が生じた)ことは伺える。
そもそも、あるコンテンツや表現がCSAMやそれに類する要規制表現であると——どちらかといえば理念より実装的レイヤーの話として、また基準が甘くなる売り手側ではなく厳しくあるべき規制側として——断定するにはどうするのか。いちいち一個ずつ動画やCG集を開いて確認するのか。確認者の価値観や倫理観(あと健康)はどう担保するのか。もちろん世の規制や確認には、マジで人力頼みでやってるケースがかなりあるそうだし(本当に健康を崩す人もいるという)、これをAIに代替させようという話は(2024年8月現在の日本国内では)実例あろうともまだまだ発展途上で「話を逸らすな」になる。
確実性はある程度妥協するとして、素早くCSAMっぽいものを一網打尽にするにはどうすればいいのか。というとやはりタグ、タイトル、それらに紐づく検索性……言葉を狩るのがもっとも効率的だろう。素早く、というのは社会に於いてクソ大事であり、表現で傷つく人を一刻でも早く助ける必要もあれば、その辺の暗黒メガコーポ風情の株価が分単位で傷つけられるのを防ぐ必要もある。
以上から、とりあえず心当たりのあるところ、のそれも上位から、「お前ワード規制した?」と聞きに行くこと自体は、そこまで無意味やナンセンスではないと考える。二次元CSAMが規制されて当然というのなら(まあ当然っちゃ当然だとは思う。程度問題に留めたいところだが)、堂々と「この基準と理由により我々が規制してやりましたぁ!!!」と首を獲った旨叫べばいいのであり、そうでないから我々オタクが「えー、基準が不明瞭ですと、CSAM以外の表現の自由も危ういのであり……」などとダラダラと騒いではいるのだ。
山田太郎「VISAの本社に突撃したった!ちょっとお話して既に分かっている事言われたった!」
DL.Getchu.com「VISAカード使えるようになったよー」
ネトウヨ「!!!!!!!。こ、これは!山田太郎先生の成果に違いない!!流石山田太郎!!俺達の山田太郎!!!次の選挙も山田太郎!!!!こういう事してくれるから山田太郎が議員で良かったんだよな(眼鏡クイッ)」
VISA「DL.Getchu.comは要求に対応したから使えるようにしただけだぞ」
DL.Getchu.com「VISAさんからの要求に従いアウトな商品を削除したのでVISAカード使えるようになっただけですが?山田太郎?誰それ?」
【重要なお知らせ】Getchu.com 掲載商品の取扱中止対応についてのお詫び
https://www.getchu.com/getchu/news20240425001.html
いつもGetchu.com通販をご利用いただき、誠にありがとうございます。
現在、Getchu.com内の取扱商品についてクレジットカード会社からの要請により、
ネトウヨ「・・・う、嘘だ!!これは山田太郎の成果なんだ!!!」
DLsite・FANZA「じゃあなんで俺達は再開されないの?」
ネトウヨ「うわぁああああああああ!!!都合の悪い事を言うな!!!都合の悪い事言うやつはパヨク!!!俺は悪くない!間違ってないぃいいい!!!!」
そうだネトウヨ
それでもと言い続けろ
自分を見失うな
どれだけ笑われても馬鹿にされても
それでも山田太郎の成果と言い続けろ
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数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装はしません。
私は熟女モノとか人妻モノは眼中にないのですが、なぜだか最近そっち系の作品が多くて閉口しています。
しかし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を登録して、閲覧中のページ上で自分(やほかの誰か)が作ったプログラムを実行できるしくみのことです。普通のブックマークと同じようにブックマークバーなどに並べておいて、クリックひとつで呼び出すことができて便利です。
①まず、どこのページでもいいので(今読んでいるこのページでもよい)ブックマークをひとつ作り、ブックマークバーなどの呼び出しやすいところに置きます。
②できたブックマークを右クリックして「編集...」を選びます。
③「名前」欄は、自分にわかりやすい名前に変更します。でも「FANZAフィルター」などあけすけな名前をつけると、誰かに画面を覗かれた時に困りますよ。
④「URL」欄に、上記したプログラムコードを入力します。ただし上記のコードは私向けのキーワード選定になっていますので、ご自身の好みに合わせたキーワード選定をしていただければよいかと思います。/単語1|単語2|単語3/
のように記述してください。
ふつうのソースコードと、改行・インデントなどを省いてミニファイ(最小化)したもの、どちらをコピペしても大丈夫です。
⑦このブックマークレットを起動します。すると、瞬時に検索結果が減ります。
キーワードだけが異なる複数のブックマークレットを登録しておいて、場面に応じて使い分けるなどの工夫もできるでしょう。
上記のスクリプトが何か悪さをするようなものではないことを説明するために、また、JavaScript を学習し始めたばかりの人のために、このシンプルなスクリプトの解説をします。
javascript:
URLの種類を示すスキーム名です。一般的なURLは https:
や 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
はキーワードの羅列ですので、テキストの一部にキーワードのどれかが含まれていたら一致したことになります。