
はてなキーワード:NGワードとは
はてなブックマークや増田で機能する、NGワードを元に記事を非表示にする方法をまとめました。
現在も機能する方法という観点で調べてみましたが、有力な抜け漏れがあったら教えてください。
ChromeとFirefoxの拡張で、はてなブックマークに有効。デフォルトで非表示になるサイト多数あり。AndroidならFirefox版が動くかも。
はてブの記事を、キーワードやURL でミュートするChrome拡張を作った (はてなミュート)
[はてブ]uBlockOriginで特定のエントリーを隠す方法のメモ
増田でuBlockOriginを使って特定の単語を含むエントリーを隠す方法のメモ
広告ブロック uBlockOrigin を使っている場合に活用できる。同Lite 版でも「カスタムフィルター」機能を使って対応できる。はてなブックマークだけでなく増田にも有効。面倒だろうけどAndroidならFirefox版が動くかも。
Tampermonkeyなどのユーザースクリプトを適用する拡張と共に、またはブックマークレットとして使う。はてなブックマークの増田一覧にだけ有効。スマホの場合アプリでは動かないが、面倒だけどブラウザでは動く※。キーワードはノイズとなりやすいユーザーを中心に常時メンテナンス中。
[増田しぐさ]増田CSSを紹介する記事(英文スパム対策付き)
Stylusなどのスタイルシートを適用する拡張と共に使う。増田にだけ有効。面倒だけどスマホでも動く。スパム対策はビジネスや詐欺のURLを中心に常時メンテナンス中。
※スマホでのユーザースクリプトの動かし方
https://chatgpt.com/share/6936aa6a-e2dc-800f-ab39-021d68a25b87
検索用:はてなブックマークはてブはてな匿名ダイアリー増田スパムキーワードNGワードフィルタミュート非表示 削除 隠すブロックユーザースクリプトユーザースタイルhatenabookmarkanondspam keywordsngwords filter mutehide hidden display none block userscriptJavaScriptjscss style
はてなブックマークの増田一覧の、さらに「すべて」(1user)をチェックしている希有な人向けのユーザースクリプトを公開します。
https://b.hatena.ne.jp/site/anond.hatelabo.jp/?sort=eid
// ==UserScript==// @nameHatenaBookmarkAnond Filter// @namespacehttps://b.hatena.ne.jp/site/anond.hatelabo.jp/// @descriptionはてなブックマークの『はてな匿名ダイアリー』の記事のうち、指定したキーワードが含まれる投稿を非表示にします。// @matchhttps://b.hatena.ne.jp/site/anond.hatelabo.jp/*// @grant none// @version 1.0.2025.12.10.0005// ==/UserScript==(function(){constSCRIPTID = 'HatenaBookmarkAnondFilter';console.time(SCRIPTID);const ONCE = 1,AP = 2, INTERVAL = 3;/*適用タイミング*/const KEYWORDS = [ 'dorawii', 'あおやまちゃん', 'ボスマン', 'れめくん', '自己放尿', '性慾', 'boushi_inst', 'hakaikami',/*電気通信大学駿河台大学鉄道研究会れめくん自己放尿(頻出)*/ /*A-G*/'/akibakko6348', '/anapgoeson', '/asapgoeson', '/buscholarx', '/circlecavok', '/disney1007cla', '/dora22sibuya', '/donkotrain', '/fft_dareka', '/gmhtcyznf_abc', /*H-N*/'/h13_yokohama', '/h2twi', '/hinolovelove', '/inaken17_', '/inte235dy', '/kaoru_ai1991', '/kiha2228', '/kqlex1500', '/kurotamaxxx', '/kt_ruma_1372', '/lightningreen77', '/minamihinawot', '/minori0151', '/mukoroku651', '/nanpyong', '/nimouec', '/norannnde', /*O-U*/'/oreizmmiporin', '/pasotokon', '/pm95uq', '/reme_kun', '/s03_amurtk2731', '/sacchan03110319', '/seisu_bot', '/senanana_cos', '/shinano_115', '/shineleaf1372', '/soroisoroi', '/sweidan821858', '/tarotaromusic1', '/tx9y2cpwdz27255', '/uec15take', '/uecrail', /*V-Z_0-9*/'/wakasato_', '/yuuya_1104_uec', '/100mph_no_yuuki', '/2rtkvn34il2783', /*tadaup.jp*/'/CBUHadpD.jpeg', '/CgJlF4Wr.jpeg', '/CGTtm0Ev.jpeg', '/CIxj8clS.jpeg', '/CqbERPdQ.jpeg', '/CTZsA2wM.jpeg', '/CWY2m7rS.jpeg', '/CZVCEgd1.jpeg', 'テクウヨ', ].map(w => w.toLowerCase());const sites = { 'prefix': [ ['selector', 'modifier', 'REPEAT', '(css)'], ], 'https://b.hatena.ne.jp/site/anond.hatelabo.jp/': [ ['li.js-keyboard-selectable-item', li => KEYWORDS.some(w => (li.textContent.toLowerCase().includes(w)) && (li.querySelector('li.entrylist-contents-category > a').textContent = w) && (!li.classList.add('filtered'))),AP, `.filtered{display: none;}`], ], };const rules = sites[Object.keys(sites).find(prefix => location.href.startsWith(prefix))]; if(rules === undefined) returnconsole.log(SCRIPTID, 'Not foundany sites.');const modify = function(selector, modifier){constelements = document.querySelectorAll(selector);elements.forEach(modifier); }; /* ONCE(一括適用) */ rules.forEach(rule => {const [selector, modifier, repeat,css] = rule;console.log(SCRIPTID, 'ONCE:', selector); modify(selector, modifier); if(css){const style = document.createElement('style'); style.dataset.script =SCRIPTID; style.type = 'text/css'; style.textContent =css; document.head.appendChild(style); } }); /*AP(AutoPagerize) */ rules.filter(rule => rule[2] ===AP).forEach(rule => {const [selector, modifier, repeat] = rule; document.addEventListener('GM_AutoPagerizeNextPageLoaded', e => {console.log(SCRIPTID, 'AP:', selector); modify(selector, modifier); }); }); /* INTERVAL */ rules.filter(rule => rule[2] === INTERVAL).forEach(rule => {const [selector, modifier, repeat] = rule; setInterval(function(){console.log(SCRIPTID, 'INTERVAL:', selector); modify(selector, modifier); },1000); });console.timeEnd(SCRIPTID);})();
検索用:はてなブックマークはてブはてな匿名ダイアリー増田スパムキーワードNGワードフィルターミュート非表示 削除 隠すブロックユーザースクリプトユーザースタイルhatenabookmarkanondspam keywordsngwords filter mutehide hidden display none blockuserscriptJavaScriptjscss style
https://b.hatena.ne.jp/site/anond.hatelabo.jp/?sort=eid
const KEYWORDS = [ 'dorawii', 'あおやまちゃん', 'ボスマン', 'エーブイ',//イーブイ(完結したらしいので不要?) 'れめくん', '自己放尿', 'boushi_inst', 'hakaikami',//電気通信大学駿河台大学鉄道研究会れめくん自己放尿(頻出) /*A-G*/'/akibakko6348', '/anapgoeson', '/asapgoeson', '/buscholarx', '/circlecavok', '/disney1007cla', '/dora22sibuya' ,'/donkotrain', '/fft_dareka', '/gmhtcyznf_abc', /*H-N*/'/h13_yokohama', '/h2twi', '/hinolovelove', '/inte235dy', '/kaoru_ai1991', '/kiha2228', '/kqlex1500', '/kurotamaxxx', '/kt_ruma_1372', '/lightningreen77', '/minamihinawot', '/minori0151', '/mukoroku651', '/nanpyong', '/nimouec', '/norannnde', /*O-U*/'/oreizmmiporin', '/pasotokon', '/pm95uq', '/reme_kun', '/s03_amurtk2731', '/seisu_bot', '/shinano_115', '/soroisoroi', '/tarotaromusic1', '/tx9y2cpwdz27255', '/uec15take', '/uecrail', /*V-Z_0-9*/'/wakasato_', '/yuuya_1104_uec', '/100mph_no_yuuki', '/2rtkvn34il2783', 'テクウヨ', ];
みんなも各々対策してるのかな?
検索用:スパムキーワードNGワードspam KEYWORDS NGWORDS
anond:20251208175027 と連動させることができます。(ただし新着ブクマ(b.hatena.ne.jp)ではなく増田(anond.hatelabo.jp)が対象です)
2025-12-09キーワードの更新はanond:20251209224022 に移行します。
ChatGPTちゃんに
プロデューサーでもあり美食家の秋元康さんことやすすが初めてビリヤニを食べてその味に感動して
DJおみそしるとMJごはんさんの手法に則ってビリヤニ作り数え歌を作ってその曲名がビリヤニになった直球曲?って尋ねたら、
それは絶対ない!違う!と、
こればっかりは肯定的に乗っかってくれないハッキリとものを言うChatGPTちゃんにジワジワくるわ。
ねえAがいい?それともBがいい?って尋ねるとだいたいは
「うーん、AもいいですがBもいいですな!」って
どっちつかずなこと言いがちな感じのChatGPTちゃんだったけど、
この曲名ビリヤニがビリヤニ作り数え歌の可能性は?ってことに関してはスバリ可能性はゼロです!って言うのよね。
なんかこれ相当ビリヤニ界隈盛り上がっているんじゃないかしら?って思う反面、
交差する運命をスパイスが絡み合って美味しく仕上がったビリヤニに例えている恋愛模様を歌っているのか?
それとも、
初恋の人の香りがもう別れてしまったけどふと立ち寄ったインドレストランで食べたビリヤニの香りで思い出す初恋思い出しソングなのか?
安直に複雑に絡み合う何かの人の人生だとか恋模様だとかをスパイスになぞらえて比喩しているとしても
これ安直じゃない?
やすすはそんなことするのかしら?
って私はもちろんやすすのことを何一つ知らないし、
坂ごとでコンセプトが違うって言うし、
坂同士の移籍とかもないって言うじゃない。
やすすが坂メンバーのメンタルが落ち込んでいるときに屋上でアイスクリームを一緒に食べることも絶対にないってChatGPTちゃんそう言っていたわ。
それに私ほとんど言うか坂界隈のことは知らなかったので、
総勢何人いんのよ?ってのもあるじゃない。
これ熱心なファンの人はエクセルでメンバーの今日どの番組に出る!ってかそう言うのを記している人もきっといそうじゃない?
私はそんなビックコンテンツに今から取りかかることができないわ。
あまりにも乃木坂46ってそういういわゆる坂系ってコンテンツ覆いすぎるわ!
そんで、
でもさビリヤニって曲は聴いてみたいじゃない?
インターネッツで調べたら、
全く私の未知の領域に曲1つだけなのにそんなに種類バージョンエディションあんの?って腰を抜かしてしまったわ。
SKU46!って
そのぐらい冗談抜きで
種類が多かったので
よく分からないから配信で1曲でたらこっそり買ってみると目論んでいるところよ。
「ビリヤニ」って曲名を掲げていて40枚目のシングルって結構節目じゃないの?
そこでビリヤニってやっぱりこれハードル上げすぎなんじゃない?
これが例えビリヤニ作り数え歌だったら?
乃木坂のメンバーがビリヤニ屋さんを開店のオープンするってそっちに舵を切っていったら?
もうとにかくビリヤニのことで頭がいっぱいよ。
なんか急に最近ビリヤニのランチの発注が多くてどうしたんだろう?って首をかしげているかもしれないわ。
インド系楽器やインドネパール辺りの地名にそしてスパイス名は絶対に歌詞に入れられないNGワードよね?絶対に。
槇原敬之さんよりも言わないよ絶対に!ってより絶対感がマックスだと思う!
しかも
ビリヤニって
とはいえビリヤニ界隈の琴線に触れさせるには数があまりにもビリヤニ好き人口が少なすぎるニッチだし
ビリヤニ層をがっさりいくっていっても、
ターゲットとしてもそこ狙うの変わよね?
さんざんビリヤニって言っておいて、
ChatGPTちゃん何かの拍子でそうですね!って全然賛成言ってくれない
ビリヤニ作り数え歌ではないことは確実みたいよ。
ビリヤニ注文する人を見ては、
あなた乃木坂のファンなのね?って思われるのもなんか普通のビリヤニ好きとしてはそう思われるのかな?ってこれは考えすぎよね。
まったくもって謎過ぎるわ。
いったいどうなるのかしら?
うふふ。
ツナ美味しいわよね。
そんな変なツナサンドイッチは最近見かけないわよね本当に美味しくなったものね。
作りたてはホッツで作っておいたけれど
その後は粗熱とって常温のままではいかないので、
さすがに寒くなってきたので思いっ切り冷えたウォーラーは寒くて身体冷えちゃいそうな、
もう一気に気温が下がってきてるわよね。
こういう季節の切り替え変わる瞬間に人は風邪引くので
いつもより慎重に暮らさないといけないわね。
みんなも気を付けて!
すいすいすいようび~
今日も頑張りましょう!
○○マルアールは~の登録商標です、という書き方の頭の悪さよ。
ヒント:重言
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250930181442# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaNufgwAKCRBwMdsubs4+SHP/AQDKokzWpNlyHGbp0TlDN4PqG5sd/iw0gSgOiiZzxMjuCgEAzrEnuqbqsP0bFa0V4leBMNzDo1CiKKn48hHFwiJ5Pgk==e1Lj-----ENDPGP SIGNATURE-----
モヤる気持ちわかります。Togetterやはてブは「早い反応」と「見出し勝負」が強く、煽りっぽいタイトルほど跳ねやすい土壌があります。とはいえ、全部を一緒くたにしても消耗するだけなので、「誰にどう読まれたいか」を決めてコントロールするのが一番ラクです。
狙いを「建設的に読んでほしい」に寄せるコツ
もし「釣れそう」と感じている具体的なタイトル案があれば、誤読や炎上の芽を潰す形に言い換え提案します。目的(誰に何を伝えたいか)だけ教えてもらえれば数案出します。
というわけでお漏らし文学をChatGPTに調べてもらった
Lasttime I paid 1€ totake a piss,
I walked into the Sanifair, looked around,
and just…left.
Itwas so disgusting I decided togooutside and search for abush instead.
—Reddit / r/AskAGerman
「1ユーロ払ってトイレに入ったんだけど、あまりに汚すぎてそのまま出てきた。結局、外の藪を探すことにした。」
ドイツ人ですら「お金払って藪で用を足す方がマシ」と言ってしまう悲哀。
URL:れでぃっと r/AskAGerman
I used tosquat when using public toilets.
Thenone day, I slipped.
That day,something inside me died… andsomethingoutside mewas nevercleanagain.
— れでぃっと / r/AskEurope
でもある日、足が滑った。
その日、僕の中の何かが死んだ… そして僕の外側も、二度と綺麗にはならなかった。」
もう「しゃがむ」という選択肢すら許されない。
InBelgium, there’s an unwritten rule.
he silently handsyou the bathroomkey.
you find a darkcorner of the street instead.
—Blog post “Theart ofle pee inBelgium”
バーの店主に1ユーロ渡すと、無言でトイレの鍵を渡してくれる。
観光都市ブリュッセルでも、路上で立ち尽くす影が絶えない理由。
URL:saintfacetious.com
All cafés were closed,all public toilets locked.
I stumbled along the riverbank,
In the end, the Seinesaweverything.
— れでぃっと / r/Paris
「深夜1時、セーヌ川沿い。
ワインと後悔で酔った体を引きずりながら歩き、
パリの夜は美しく、そして容赦ない。
観光客だけでなく、現地の人すらこうなることがある。
Iwas in Bilbao, desperate to pee before thematch.
I ran intoone of those self-cleaning toilets…
and then thecleaningcyclestarted
僕は全身びしょ濡れになって出てきた。」
水と泡まみれで出てきたマンチェスター・ユナイテッドファン。
In Amsterdam, we had thesehalf-open urinals called ‘peecurls.’
They were meant to stop men from peeing in the canals.
Now they’re disappearing…
and the canals smelllikehistoryagain.
「アムステルダムには、半分だけ壁のある露天トイレ『peecurl』があった。
でも今はそのpeecurlも減り、
I haveMS.
Since the public toilets closed,
Last month, I didn’tmakeithome intime.
I cried, then laughed, then stayed inside for a week.
— The Guardian読者投稿
「私は多発性硬化症です。
先月、家に帰る前に間に合わなくて…
URL:The Guardian
まあまあだな、また探す
____
webサービスのほうでブロック機能を用意してほしい所ですが、実際のところ期待できないというのが正直なところです。
また、サービス毎にブラウザ拡張を用意するのも、それはそれで面倒だし複雑なので、uBlockOriginのマイフィルターでブロックできるようにしてみました。
! 2025/00/00https://news.yahoo.co.jp
! 2025/00/00https://b.hatena.ne.jp/
b.hatena.ne.jp##.entrylist-contents:has-text(/堀江貴文|ホリエモン|西村博之|ひろゆき/)
b.hatena.ne.jp##.entrylist-contents:has(a:is([href*="anond.hatelabo.jp/"], [href*="togetter.com/"]))
! 2025/00/00https://www.youtube.com/
! [YouTube]TitleKeyword Filter
youtube.com##:is(ytd-rich-item-renderer, ytd-video-renderer, ytd-compact-video-renderer, ytd-grid-video-renderer, ytd-playlist-panel-video-renderer):has-text(/堀江貴文|ホリエモン|西村博之|ひろゆき/)
youtube.com##:is(ytd-rich-item-renderer, ytd-video-renderer, ytd-compact-video-renderer, ytd-grid-video-renderer):has(#channel-name:has-text(/堀江貴文|ホリエモン|西村博之|ひろゆき/))
昨日一番肝心なファイルなのにURLとみなされる部分が多いことの関係で投稿できなかったのでそれを小分けにして書く。
小分けというか例のスパムの影響でNGワードに引っかかっていたようなのでそこだけ書き換えた。
suuportと書いていある部分は元のコードでは当然uが一つ少ないので利用するときはそうすること。
fromselenium importwebdriver
fromselenium.webdriver.chrome.options import Options
fromselenium.webdriver.chrome.service import Service
fromwebdriver_manager.chrome importChromeDriverManager # ← 追加
fromselenium.webdriver.common.by importBy
fromselenium.webdriver.suupport.ui importWebDriverWait
fromselenium.webdriver.suupport import expected_conditionsasEC
importtime,json
fromselenium.common.exceptions importTimeoutException
class HatenaClient:
def __init__(self, username,password):
self.username = username
self.password =password
self.driver = None
def start_browser(self):
options = Options()
options.set_capability("goog:loggingPrefs", {"browser": "ALL"})
options.add_argument("--headless=new") # 開発中は消してよい
options.add_argument("--disable-gpu")
# ✅webdriver-manager を使ってChromeDriver を自動取得・設定
service = Service(ChromeDriverManager().install())
self.driver =webdriver.Chrome(service=service, options=options)
deflogin(self):
self.driver.get("https://b.hatena.ne.jp/my")
print(self.driver.current_url)
self.driver.get("https://www.hatena.ne.jp/login")
time.sleep(2)
self.driver.find_element(By.NAME, "username").send_keys(self.username)
self.driver.find_element(By.NAME, "password").send_keys(self.password)
self.driver.find_element(By.XPATH, "//button[contains(text(), 'ログイン')]").click()
WebDriverWait(self.driver,10).until(lambda d: "my" in d.current_url or "login" not in d.current_url)
if "passkeys" in self.driver.current_url:
self.driver.get("https://b.hatena.ne.jp/my")
print(self.driver.current_url)
print(self.driver.title)
return "dorawii" in self.driver.current_url
defadd_bookmark(self, target_url):
self.driver.get(f"https://b.hatena.ne.jp/{self.username}/add.confirm?url={target_url}")
time.sleep(2)
try:
#コメントがあれば入力
comment_box = self.driver.find_element(By.CSS_SELECTOR, "textarea.bookmarkadd-comment-form")
comment_box.clear()
comment_box.send_keys("わしが書いた")
#登録ボタンを押す
save_button = self.driver.find_element(By.CSS_SELECTOR, "input.bookmarkadd-submit-btn")
save_button.click()
time.sleep(2)
returnTrue
except Exceptionas e:
print(f"Bookmark failed: {e}")
returnFalse
def quit(self):
self.driver.quit()
-----BEGINPGP SIGNEDMESSAGE-----
Hash: SHA512
https://anond.hatelabo.jp/20250822131958#
-----BEGINPGP SIGNATURE-----
iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKfv9AAKCRBwMdsubs4+
SE26AQCkpJE4RdUbFIDIJjOunjFYRQ34zdS1cqV7IX277S7IPAEAshVE/rD8Ggcr
9UKo5yOY6GNrHGYJJtYTYkn3cySu6AA=
=E4vq
-----ENDPGP SIGNATURE-----