Steam Extra Profile Links

Adds extra links to Steam Profile pages.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name          Steam Extra Profile Links
// @namespace     http://greasyfork.org/users/2240-doodles
// @author        Doodles
// @version       13
// @description   Adds extra links to Steam Profile pages.
// @icon          http://i.imgur.com/c4qvWvz.png
// @icon64        http://i.imgur.com/ZumqrhD.png
// @include       *://steamcommunity.com/id/*
// @include       *://steamcommunity.com/profiles/*
// @include       *://steamcommunity.com//id/*
// @include       *://steamcommunity.com//profiles/*
// @exclude       *://steamcommunity.com/id/*/tradeoffers/*
// @exclude       *://steamcommunity.com/profiles/*/tradeoffers/*
// @exclude       *://steamcommunity.com//id/*/tradeoffers/*
// @exclude       *://steamcommunity.com//profiles/*/tradeoffers/*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant         GM_xmlhttpRequest
// @updateVersion 13
// ==/UserScript==

$(document).ready(function () {
	'use strict';
	if ($(".profile_rightcol").length) {
		$("<style></style>").prop("type", "text/css").html('div.sel_links {background-color:#202020;padding:2px 5px 2px 5px;margin-bottom:10px;margin-right:10px;font-size:10px;color:#999999;}div.sel_links a, di' +
		'v.sel_links a:link {color:#5491cf;text-decoration:none;}div.sel_links a:visited {color:#5491cf;}div.sel_links a:hover {color:#5491cf;text-decoration:u' +
		'nderline;}div.sel_links a:active {color:#5491cf;}div.sel_links hr {border:0;height:1px;background:#0a0a0a;margin-top:2px;margin-bottom:2px;}div.sel_fo' +
		'ot {margin:0;padding:0;text-align:center;font-size:10px;color:#444444;}div.sel_foot a, div.sel_foot a:link {color:#444444;text-decoration:none;}div.se' +
		'l_foot a:visited {color:#444444;}div.sel_foot a:hover {color:#999999;text-decoration:underline;}div.sel_foot a:active {color:#444444;}span.selG {color' +
		':#2d8d2b;}span.selY {color:#e1bf00;}span.selR {color:#a94847;}').appendTo("head");
        var steamXmlUrl;
		if(document.URL.indexOf("steamcommunity.com/id/") != -1 || document.URL.indexOf("steamcommunity.com//id/") != -1) {
			steamXmlUrl = "//steamcommunity.com/id/" + document.URL.split("/id/")[1].split("/")[0].split("?")[0] + "?xml=1";
		} else {
			steamXmlUrl = "//steamcommunity.com/profiles/" + document.URL.split("/profiles/")[1].split("/")[0].split("?")[0] + "?xml=1";
		}
		GM_xmlhttpRequest({
			method: 'GET',
			url: steamXmlUrl,
			onload: function(responseDetails) {
				extraProfileLinks(responseDetails.responseText);
			},
			onerror: function(responseDetails) {
				console.log(responseDetails.responseText);
			}
		});
	}
	function extraProfileLinks(xmlPage) {
		var selProfileSid64 = $(xmlPage).find("steamID64").first().text();
		var selTempNum = selProfileSid64.substring(5)  - 197960265728; //76561197960265728;
		var selProfileSid32 = "STEAM_0:" + selTempNum%2 + ":" +(selTempNum - selTempNum%2) / 2;
		var selProfileSidV3 = "[U:1:" + selTempNum + "]";

		var linkDiv = $('<div class="sel_links" id="selContainer"></div>');
		if ($(".profile_badges").length) {
			$(linkDiv).insertBefore($(".profile_badges").first());
			if ($(".profile_in_game").length) {
				$(".profile_in_game").first().css("margin-bottom", "10px");
			}
			if ($(".profile_ban_status").length) {
				$(".profile_ban_status").first().css("margin-bottom", "10px");
			}
		} else {
			$(".profile_rightcol").first().prepend(linkDiv);
		}

		var link_01_01 = "<a title=\"SteamRep\" href=\"http://steamrep.com/profiles/" + selProfileSid64 + "\">SteamRep</a>";
		var link_01_02 = "<a title=\"SteamDB\" href=\"http://steamdb.info/calculator/" + selProfileSid64 + "/\">SteamDB</a>";
		var link_01_03 = "<a title=\"Steam Trades\" href=\"http://www.steamtrades.com/user/" + selProfileSid64 + "\">Steam Trades</a>";
		var link_01_04 = "<a title=\"Steam Gifts\" href=\"http://www.steamgifts.com/go/user/" + selProfileSid64 + "\">Steam Gifts</a>";
		var link_01_05 = "<a title=\"Vac-Ban.com - CS:GO Stats and VAC Status\" href=\"https://www.vac-ban.com/" + selProfileSid64 + "/stats.html\">Vac-Ban.com</a>";

		var link_02_01 = "<a title=\"backpack.tf Backpack\" href=\"http://backpack.tf/profiles/" + selProfileSid64 + "\">Backpack</a>";
		var link_02_02 = "<a title=\"backpack.tf Profile\" href=\"http://backpack.tf/u/" + selProfileSid64 + "\">Profile</a>";
		var link_02_03 = "<a title=\"TF2Outpost.com Backpack\" href=\"http://www.tf2outpost.com/backpack/" + selProfileSid64 + "\">Backpack</a>";
		var link_02_04 = "<a title=\"TF2Outpost.com Profile\" href=\"http://www.tf2outpost.com/user/" + selProfileSid64 + "\">Profile</a>";
		var link_02_05 = "<a title=\"bazaar.tf Backpack\" href=\"http://bazaar.tf/backpack/" + selProfileSid64 + "\">Backpack</a>";
		var link_02_06 = "<a title=\"bazaar.tf Profile\" href=\"http://bazaar.tf/profiles/" + selProfileSid64 + "\">Profile</a>";
		var link_02_07 = "<a title=\"TF2 Trading Post Profile\" href=\"http://tf2tp.com/user/" + selProfileSid64 + "\">TF2 Trading Post Profile</a>";
		var link_02_08 = "<a title=\"TF2 Backpack Examiner\" href=\"http://www.tf2items.com/profiles/" + selProfileSid64 + "?p=all\">TF2 Backpack Examiner</a>";
		var link_02_09 = "<a title=\"TF2B - TF2\" href=\"http://tf2b.com/tf2/" + selProfileSid64 + "\">TF2</a>";
		var link_02_10 = "<a title=\"TF2B - DOTA2\" href=\"http://tf2b.com/d2/" + selProfileSid64 + "\">DOTA2</a>";
		var link_02_11 = "<a title=\"TF2B - CSGO\" href=\"http://tf2b.com/csgo/" + selProfileSid64 + "\">CSGO</a>";
		var link_02_12 = "<a title=\"TF2B - Portal 2\" href=\"http://tf2b.com/p2/" + selProfileSid64 + "\">Portal 2</a>";
		var link_02_13 = "<a title=\"TF2Center\" href=\"https://tf2center.com/profile/" + selProfileSid64 + "\">TF2Center</a>";

		var link_03_01 = "<a title=\"Achievement Stats\" href=\"http://www.achievementstats.com/index.php?action=profile&playerId=" + selProfileSid64 + "\">Achievement Stats</a>";
		var link_03_02 = "<a title=\"astats.nl\" href=\"http://astats.astats.nl/astats/User_Info.php?steamID64=" + selProfileSid64 + "\">astats.nl</a>";
		var link_03_03 = "<a title=\"Steam Ladder\" href=\"http://www.steamladder.com/profile/" + selProfileSid64 + "\">Steam Ladder</a>";

		var link_04_01 = "<a title=\"Games\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/games/\">Games</a>";
		var link_04_02 = "<a title=\"All Games\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/games?tab=all\">All Games</a>";
		var link_04_03 = "<a title=\"Screenshots\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/screenshots/?appid=0&sort=newestfirst&browsefilter=myfiles&view=grid\">Screenshots</a>";
		var link_04_04 = "<a title=\"Videos\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/videos/\">Videos</a>";
		var link_04_05 = "<a title=\"Artwork\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/images/\">Artwork</a>";
		var link_04_06 = "<a title=\"Reviews\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/recommended/\">Reviews</a>";
		var link_04_07 = "<a title=\"Guides\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/myworkshopfiles/?section=guides\">Guides</a>";
		var link_04_08 = "<a title=\"Workshop Items\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/myworkshopfiles/\">Workshop Items</a>";
		var link_04_09 = "<a title=\"Greenlight Items\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/myworkshopfiles/?section=greenlight\">Greenlight Items</a>";
		var link_04_10 = "<a title=\"Friends\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/friends/\">Friends</a>";
		var link_04_11 = "<a title=\"Groups\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/groups/\">Groups</a>";
		var link_04_12 = "<a title=\"Inventory - TF2\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/inventory/#440\">TF2</a>";
		var link_04_13 = "<a title=\"Inventory - Dota2\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/inventory/#570\">Dota2</a>";
		var link_04_14 = "<a title=\"Inventory - Steam\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/inventory/#753\">Steam</a>";
		var link_04_15 = "<a title=\"Inventory - CSGO\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/inventory/#730\">CSGO</a>";
		var link_04_16 = "<a title=\"All Comments\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/allcomments\">All Comments</a>";
		var link_04_17 = "<a title=\"Name History\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/namehistory\">Name History</a>";
		var link_04_18 = "<a title=\"Friends in Common\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/friendscommon\">Friends in Common</a>";
		var link_04_19 = "<a title=\"Groups in Common\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/groupscommon\">Groups in Common</a>";
		var link_04_20 = "<a title=\"Badges\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/badges/\">Badges</a>";
		var link_04_21 = "<a title=\"Wishlist\" href=\"http://steamcommunity.com/profiles/" + selProfileSid64 + "/wishlist/\">Wishlist</a>";

		var link_05_01 = "<a title=\"CSGO Lounge\" href=\"http://csgolounge.com/profile?id=" + selProfileSid64 + "\">CSGO Lounge</a>";

		var link_foot_1 = "<a title=\"GreasyFork\" target\"_blank\" href=\"https://greasyfork.org/scripts/5148-steam-extra-profile-links\">GreasyFork</a>";
		var link_foot_2 = "<a title=\"DoodlesStuff\" target\"_blank\" href=\"http://doodlesstuff.com/?p=sepl\">DoodlesStuff</a>";

		var invCount = "Inventory: ";
		if($(".profile_item_links").length) {
			$(".profile_item_links a").each(function(){ 
				if($(this).find(".profile_count_link_total").length) {
					var tempHref = $(this).attr('href');
					var tempCount = $(this).find(".profile_count_link_total").text().trim();
					if(tempCount.length) {
						if (tempHref.indexOf("/games/") != -1) { link_04_01 = link_04_01.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/screenshots/") != -1) { link_04_03 = link_04_03.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/videos/") != -1) { link_04_04 = link_04_04.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/inventory/") != -1) { invCount = "Inventory (" + tempCount + "): "; }
						else if (tempHref.indexOf("/myworkshopfiles/?section=greenlight") != -1) { link_04_09 = link_04_09.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/images/") != -1) { link_04_05 = link_04_05.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/myworkshopfiles/?section=guides") != -1) { link_04_07 = link_04_07.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/recommended/") != -1) { link_04_06 = link_04_06.replace("</a>", " (" + tempCount + ")</a>"); }
						else if (tempHref.indexOf("/myworkshopfiles/") != -1) { link_04_08 = link_04_08.replace("</a>", " (" + tempCount + ")</a>"); }
					}
				}
			});
			$(".profile_item_links").first().empty();
		}

		linkDiv.append($("<div>" + link_01_01 + " | " + link_01_02 + " | " + link_01_05 + "</div>"));
			var vac = $(xmlPage).find("vacBanned").first().text();
			if(vac == "1") { vac = "<span class=\"selR\">VAC Banned</span>"; }
			else if(vac == "0") { vac = "<span class=\"selG\">None</span>"; }
			else { vac = "<span class=\"selY\">" + vac + "</span>"; }
		linkDiv.append($("<div>VAC Ban: " + vac + "</div>"));
			var trade = $(xmlPage).find("tradeBanState").first().text();
			if(trade == "None") { trade = "<span class=\"selG\">None</span>"; }
			else { trade = "<span class=\"selR\">" + trade + "</span>"; }
		linkDiv.append($("<div>Trade Ban: " + trade + "</div>"));
		var memberSince = $(xmlPage).find("memberSince").first();
		if(memberSince.length) { linkDiv.append($("<div>Joined: " + $(memberSince).text() + "</div>")); }
		linkDiv.append($("<div>" + selProfileSid64 + "</div><div>" + selProfileSidV3 + "</div><div>" + selProfileSid32 + "</div>"));
		linkDiv.append($("<hr>"));
		linkDiv.append($("<div>backpack.tf: " + link_02_01 + " | " + link_02_02 +"</div>"));
		linkDiv.append($("<div>TF2Outpost: " + link_02_03 + " | " + link_02_04 + "</div>"));
		linkDiv.append($("<div>bazaar.tf: " + link_02_05 + " | " + link_02_06 + "</div>"));
		linkDiv.append($("<div>" + link_02_07 + "</div><div>" + link_02_08 + "</div>"));
		linkDiv.append($("<div>TF2B: " + link_02_09 + " | " + link_02_10 + " | " + link_02_11 + " | " + link_02_12 + "</div>"));
		linkDiv.append($("<div>" + link_01_03 + " | " + link_01_04 + "</div>"));
		linkDiv.append($("<div>" + link_02_13 + " | " + link_05_01 + "</div>"));
		linkDiv.append($("<hr>"));
		linkDiv.append($("<div>" + link_03_01 + " | " + link_03_02 + " | " + link_03_03 + "</div>"));
		linkDiv.append($("<hr>"));
		if($(".profile_private_info").length == 0) { // display profile type links IF profile ISNT private
			linkDiv.append($("<div>" + link_04_01 + " | " + link_04_02 + " | " + link_04_21 + "</div>"));
			linkDiv.append($("<div>" + link_04_03 + " | " + link_04_04 + " | " + link_04_05 + "</div>"));
			linkDiv.append($("<div>" + link_04_06 + " | " + link_04_07 + "</div>"));
			linkDiv.append($("<div>" + link_04_08 + " | " + link_04_09 + "</div>"));
			linkDiv.append($("<div>" + link_04_10 + " | " + link_04_11 + " | " + link_04_20 + "</div>"));
			linkDiv.append($("<div>" + invCount + link_04_12 + " | " + link_04_13 + " | " + link_04_14 + " | " + link_04_15 + "</div>"));
			linkDiv.append($("<div>" + link_04_16 + " | " + link_04_17 + "</div>"));
			if($("#account_pulldown").length) { linkDiv.append($("<div>" + link_04_18 + " | " + link_04_19 + "</div>")); }
		} else {
			linkDiv.append($("<div>" + link_04_16 + " | " + link_04_17 + "</div>"));
		}
		linkDiv.append($("<hr>"));
		linkDiv.append($("<div class=\"sel_foot\">Steam Extra Links: " + link_foot_1 + " | " + link_foot_2 + "</div>"));

		if($(".profile_in_game_name").length) {
			var gameName = $(".profile_in_game_name").text().trim();
			gameName = gameName.replace("&equals;", "%3D").replace("&#61;", "%3D").replace("=", "%3D");
			gameName = gameName.replace("&amp;", "%26").replace("&#38;", "%26").replace("&", "%26");
			var gameName2 = gameName;
			while(gameName2.indexOf(" ") != -1){
				gameName2 = gameName2.replace(" ", "+");
			}
			if(gameName.indexOf("Last Online") == -1) {
				$(".profile_in_game_name").html($("<a href=\"http://store.steampowered.com/search/?term=" + gameName2 +
					"&category1=998\" title=\"Steam Store Search\" style=\"text-decoration:underline;\">" + gameName + "</a>"));
			}else{
                
			}
		}
	}
});