Steam Web Tools - Расширение для браузеров

Программное обеспечение, относящееся к Steam
Сообщение
Автор
Аватара пользователя
Yarito
Капитан
Капитан
Сообщения: 258
Зарегистрирован: 04.11.2009
Поблагодарили: 1 раз
Контактная информация:

#16 Сообщение 24.05.2012, 06:52

VIT писал(а): + Добавленна версия для Google Chrome. Включенно авто-обновление.
Теперь идет поддержка сразу двух браузеров.
Спасибо за Chrome версию, но почему бы не добавить его в ChromeStore? https://chrome.google.com/webstore

Аватара пользователя
Alexander.S
Полковник
Полковник
Сообщения: 2027
Зарегистрирован: 29.04.2010
Благодарил (а): 8 раз
Поблагодарили: 92 раза
Контактная информация:

#17 Сообщение 24.05.2012, 06:55

VIT писал(а):Расширения для FireFox в ближайшее время не планируется.
ну круто, 2 по популярности браузер в мире и не планируется >_<
Изображение

Аватара пользователя
Yarito
Капитан
Капитан
Сообщения: 258
Зарегистрирован: 04.11.2009
Поблагодарили: 1 раз
Контактная информация:

#18 Сообщение 24.05.2012, 07:03

Alexander_S писал(а):
VIT писал(а):Расширения для FireFox в ближайшее время не планируется.
ну круто, 2 по популярности браузер в мире и не планируется >_<
Популярный =\ хороший

Аватара пользователя
Alexander.S
Полковник
Полковник
Сообщения: 2027
Зарегистрирован: 29.04.2010
Благодарил (а): 8 раз
Поблагодарили: 92 раза
Контактная информация:

#19 Сообщение 24.05.2012, 07:07

Yarito писал(а):
Alexander_S писал(а):
VIT писал(а):Расширения для FireFox в ближайшее время не планируется.
ну круто, 2 по популярности браузер в мире и не планируется >_<
Популярный =\ хороший
Чего? Хром и Мозила в мире. Опера только в странах СНГ и то уже давно теряет позиции.
Изображение

Аватара пользователя
bear!
Полковник
Полковник
Сообщения: 1495
Зарегистрирован: 12.02.2011
Благодарил (а): 29 раз
Поблагодарили: 872 раза
Контактная информация:

#20 Сообщение 24.05.2012, 07:26

Хорошая вещь, спасибо.

qazarius
Полковник
Полковник
Сообщения: 1028
Зарегистрирован: 22.11.2008
Благодарил (а): 39 раз
Поблагодарили: 386 раз
Контактная информация:

#21 Сообщение 24.05.2012, 08:35

Вобщем раcковырял я расширение и состряпал юзерскрипт для Greasemonkey.
Сразу предупреждаю делал методом тыка, так что сильно не пинать, но вроде работает =)
Надеюсь автор не будет против того что я выкладываю тут то что у меня получилось.
От себя добавил ссылку на добавление в друзья через стимклиент если не залогинены на сайте и сделал чтобы все дополнительные ссылки открывались в новой вкладке.
Собственно вот

Код: Выделить всё

// ==UserScript==
// @name        Steam Web Tools
// @namespace   SWT
// @description Add additional links in Steam Store and Steam Community sites.
// @include     https://steamcommunity.com/id/*
// @include     http://steamcommunity.com/id/*
// @include     https://steamcommunity.com/profiles/*
// @include     http://steamcommunity.com/profiles/*
// @include     https://store.steampowered.com/app/*
// @include     http://store.steampowered.com/app/*
// @include     https://store.steampowered.com/sub/*
// @include     http://store.steampowered.com/sub/*
// @version     0.1.3
// ==/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");
if (AddFriendItem == null)
var el = document.querySelector('#rightActionBlock');
		el.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)){
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);

Аватара пользователя
Yarito
Капитан
Капитан
Сообщения: 258
Зарегистрирован: 04.11.2009
Поблагодарили: 1 раз
Контактная информация:

#22 Сообщение 24.05.2012, 09:47

qazarius писал(а):Вобщем раcковырял я расширение и состряпал юзерскрипт для Greasemonkey.
Сразу предупреждаю делал методом тыка, так что сильно не пинать, но вроде работает =)
Надеюсь автор не будет против того что я выкладываю тут то что у меня получилось.
От себя добавил ссылку на добавление в друзья через стимклиент если не залогинены на сайте и сделал чтобы все дополнительные ссылки открывались в новой вкладке.
Собственно вот

Код: Выделить всё

