// keeps track of how many events have been displayed let count = 1; $(document).ready(function () { if (typeof clientInfo === 'undefined') { return false; } /* Expand alias tab if they have any */ $('#profile_aliases_btn').click(function (e) { const aliases = $('#profile_aliases').text().trim(); if (aliases && aliases.length !== 0) { $('#profile_aliases').slideToggle(150); $(this).toggleClass('oi-caret-top'); } }); /* load the initial 40 events */ $.each(clientInfo.Meta, function (index, meta) { if (meta.key.includes("Event")) { loadMeta(meta); if (count % 40 === 0) { count++; return false; } count++; } }); /* load additional events on scroll */ $(window).scroll(function () { if ($(window).scrollTop() === $(document).height() - $(window).height() || $(document).height() === $(window).height()) { while (count % 40 !== 0 && count < clientInfo.Meta.length) { loadMeta(clientInfo.Meta[count - 1]); count++; } count++; } }); /* load meta thats not an event */ $.each(clientInfo.Meta, function (index, meta) { if (!meta.key.includes("Event")) { let metaString = `
${meta.value} ${meta.key}
`; $("#profile_meta").append(metaString); } }); /* get ip geolocation info into modal */ $('.ip-locate-link').click(function (e) { e.preventDefault(); const ip = $(this).data("ip"); $.getJSON('https://extreme-ip-lookup.com/json/' + ip) .done(function (response) { $('#mainModal .modal-title').text(ip); $('#mainModal .modal-body').text(""); if (response.ipName.length > 0) { $('#mainModal .modal-body').append("Hostname — " + response.ipName + '
'); } if (response.isp.length > 0) { $('#mainModal .modal-body').append("ISP — " + response.isp + '
'); } if (response.org.length > 0) { $('#mainModal .modal-body').append("Organization — " + response.org + '
'); } if (response['businessName'].length > 0) { $('#mainModal .modal-body').append("Business — " + response.businessName + '
'); } if (response['businessWebsite'].length > 0) { $('#mainModal .modal-body').append("Website — " + response.businessWebsite + '
'); } if (response.city.length > 0 || response.region.length > 0 || response.country.length > 0) { $('#mainModal .modal-body').append("Location — "); } if (response.city.length > 0) { $('#mainModal .modal-body').append(response.city); } if (response.region.length > 0) { $('#mainModal .modal-body').append(', ' + response.region); } if (response.country.length > 0) { $('#mainModal .modal-body').append(', ' + response.country); } $('#mainModal').modal(); }) .fail(function (jqxhr, textStatus, error) { $('#mainModal .modal-title').text("Error"); $('#mainModal .modal-body').html('—'+ error + ''); $('#mainModal').modal(); }); }); }); function penaltyToName(penaltyName) { switch (penaltyName) { case "Flag": return "Flagged"; case "Warning": return "Warned"; case "Report": return "Reported"; case "Ban": return "Banned"; case "Kick": return "Kicked"; case "TempBan": return "Temp Banned"; case "Unban": return "Unbanned"; } } function shouldIncludePlural(num) { return num > 1 ? 's' : ''; } let mostRecentDate = 0; let currentStepAmount = 0; let lastStep = ''; function timeStep(stepDifference) { let hours = stepDifference / (1000 * 60 * 60); let days = stepDifference / (1000 * 60 * 60 * 24); let weeks = stepDifference / (1000 * 60 * 60 * 24 * 7); if (Math.round(weeks) > Math.round(currentStepAmount / 24 * 7)) { currentStepAmount = Math.round(weeks); return `${currentStepAmount} week${shouldIncludePlural(currentStepAmount)} ago`; } if (Math.round(days) > Math.round(currentStepAmount / 24)) { currentStepAmount = Math.round(days); return `${currentStepAmount} day${shouldIncludePlural(currentStepAmount)} ago`; } if (Math.round(hours) > currentStepAmount) { currentStepAmount = Math.round(hours); return `${currentStepAmount} hour${shouldIncludePlural(currentStepAmount)} ago`; } } function loadMeta(meta) { let eventString = ''; const metaDate = moment.utc(meta.when).valueOf(); if (mostRecentDate === 0) { mostRecentDate = metaDate; } const step = timeStep(moment.utc().valueOf() - metaDate); if (step !== lastStep && step !== undefined && metaDate > 0) { $('#profile_events').append(' ' + step + ''); lastStep = step; } // it's a penalty if (meta.class.includes("Penalty")) { if (meta.value.punisherId !== clientInfo.clientId) { const timeRemaining = meta.value.type == 'TempBan' && meta.value.timeRemaining.length > 0 ? `(${meta.value.timeRemaining} remaining)` : ''; eventString = `
${penaltyToName(meta.value.type)} by ${meta.value.punisherName} for ${meta.value.offense} ${timeRemaining}
`; } else { eventString = `
${penaltyToName(meta.value.type)} ${meta.value.offenderName} for ${meta.value.offense}
`; } } else if (meta.key.includes("Alias")) { eventString = `
${meta.value}
`; } // it's a message else if (meta.key.includes("Event")) { eventString = `
> ${meta.value}
`; } $('#profile_events').append(eventString); }