残像ブログ

残像だった

ユーザCSSでpixivの特定ユーザの画像を非表示にするナンチャッテNG機能

2013/2/9:pixivの改装にあわせてユーザスクリプトを修正

pixivではユーザの投稿した画像のURLにユーザIDが含まれているので、CSSで特定ユーザのイラストを非表示にすることができます
大量に登録するにはあまり効率よくないと思います。
Firefox3.6での動作を確認しています。

@-moz-document domain("www.pixiv.net") {
  img[src*="/ユーザID/"] ,   /*複数指定する場合はカンマ(,)で区切る*/
  img[src*="/ユーザID/"] ,   
  img[src*="/ユーザID/"]    /*最後の行にはカンマをつけない*/
  {
    display: none !important;
  }
}

上記コードの「ユーザID」の部分に非表示にしたいユーザのユーザIDを書けばOK
カンマで区切れば複数指定できます

ユーザIDを調べるにはそのユーザのスタックフィードのURLを見るのが手っ取り早いと思います
pixiv公式アカウントの場合なら

http://www.pixiv.net/stacc/pixiv

というURLですが、このURLのstacc/より右の英数字がユーザIDです
この例なら「pixiv」がユーザIDになります

指定するときはimg[src*="/pixiv/"]のように必ずユーザIDの両端に/をつけてください
つけないと意図しないユーザを非表示にしてしまう可能性があります
img[src*="/pixiv/"]は「URLに『/pixiv/』を含む画像を対象にする」という意味なので
img[src*="pixiv"]とした場合URLに『pixiv』を含む画像が対象になり、恐らく全てのユーザの画像が見えなくなると思います

私は一々スタックフィード見たりするのがめんどくさいので、下記のユーザスクリプトで、プロフ画像下部にユーザIDが表示されるようにしています。

もっといい方法があると思うんですが、Javascriptは良くわからず

// ==UserScript==
// @name           pixiv
// @namespace      test
// @include        http://www.pixiv.net/*
// @grant          none
// ==/UserScript==

//プロフィール画像を取得
var getID = document.getElementsByClassName('user-image')[0];
//画像srcを抽出
var userID = getID.src;

//画像がデフォルトか判定
if (userID == "http://source.pixiv.net/source/images/no_profile.png"){

	//スタックフィードのリンクを取得
	//ユーザメニュー内の4番目のリンクURLを取得
	getID = document.getElementsByClassName('tabs')[0].getElementsByTagName('a')[3];
	//リンクからURLを取得
	userID = getID.href;
	//URLからIDを抽出
	var SrcNum =userID.indexOf("/stacc/");//切り取り開始位置特定
	userID = userID.slice(SrcNum + 7);//切り取り実行
}else{
//画像がデフォルトでないなら画像srcを使う
	var SrcNum =userID.indexOf("/profile/");
	userID = userID.slice(SrcNum + 9);
	SrcNum =userID.indexOf("/");
	userID = userID.slice(0,SrcNum);
}

//cssを追加 11/7/14 ADD
userID= "  img[src*=\"/" + userID +"/\"],";

//テキストエリアを作成
var CopyID = document.createElement("input");
CopyID.type="text";
//ユーザIDを表示
CopyID.value= userID;
CopyID.setAttribute("onclick", "CopyID.select();");

//テキストエリアを挿入
var objBody = document.getElementsByClassName('user-relation');
var title_node = objBody[0];
title_node.appendChild(CopyID);