Vkontakte: quick remove your tag from photo
By kolen
—
Last update May 19, 2008
—
Installed
742 times.
// 2008-05-20
//
// ==UserScript==
// @name Vkontakte: quick remove your tag from photo
// @namespace http://schmerz.ru/
// @description Remove yourself from photo with single click
// @include http://vkontakte.ru/photos.php*
// ==/UserScript==
function removeLinkClick() {
var showPageUrl = this.parentNode.getElementsByTagName('a')[0].getAttribute('href');
var objThrobber = document.createElement('img');
objThrobber.setAttribute('src', 'http://vkontakte.ru/images/progressbar.gif');
objThrobber.style.border='none';
this.parentNode.replaceChild(objThrobber, this);
GM_xmlhttpRequest({
method: 'GET',
url: 'http://vkontakte.ru/'+showPageUrl,
onload: function(response) {
var showPageContent = response.responseText;
var removeTagMatches = showPageContent.match("onclick=\"return removeTag\\(([0-9]+), '([0-9_]+)'\\)\">");
GM_xmlhttpRequest({
method: 'POST',
url: 'http://vkontakte.ru/photos.php?act=put',
headers: {
'Referer': showPageUrl,
'Content-type': 'application/x-www-form-urlencoded'
},
data: 'tag_id='+removeTagMatches[1]+'&pid='+removeTagMatches[2],
onload: function(response) {
objThrobber.parentNode.getElementsByTagName('img')[0].style.opacity = 0.2;
objThrobber.parentNode.removeChild(objThrobber);
},
onerror: function(response) {
alert("Error: "+response.statusText);
}
});
},
onerror: function(response) {
alert("Error: "+response.statusText);
}
});
}
function addRemoveLinkToList() {
var xpathResult = document.evaluate('//a[starts-with(@href,"photos.php?act=show")]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
for (var i=0; i<xpathResult.snapshotLength; i++) {
var objA = xpathResult.snapshotItem(i);
var objA_href = objA.getAttribute('href');
var objRemove = document.createElement('a');
objRemove.innerHTML = "Удалить";
objRemove.setAttribute('href', 'javascript:;');
objRemove.style.display='block';
objRemove.addEventListener('click', removeLinkClick, true);
if (window.opera) { objCloseBtn.onclick = removeLinkClick; }
objA.parentNode.appendChild(objRemove);
}
}
function addRemoveLinkToSingle() {
var objRotating = document.getElementById('rotating');
var objRemoveMe = document.createElement('a');
var xpathResult = document.evaluate('//a[starts-with(@onclick,"return removeTag")]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
if (xpathResult.snapshotLength > 0) {
var objRemoveFound = xpathResult.snapshotItem(0);
objRemoveMe.setAttribute('onclick', objRemoveFound.getAttribute('onclick'));
objRemoveMe.innerHTML = "Удалить меня";
objRemoveMe.setAttribute('href', '#');
objRotating.appendChild(objRemoveMe);
}
}
function getUID() {
var m = document.cookie.match('remixmid=([0-9]+);');
if (!m) return 0;
return m[1];
}
if (window.location.href.match('.*photos.php\\?act=(added|user).*')) {
var m = window.location.href.match('.*id=([0-9]+).*');
if (!m || getUID() == m[1]) {
addRemoveLinkToList();
}
} else if (window.location.href.match('.*photos.php\\?act=show.*')) {
addRemoveLinkToSingle();
}