Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Margonem Profile Online
- // @version 1.1
- // @author Arth/Szemkel
- // @match http*://www.margonem.pl/profile/view,*
- // @match http*://new.margonem.pl/profile/view,*
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
- // @grant GM_xmlhttpRequest
- // @connect margonem.pl
- // @run-at document-start
- // ==/UserScript==
- (function() {
- var characters = [];
- var $statsBody = null;
- var worldsOnline = {};
- var accountOnline = false;
- var onlineReady = false;
- var charactersReady = false;
- GM_xmlhttpRequest({
- method: "GET",
- url: "http://www.margonem.pl/stats",
- onload: function(response) {
- $statsBody = $(response.responseText);
- onlineReady = true;
- check();
- }
- });
- document.addEventListener('DOMContentLoaded', function() {
- loadCharacters();
- });
- function loadCharacters() {
- var $stats = $('.character-list li.char-row');
- $stats.each(function(i, e) {
- var name = $(e).children('input.chnick')[0].value;
- var world = $(e).children('input.chworld')[0].value;
- characters.push({
- name: name,
- world: world,
- $e: $(e)
- });
- if (i == $stats.length - 1) {
- charactersReady = true;
- check();
- }
- });
- }
- function check() {
- if (charactersReady && onlineReady) start();
- }
- function start() {
- for (var i in characters) {
- if (!worldsOnline[characters[i].world]) loadWorldOnline(characters[i].world);
- if (isCharacterOnline(characters[i].name, characters[i].world)) {
- accountOnline = true;
- characters[i].$e.find('.char-description .character-name').html(characters[i].name+ ' <span style="color: green; font-weight: bold;">online</span>');
- } else {
- characters[i].$e.find('.char-description .character-name').html(characters[i].name+ ' <span style="color: gray;">offline</span>');
- }
- }
- if (accountOnline) {
- $('.profile-header span').html($('.profile-header h2 span').text()+ ' <span style="color: green; float: right;">(online)</span>')
- }
- }
- function loadWorldOnline(world) {
- worldsOnline[world] = $statsBody.find('.'+world.toLowerCase()+'-popup .news-body').text().trim().split(', ');
- }
- function isCharacterOnline(name, world) {
- return worldsOnline[world].indexOf(name) >= 0;
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement