// ==UserScript==
// @name Show Artist Pixiv ID
// @namespace https://greasyfork.org/en/users/37676
// @description Show Pixiv ID of the artist under nickname
// @match *://*.pixiv.net/member.php*
// @match *://*.pixiv.net/member_illust.php*
// @match *://*.pixiv.net/bookmark.php*
// @match *://*.pixiv.net/mypixiv_all.php*
// @match *://*.pixiv.net/stacc/*
// @match *://*.pixiv.net/*/artworks/*
// @run-at document-end
// @version 1.0.7.2
// @grant none
// @license Creative Commons Attribution 4.0 International Public License; http://creativecommons.org/licenses/by/4.0/
// @downloadURL none
// ==/UserScript==
var pageObserver = null;
var userAccountName = null;
var userID = null;
var userName = null;
var elementUserProfile = document.querySelector('._user-profile-card');
if (elementUserProfile)
{
var elementNickname = elementUserProfile.querySelector('.user-name');
if (elementNickname)
{
var columnHeader = document.querySelector('.column-header');
if (columnHeader)
{
var stacc = columnHeader.querySelector('a[href*="stacc"]');
if (stacc.href)
{
var arraySplit = stacc.href.split('/');
elementNickname.innerHTML += '
'+arraySplit[arraySplit.length-1];
}
}
}
}
else
{
var illustObj = document.querySelector("#meta-preload-data").content;
if (illustObj)
{
illustObj = JSON.parse(illustObj);
if (illustObj)
illustObj = illustObj.illust;
}
if (illustObj)
{
for (var obj in illustObj)
{
if (illustObj[obj])
{
userAccountName = illustObj[obj].userAccount;
userID = parseInt(illustObj[obj].userId);
userName = illustObj[obj].userName;
if (userAccountName && userID && userName)
break;
}
}
}
if (userAccountName && userID && userName)
{
if (!pageObserver)
{
pageObserver = new MutationObserver(function(mutations) {
/*
var profileElement = document.querySelectorAll('a[href*="member.php?id='+userID+'"]:not([style*="background-image"])');
if (profileElement.length > 0)
{
profileElement = profileElement[profileElement.length-1];
//pageObserver.disconnect();
//profileElement.innerHTML += '
'+userAccountName;
if (profileElement.innerHTML.indexOf(userName) > -1)
{
if (profileElement.innerHTML.indexOf(userAccountName) < 0)
profileElement.innerHTML += userAccountName;
}
}
*/
var profileElement = document.querySelectorAll('a[href*="/users/'+userID+'"]');
if (profileElement.length > 0)
{
for (var i=0; i < profileElement.length; i++)
{
var imageElement = profileElement[i].querySelectorAll('div[role*="img"]');
if (imageElement.length > 0)
{
for (var j=0; j < imageElement.length; j++)
{
var parentElement = imageElement[j].parentElement;
if (parentElement)
{
var nextElement = parentElement.nextElementSibling;
if (nextElement)
{
if (nextElement.innerHTML.indexOf(userAccountName) < 0)
{
if (parentElement.innerHTML.indexOf(userName) < 0)
nextElement.innerHTML += userName+'
';
nextElement.innerHTML += userAccountName;
}
}
}
}
}
}
}
});
pageObserver.observe(document.querySelector('#root'), {
childList: true,
subtree: true
});
}
}
}