Hatena Space ham topics
@@ -1,19 +1,25 @@
/*
* @title remove spam topics @ Hatena Space
- * @description やっつけだけど、まあまあ消える. see http://a-kuma3.hatenablog.com/entry/hatena_space_backup
+ * @description hidden spam topics on Hatena Space via http://a-kuma3.hatenablog.com/entry/hatena_space_backup
* @include http://space.hatena.ne.jp/*
- * @license MIT License
+ * @contributor a-kuma3 http://let.hatelabo.jp/a-kuma3/let/hLHUy6LimuEc (Fork of)
+ * @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
*/
-(function(){
- var re_spam_title = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/;
- Array.from(document.body.querySelectorAll('ul.board-list [data-topic-type="board"] a, ul.space-top-board-list li a')).forEach(function(e) {
- e.parentNode.classList.remove("hide");
- if (re_spam_title.test(e.title)) {
- e.parentNode.classList.add("hide");
- } else {
- console.log('"' + e.title + '"');
+
+(() => {
+ const spamTitle = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/;
+
+ // support expand/close topics
+ Array.from(document.body.querySelectorAll('.board-list [data-topic-id]')).forEach(topic => {
+ // reset visibility
+ topic.classList.remove('hide');
+
+ const title = (topic.querySelector('a[title]') || {}).title;
+ if (!title || spamTitle.test(title)) {
+ topic.style.display = 'none';
+ return;
}
});
+})();
-}());
/*
* @title remove spam topics @ Hatena Space
* @description hidden spam topics on Hatena Space via http://a-kuma3.hatenablog.com/entry/hatena_space_backup
* @include http://space.hatena.ne.jp/*
* @contributor a-kuma3 http://let.hatelabo.jp/a-kuma3/let/hLHUy6LimuEc (Fork of)
* @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
*/
(() => {
const spamTitle = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/;
// support expand/close topics
Array.from(document.body.querySelectorAll('.board-list [data-topic-id]')).forEach(topic => {
// reset visibility
topic.classList.remove('hide');
const title = (topic.querySelector('a[title]') || {}).title;
if (!title || spamTitle.test(title)) {
topic.style.display = 'none';
return;
}
});
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。