// ==UserScript==
// @name        Steam Web Tools
// @namespace   SWT
// @description Add additional links in Steam Store and Steam Community sites.
// @include     https://steamcommunity.com/id/*
// @include     http://steamcommunity.com/id/*
// @include     https://steamcommunity.com/profiles/*
// @include     http://steamcommunity.com/profiles/*
// @include     https://store.steampowered.com/app/*
// @include     http://store.steampowered.com/app/*
// @include     https://store.steampowered.com/sub/*
// @include     http://store.steampowered.com/sub/*
// @version     0.1.3
// ==/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");
if (AddFriendItem == null)
var el = document.querySelector('#rightActionBlock');
		el.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)){
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);
Отлично! :good:

Аватара пользователя
Saidteshnologi
Маппер
Маппер
Сообщения: 769
Зарегистрирован: 16.06.2006
Откуда: Minsk, Belarus
Благодарил (а): 8 раз
Поблагодарили: 28 раз
Контактная информация:

#23 Сообщение 24.05.2012, 10:01

Спасибо большое за проделанный труд! Установил, буду активно юзать!

Аватара пользователя
Monk
VIP
VIP
Сообщения: 4713
Зарегистрирован: 21.11.2009
Благодарил (а): 418 раз
Поблагодарили: 1053 раза
Контактная информация:

#24 Сообщение 24.05.2012, 15:28

qazarius
спасибо огромное, попозже попользую.
«По ночам компьютеры собираются вместе и смеются над людьми, если те делают работу, которую могли бы делать компьютеры» (с) habrahabr
 
[hide_num=64]Изображение
Изображение

Не стоит становиться на одно колено ради девушки, которая ради тебя не готова встать на два. (С)
640K ought to be enough for anybody (с) BG[/hide_num]

Аватара пользователя
BRIAN
Капитан
Капитан
Сообщения: 497
Зарегистрирован: 07.02.2012
Благодарил (а): 92 раза
Поблагодарили: 18 раз

#25 Сообщение 24.05.2012, 15:54

VIT
Большое спасибо за труды на благо пользователям! Очень удобная и качественная вещь!
Изображение

Аватара пользователя
FoXSempai
Полковник
Полковник
Сообщения: 1043
Зарегистрирован: 23.01.2012
Благодарил (а): 46 раз
Поблагодарили: 141 раз
Контактная информация:

#26 Сообщение 24.05.2012, 17:07

Вуху! Зачет тебе vit от меня огромедный!
Изображение Изображение

qazarius
Полковник
Полковник
Сообщения: 1028
Зарегистрирован: 22.11.2008
Благодарил (а): 39 раз
Поблагодарили: 386 раз
Контактная информация:

#27 Сообщение 24.05.2012, 21:13

qazarius писал(а):Вобщем раcковырял я расширение и состряпал юзерскрипт для Greasemonkey.
Сразу предупреждаю делал методом тыка, так что сильно не пинать, но вроде работает =)
Надеюсь автор не будет против того что я выкладываю тут то что у меня получилось.
От себя добавил ссылку на добавление в друзья через стимклиент если не залогинены на сайте и сделал чтобы все дополнительные ссылки открывались в новой вкладке.
Накосячил с ссылкой добавления в друзья
Вроде исправил =)

Код: Выделить всё

// ==UserScript==
// @name        Steam Web Tools
// @namespace   SWT
// @description Add additional links in Steam Store and Steam Community sites.
// @include     https://steamcommunity.com/id/*
// @include     http://steamcommunity.com/id/*
// @include     https://steamcommunity.com/profiles/*
// @include     http://steamcommunity.com/profiles/*
// @include     https://store.steampowered.com/app/*
// @include     http://store.steampowered.com/app/*
// @include     https://store.steampowered.com/sub/*
// @include     http://store.steampowered.com/sub/*
// @version     0.1.3
// ==/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)){
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);

Аватара пользователя
VIT
Майор
Майор
Сообщения: 831
Зарегистрирован: 15.01.2007
Откуда: ::1
Благодарил (а): 69 раз
Поблагодарили: 451 раз
Контактная информация:

#28 Сообщение 24.05.2012, 21:22

qazarius
1) потом ссылку добавлю в расширение
2) зачем заводишь переменуую "w" если ее не используешь?

qazarius
Полковник
Полковник
Сообщения: 1028
Зарегистрирован: 22.11.2008
Благодарил (а): 39 раз
Поблагодарили: 386 раз
Контактная информация:

#29 Сообщение 24.05.2012, 21:29

VIT писал(а):qazarius
2) зачем заводишь переменуую "w" если ее не используешь?
Да я ж говорю, методом тыка, с гугла по нитке инфы набрал что получилось то и выдал =)
Про "w" это я на хабре вычитал
Если кто нибудь найдет время привести в нормальный вид, будет просто замечательно

Аватара пользователя
BRIAN
Капитан
Капитан
Сообщения: 497
Зарегистрирован: 07.02.2012
Благодарил (а): 92 раза
Поблагодарили: 18 раз

#30 Сообщение 28.05.2012, 17:32

VIT
Добавь пожалуйста ссылку на добавление в друзья без входа в сообщество для Chrome.
Изображение

Ответить Вложения 2