您需要先安装一个扩展,例如 篡改猴、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.6
- // @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">Torn Helper</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 save(){
- localStorage.setItem('data', JSON.stringify(data));
- }
- function load(){
- data = localStorage.getItem('data');
- if(data === undefined || data === null){
- data = {};
- }else{
- data = JSON.parse(data);
- }
- if(data.apikey === undefined || data.apikey === ''){
- getApiKey();
- }
- }
- function getApiKey(){
- var key = prompt('You API Key', 'key');
- data.apikey = key;
- save();
- }
- 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) {
- if(data.error){getApiKey();}
- 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, " "));
- }