Код: Выделить всё
// ==UserScript==
// @name Steam Web Tools
// @namespace SWT
// @description Add additional links in Steam Store and Steam Community sites.
// @include *steamcommunity.com/id/*
// @include *steamcommunity.com/profiles/*
// @include *store.steampowered.com*
// @version 0.1.4
// ==/UserScript==
(function(window, undefined ) {
var w;
if (typeof unsafeWindow != undefined){
w = unsafeWindow
} else {
w = window;
}
if (w.self != w.top){
return;
}
function init(){
// for profile page
if (unsafeWindow.ajaxFriendUrl) {
// permanent URL
var steamid = unsafeWindow.ajaxFriendUrl.split('/');
steamid = steamid[steamid.length-1];
var el = document.querySelector('#profileBlock');
el.insertAdjacentHTML('beforeBegin', '<div>Постоянная ссылка:<br/><a href="http://steamcommunity.com/profiles/'+steamid+'">http://steamcommunity.com/profiles/'+steamid+'</a><br/><br/></div>');
var AddFriendItem = document.getElementById("AddFriendItem");
var frchk = document.getElementsByClassName('YouAreFriends')[0];
if (AddFriendItem == null && frchk == null){
var AddFriendItemLink = document.querySelector('#rightActionBlock');
AddFriendItemLink.insertAdjacentHTML('afterBegin', '<div class="actionItem" id="AddFriendItem"><div class="actionItemIcon"><a href="steam://friends/add/'+steamid+'"><img src="http://cdn.steamcommunity.com/public/images/skin_1/iconAddFriend.png" width="16" height="16" border="0"></a></div><a class="linkActionMinor" href="steam://friends/add/'+steamid+'">Добавить в друзья</a></div></div>');
}
// links
addLinks([
{
href: 'http://check.csmania.ru/#steam:'+steamid,
icon: 'http://check.csmania.ru/favicon.ico',
text: 'Проверить на Check.CSmania.RU',
},
{
href: 'http://steamrep.com/profiles/'+steamid,
icon: 'http://steamrep.com/favicon.ico',
text: 'Проверить на SteamRep.com',
},
{hr:true},
{
href: 'http://tf2b.com/tf2/'+steamid,
icon: 'http://tf2b.com/favicon.ico',
text: 'Инвентарь TF2B.com',
},
{
href: 'http://www.tf2items.com/profiles/'+steamid,
icon: 'http://www.tf2items.com/favicon.ico',
text: 'Инвентарь TF2Items.com',
},
{
href: 'http://tf2outpost.com/user/'+steamid,
icon: 'http://tf2outpost.com/favicon.ico',
text: 'Трэйды на TF2OutPost.com',
},
{
href: 'http://steammoney.com/userpage.php?id='+steamid,
icon: 'http://steammoney.com/favicon.ico',
text: 'Инвентарь SteamMoney.com',
},
{hr:true},
]);
} // end for profile page
// for invetory page
if (unsafeWindow.BuildHover) {
var BuildHover_old = unsafeWindow.BuildHover;
unsafeWindow.BuildHover = function(){
if(unsafeWindow.g_ActiveInventory.appid == 753){
var item = arguments[1];
if (!item.descriptions.withClassid) {
if(!item.descriptions)
item.descriptions = [];
item.descriptions.push({value:'ClassID = '+item.classid});
item.descriptions.push({value:'<a href="#" onclick="getSubid(event.target,'+item.classid+');return false">Получить SubscriptionID</a>'});
item.descriptions.withClassid=true;
}
if (!item.descriptions.withSubid) {
unsafeWindow.ajaxTarget.descriptions = item.descriptions;
}
}
return BuildHover_old.apply(this, arguments);
}
} // end for invetory page
}
var state = unsafeWindow.document.readyState;
if((state == 'interactive')||(state == 'complete')) // for chrome
init();
else
unsafeWindow.addEventListener("DOMContentLoaded", init,false); //for opera
function addLinks(links){
var out='', link;
for (var i=0; i < links.length; i++){
link = links[i];
if (link.hr) {
out +='<hr/>';
} else {
out += '<div class="actionItem"><div class="actionItemIcon"><a href="'+link.href+'" target="_blank">\
<img src="'+link.icon+'" width="16" height="16" border="0">\
</a></div><a class="linkActionMinor" href="'+link.href+'" target="_blank">'+link.text+'</a></div>';
}
}
document.querySelector('#rightActionBlock').insertAdjacentHTML("afterBegin", out);
}
unsafeWindow.ajaxTarget = {};
unsafeWindow.getSubid = function(target, classid){
unsafeWindow.ajaxTarget.element=target;
document.getElementsByTagName('head')[0].appendChild(document.createElement('SCRIPT')).src='http://v1t.su/projects/steam/class-sub.php?jsonp=setSubID&get=sub&value='+classid;
}
unsafeWindow.setSubID=function(subid){
var str = 'SubscriptionID = ';
if (subid=="0"){
str += 'не известно';
} else {
str += '<a href="http://cdr.thebronasium.com/sub/'+subid+'">'+subid+'</a>';
}
unsafeWindow.ajaxTarget.element.outerHTML=str;
unsafeWindow.ajaxTarget.descriptions[unsafeWindow.ajaxTarget.descriptions.length-1]={value:str};
unsafeWindow.ajaxTarget.descriptions.withSubid=true;
}
if (/store.steampowered.com/.test(w.location.href)){
var CurPage = (w.location.href).split("/")[0];
var AddRegionChangeLink = document.querySelector('#global_action_menu');
CodePart = "(this, 'regionchange_dropdown', 'right', 'bottom', true)";
RegionChange = '<span class="pulldown global_action_link" id="account_pulldown" onclick="ShowMenu'+CodePart+';">Сменить регион</span><div class="popup_block" id="regionchange_dropdown" style="display: none;"><div class="shadow_ul"></div><div class="shadow_top"></div><div class="shadow_ur"></div><div class="shadow_left"></div><div class="shadow_right"></div><div class="shadow_bl"></div><div class="shadow_bottom"></div><div class="shadow_br"></div><div class="iepopupfix"><img class="iepopupfix_img" src="http://cdn.store.steampowered.com/public/images/blank.gif" alt =""></div><div class="popup_body popup_menu shadow_content"><a class="popup_menu_item" href="'+CurPage+'?cc=ru">Россия (RU)</a><a class="popup_menu_item" href="'+CurPage+'?cc=ua">СНГ/Украина (UA)</a><a class="popup_menu_item" href="'+CurPage+'?cc=us">США (US)</a><a class="popup_menu_item" href="'+CurPage+'?cc=fr">Европа/Франция (FR)</a><a class="popup_menu_item" href="'+CurPage+'?cc=uk">Англия (UK)</a><a class="popup_menu_item" href="'+CurPage+'?cc=au">Австралия (AU)</a></div></div>';
AddRegionChangeLink.insertAdjacentHTML('afterBegin', RegionChange);
window.addEventListener("DOMContentLoaded",
function() {
var els = document.querySelectorAll('input[name="subid"]');
var subid, el;
for(var i=0; i < els.length; i++){
el = els[i];
subid = el.value;
el.parentElement.parentElement.insertAdjacentHTML('beforeEnd', '<div>Subscription id = <a href="http://cdr.thebronasium.com/sub/'+subid+'">'+subid+'</a></div>');
}
var res = String(window.location.href).match(/\/(sub|app)\/(\d+)/i);
var gamename = encodeURIComponent(document.querySelector('.game_title_area .game_name .blockbg').textContent.trim());
el = document.querySelector('#main_content > .rightcol');
links = [
{href:'http://steamgamesales.com/'+res[1]+'/'+res[2], icon:'http://steamgamesales.com/favicon.ico', text:'Посмотреть на SteamGameSales.com'},
{href:'http://www.steamprices.com/ru/'+res[1]+'/'+res[2], icon:'http://www.steamprices.com/favicon.png', text:'Посмотреть на SteamPrices.com'},
{href:'http://steammoney.com/?price=up&s='+gamename, icon:'http://steammoney.com/favicon.ico', text:'Искать на SteamMoney.com'},
];
el.insertAdjacentHTML('afterBegin', createBlock('Steam Web Tools', links));
}
,false);
}
// block
function createBlock(title, links){
var out='<div class="block">\
<div class="block_header"><h4>'+title+'</h4></div>\
<div class="block_content"><div class="block_content_inner">';
var link;
for (var i=0; i < links.length; i++) {
link = links[i];
out+='<a class="linkbar" href="'+link.href+'" target="_blank"><div class="rightblock">\
<img src="'+link.icon+'" width="16" height="16" border="0" align="top"></div>'+link.text+'</a>'
}
out+='</div></div></div>';
return out;
}
})(window);