// ==UserScript== // @name User Info Popover // @namespace pxgamer // @version 0.1 // @description Adds a popover with user info. // @author pxgamer // @include *kat.cr/community/show/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/19647/User%20Info%20Popover.user.js // @updateURL https://update.greasyfork.icu/scripts/19647/User%20Info%20Popover.meta.js // ==/UserScript== (function() { 'use strict'; $('body').append(' '); $('.badgeInfo .badgeUsernamejs.font12px').each(function() { $(this).after(' '); }); $('.userInfoPopover').on('click', function() { var username = $(this).parent().find('.badgeUsernamejs .plain[href^="/user/"]').text(); var userInfo = getUserInfo(username); $('#userInfoPop').css('display', ''); $('.InfoPop.unValue').html(''+userInfo.username+''); $('.InfoPop.repuVal').text(userInfo.rep); $('.InfoPop.rankValue').text(userInfo.rank); $('.InfoPop.friendValue').text(userInfo.friends); $('.InfoPop.cheevoValue').text(userInfo.cheevos); }); function getUserInfo(username) { var returnedData; var matches; var userInfo = { username: username }; var userRank = /
([a-z 0-9]+)<\/span>/gi; var userRep = /([0-9]+)<\/span>\n <\/h1>/gi; var userCheevo = /

<\/a> User Achievements \(([0-9]+) opened\)/gi; var userUploads = /uploads ([0-9]+)<\/i><\/span>/gi; var userFriends = /Friends ([0-9]+)<\/i><\/span>/gi; $.ajax({ type: 'GET', url: '/user/' + username + '/', async: false, success: function (data) { returnedData = data; while (matches = userRank.exec(returnedData.html)) { userInfo.rank = matches[1]; } while (matches = userRep.exec(returnedData.html)) { userInfo.rep = matches[1]; } while (matches = userCheevo.exec(returnedData.html)) { userInfo.cheevos = matches[1]; } while (matches = userUploads.exec(returnedData.html)) { userInfo.uploads = matches[1]; } while (matches = userFriends.exec(returnedData.html)) { userInfo.friends = matches[1]; } }, returnData: "json" }); return userInfo; } })();