您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds extra information to different pages all around Torn.
当前为
// ==UserScript== // @name Torn Helper // @namespace Jebster.Torn // @author Jeggy // @description Adds extra information to different pages all around Torn. // @include *.torn.com/profiles.php?XID=* // @version 0.0.3 // @require http://code.jquery.com/jquery-2.2.4.min.js // @grant GM_addStyle // ==/UserScript== var data = {}; (function() { 'use strict'; var site = window.location.pathname; load(); if(site.indexOf('profiles.php') > 0) profileView(); })(); function profileView(){ var userid = getParameterByName('XID'); var userData = data[userid]; var content = '<div id="compareStats">' + 'Loading...' + '<br />' + '</div>' + '<hr />' + '<b>Notes</b><br />' + getUserValue(userid, 'notes')+ ''; var compareFunc = function(){$('#compareStats').replaceWith(compareTemplate(userid, data.userid));}; apiUserStats(userid, compareFunc); apiUserStats(data.userid, compareFunc); var block = $( '<div class="profile-wrapper medals-wrapper m-top10">' + '<div class="menu-header">Jeggy Script</div>' + '<div class="profile-container"> ' + '<div class="profile-container-description">'+content+'</div>' + '</div>' + '<div class="clear"></div></div>'); $(block).insertAfter('.tutorial-cont + .profile-wrapper'); } function getUserValue(userid, property){ var user = data[userid]; if(user){ if($.isArray(property)){ for(var i = 0; i < property.length; i++){ user = user[property[i]]; } return user; }else{ var userData = user[property]; if(userData){ return userData; } } } return -1; } function setUserValue(userid, property, value){ if(data[userid] === undefined) data[userid] = {}; data[userid][property] = value; } function load(){ data = { apikey: 'eQ2BlOZ6', settings: {online: false}, userid: 1526723, 1526723: {color: '#33cc00', notes: 'Some extra notes', difficulty: 'hard'} }; } function apiUserStats(userid, cb){ var lastRequest = getUserValue(userid, 'lastRequest'); var now = new Date(); if(lastRequest === 0 || lastRequest < now.getTime() - (60*60*5)){ // TODO: var selections = 'personalstats,basic'; var url = 'https://api.torn.com/user/'+userid+'?selections='+selections+'&key='+data.apikey; $.ajax({ url: url, type: 'GET', success: function(data) { setUserValue(userid, 'stats', data.personalstats); setUserValue(userid, 'lastRequest', now.getTime()); setUserValue(userid, 'username', data.name); cb(data); } }); }else{ cb(data[userid].stats); } } function compareTemplate(user1Id, user2Id){ console.log('user1: '+user1Id + ', user2: '+user2Id); console.log(data[user1Id].stats); console.log(data[user2Id].stats); return '<ul class="basic-list">' + '<li>' + '<div class="user-information-section left"><span class="bold"></span></div>' + '<div class="user-information-section left"><span class="bold">'+getUserValue(user1Id, 'username')+'</span></div>' + '<div><span class="bold">'+getUserValue(user2Id, 'username')+' (You)</span></div>' + '</li>' + '<li>'+ '<div class="user-information-section left"><span class="bold">Xanax taken</span></div>' + '<div class="user-information-section left">'+getUserValue(user1Id, ['stats', 'xantaken'])+'</div>' + '<div>'+getUserValue(user2Id, ['stats', 'xantaken'])+'</div>' + '</li>' + '<li>'+ '<div class="user-information-section left"><span class="bold">Logins</span></div>' + '<div class="user-information-section left">'+getUserValue(user1Id, ['stats', 'logins'])+'</div>' + '<div>'+getUserValue(user2Id, ['stats', 'logins'])+'</div>' + '</li>' + '</ul>'; } // Taken from: http://stackoverflow.com/a/15724300/1832471 function getCookieValue(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } // Taken from: http://stackoverflow.com/a/901144/1832471 function getParameterByName(name, url) { if (!url) { url = window.location.href; } name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); }