NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Interpals — New icons and flags
// @namespace http://tampermonkey.net/
// @version 1.8
// @description New and shiny :) Should be installed together with the userstyle: userstyles.org/styles/142170/interpals-complete-redesign
// @author vplameniraket
// @match https://www.interpals.net/*
// @grant GM_addStyle
// @run-at document-start
// @license MIT
// @copyright 2019, vplameniraket (https://openuserjs.org/users/vplameniraket)
// @updateURL https://openuserjs.org/meta/vplameniraket/Interpals_—_New_icons_and_flags.meta.js
// ==/UserScript==
GM_addStyle('.fa, .far, .fas { font-family: "Font Awesome 5 Free", Helvetica Neue, Helvetica, sans-serif, Arial !important; } .fa, .fas { font-weight: inherit !important; } .fa::before, .fas::before { font-weight: 900; } #prof-action-links a:not(:last-child) { margin-right: 6px; } #langexForm ~ div a { min-width: calc(33.3% - 12px) !important; }');
//GM_addStyle('.delSelItem { font-family: "Font Awesome 5 Free", Helvetica Neue, Helvetica, sans-serif, Arial !important; font-weight: 600; width: 19px; height: 19px; overflow: hidden; display: inline-block; transform: translateY(4px); } .delSelItem::before { content: "\\f056"; font-size: 19px; } #sCFields .selElem { width: 86% !important; }');
(function() {
'use strict';
function injectNewFontAwesome() {
var link = document.querySelectorAll('link[href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css"]')[0];
if (link !== undefined) {
link.setAttribute('href','https://use.fontawesome.com/releases/v5.8.2/css/all.css');
link.setAttribute('integrity','sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay');
link.setAttribute('crossorigin','anonymous');
}
document.getElementsByTagName('head')[0].insertAdjacentHTML('beforeend', '<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/brands.css" integrity="sha384-i2PyM6FMpVnxjRPi0KW/xIS7hkeSznkllv+Hx/MtYDaHA5VcF0yL3KVlvzp8bWjQ" crossorigin="anonymous">');
}
injectNewFontAwesome();
function replaceIcons() {
if (document.querySelectorAll('link[href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css"]').length == 1) injectNewFontAwesome();
var fa = document.getElementsByClassName('fa');
for (var i = fa.length - 1; i >= 0; i--) {
fa[i].classList.replace('fa','fas');
}
var fbicon = document.getElementsByClassName('fa-facebook-square')[0];
if (fbicon !== undefined) fbicon.classList.replace('fas','fab');
var replace = [['.fa-pencil','fa-pencil-alt'],
['.fa-check-square-o','fa-star'],
['.fa-puzzle-piece','fa-bolt'],
['.fa-user','fa-user-circle'],
['#prof-action-links a[title*="from friends"] .fa-user','fa-user-minus'],
['#prof-action-links a[title*="to friends"] .fa-user','fa-user-plus'],
['.fa-music','fa-guitar'],
['.fa-film','fa-video'],
['.fa-tv','fa-desktop'],
['.fa-users','fa-user-friends'],
['.fa-comment','fa-comments'],
['.fa-envelope','fa-envelope-open'],
['.fa-exchange','fa-comments'],
['.fa-trash-o','fa-trash'],
['.fa-globe','fa-globe-americas'],
['.fa-rss','fa-comments'],
['.indexTitleBar .fa-flag','fa-sync-alt'],
['.fa-quote-left','fa-quote-right'],
['.fa-backward','fa-chevron-left'],
['#controls .fa-star','fa-check'],
['.fa-plus-square-o','fa-address-book'],
['.fa-exclamation-triangle','fa-flag'],
['.fa-picture-o','fa-images'],
['.fa-refresh','fa-sync-alt'],
['#sCtlBox .fa-check-square','fa-save']
];
for (var i = replace.length - 1; i >= 0; i--) {
var elems = document.querySelectorAll(replace[i][0]);
for (var j = elems.length - 1; j >= 0; j--) {
var cl = replace[i][0].split(" ");
elems[j].classList.replace(cl[cl.length - 1].substring(1),replace[i][1]);
elems[j].innerText = elems[j].innerText.replace(' -','').replace(/[ ]$/g,'').replace(/^[ ]/g,'');
}
}
//GENDER FIX
function swapWrongGender(gen1,gen2) {
var gender = document.querySelectorAll('a.' + gen1 + ':not(.ppThLink)');
for (var i = gender.length - 1; i >= 0; i--) {
if (gender[i] !== undefined) {
var secondParentNode = gender[i].parentNode.parentNode.querySelectorAll('a')[0];
if (!secondParentNode.classList.contains(gen1)) secondParentNode.classList.replace(gen2,gen1);
}
}
}
swapWrongGender('male','female');
swapWrongGender('female','male');
//REMOVING EMPTY BLOCKS
var blocks = document.querySelectorAll('.rUsers, .profModules, .rbox_main, .sResCont, .profModuleBox');
for (var i = blocks.length - 1; i >= 0; i--) {
if (blocks[i] !== undefined && (blocks[i].querySelectorAll('*').length == 0 || blocks[i].innerText == '' || (blocks[i].childNodes[1] !== undefined && blocks[i].childNodes[1].id == 'membStats' && blocks[i].childNodes.length == 3) || (blocks[i].querySelectorAll('.rUserBox > #rUserData')[0] !== undefined && blocks[i].querySelectorAll('.rUserBox > #rUserData')[0].querySelectorAll('*').length == 0))) blocks[i].remove();
}
}
function convertFlag(input) {
switch(input) {
case 'en':
case 'cy':
return 'gb';
case 'gd':
return 'gb-sct';
case 'ja':
return 'jp';
case 'ko':
return 'kr';
case 'zh':
case 'bo':
case 'ug':
return 'cn';
default:
return input;
}
}
function convertLang(input) {
switch(input) {
case 'en':
return 'gb';
case 'gd':
return 'gb-sct';
case 'cy':
return 'gb-wls';
case 'ja':
return 'jp';
case 'ko':
return 'kr';
case 'zh':
case 'bo':
case 'ug':
return 'cn';
case 'aa':
case 'am':
return 'et';
case 'ay':
return 'bo';
case 'ar':
return 'sa';
case 'af':
case 'zu':
case 'xh':
case 'ts':
return 'za';
case 'ab':
case 'ka':
return 'ge';
case 'as':
case 'aw':
case 'b1':
case 'bh':
case 'dk':
case 'gu':
case 'hi':
case 'ki':
case 'kn':
case 'ks':
case 'ml':
case 'mr':
case 'mw':
case 'or':
case 'sa':
case 'te':
return 'in';
case 'be':
return 'by';
case 'ba':
case 'ce':
case 'tt':
return 'ru';
case 'bi':
return 'vu';
case 'bl':
case 'pa':
case 'sd':
case 'ur':
return 'pk';
case 'bn':
return 'bd';
case 'br':
case 'co':
return 'fr';
case 'ca':
return 'es-ct';
case 'gl':
return 'es';
case 'cb':
case 'tl':
return 'ph';
case 'cs':
return 'cz';
case 'da':
return 'dk';
case 'dz':
return 'bt';
case 'el':
return 'gr';
case 'et':
return 'ee';
case 'eu':
return 'fr';
case 'fa':
case 'tg':
return 'tj';
case 'fy':
return 'nl';
case 'ga':
return 'ie';
case 'gn':
return 'py';
case 'ha':
return 'ne';
case 'hy':
return 'am';
case 'ik':
return 'um';
case 'in':
case 'jw':
case 'su':
return 'id';
case 'iw':
return 'il';
case 'kb':
return 'dz';
case 'kk':
return 'kz';
case 'kl':
return 'gl';
case 'km':
return 'kh';
case 'ku':
return 'iq';
case 'ky':
return 'kg';
case 'lb':
return 'lu';
case 'lm':
return 'it';
case 'ln':
return 'cd';
case 'lo':
return 'la';
case 'mi':
return 'nz';
case 'mo':
return 'md';
case 'ms':
return 'my';
case 'mu':
return 'mz';
case 'my':
return 'mm';
case 'na':
return 'nr';
case 'ne':
case 'b2':
return 'np';
case 'oc':
return 'fr';
case 'om':
return 'et';
case 'ps':
return 'af';
case 'qu':
return 'pe';
case 'ri':
return 'ma';
case 'rm':
return 'ch';
case 'rn':
return 'bi';
case 'sg':
return 'cf';
case 'sh':
case 'sr':
return 'rs';
case 'si':
return 'lk';
case 'sl':
return 'si';
case 'sm':
return 'ws';
case 'sn':
return 'zw';
case 'sq':
return 'al';
case 'ss':
return 'sz';
case 'st':
return 'ls';
case 'sv':
return 'se';
case 'sw':
return 'ke';
case 'ta':
return 'lk';
case 'ti':
return 'er';
case 'tk':
return 'tm';
case 'tm':
return 'ml';
case 'tn':
return 'bw';
case 'tw':
case 'ak':
return 'gh';
case 'tz':
return 'ma';
case 'uk':
return 'ua';
case 'vi':
return 'vn';
case 'wo':
return 'sn';
case 'yo':
return 'ng';
case 'vo':
case 'eo':
case 'la':
case 'ie':
case 'ia':
case 'ji':
return '???';
default:
return input;
}
}
function injectFlagsCss() { document.getElementsByTagName('head')[0].insertAdjacentHTML('beforeend', '<link rel="stylesheet" href="https://nmr1.ru/troot/flags/css/flag-icon.css">'); }
injectFlagsCss();
function replaceFlags() {
if (document.querySelectorAll('link[href="https://nmr1.ru/troot/flags/css/flag-icon.css"]').length == 0) injectFlagsCss();
function replaceAllFlags(size,isLang) {
var flags;
if (!isLang) flags = document.querySelectorAll('img[src*="/images/flags/iso/' + size + '"]');
else flags = document.querySelectorAll('img[src*="/images/flags/langs"]');
for (var i = flags.length - 1; i >= 0; i--) {
var src = flags[i].getAttribute('src'),
country = src.substring(src.lastIndexOf(size)).substring(3,5),
newFlag = document.createElement('span'),
sizeClass = 'flag-icon' + size,
countryCode;
if (!isLang) countryCode = 'flag-icon-' + convertFlag(country.toLowerCase());
else countryCode = 'flag-icon-' + convertLang(country.toLowerCase());
if (flags[i].parentNode.className == "sResMain") {
flags[i].parentNode.parentNode.insertAdjacentHTML('beforebegin','<div class="flagwrap"><span class="flag-icon flag-icon16 ' + countryCode + '"></span></div>');
flags[i].parentNode.parentNode.parentNode.classList.add('withflag');
}
newFlag.classList.add('flag-icon', sizeClass, countryCode);
if (isLang) newFlag.classList.add('flag-icon-squared');
flags[i].parentNode.replaceChild(newFlag, flags[i]);
}
}
replaceAllFlags(16, false);
replaceAllFlags(24, false);
replaceAllFlags(40, true);
var ages = document.querySelectorAll('.user_info');
if (ages.length > 0) {
for (var i = ages.length - 1; i >= 0; i--) {
var maxWidth = 76;
if (ages[i].querySelectorAll('.status').length == 0) maxWidth = 90;
if (ages[i].querySelectorAll('a')[0].getBoundingClientRect().width > maxWidth) {
if (ages[i].querySelectorAll('.location')[0].getBoundingClientRect().width <= 90) {
ages[i].innerHTML = ages[i].innerHTML.replace(/[ ]([\d][\d])/g, '<span class="age">$1 </span>');
var original = ages[i].querySelectorAll('.age')[0];
if (original !== undefined) {
ages[i].querySelectorAll('.location')[0].insertAdjacentHTML('afterbegin', original.innerHTML);
original.remove();
}
}
else ages[i].innerHTML = ages[i].innerHTML.replace(/[ ]([\d][\d])/g, '');
}
}
}
}
setInterval(function(){
if (document.getElementsByClassName('fa').length >= 1) replaceIcons();
if (document.querySelectorAll('img[src*="/images/flags/"]').length >= 1) replaceFlags();
function replaceLayout(selector, regex, replacewith) {
if (document.querySelectorAll(selector + ':not(.new)').length >= 1) {
var elems = document.querySelectorAll(selector);
for (var i = elems.length - 1; i >= 0; i--) {
if (elems[i] !== undefined) {
for (var j = regex.length - 1; j >= 0; j--) {
elems[i].innerHTML = elems[i].innerHTML.replace(regex[j],replacewith[j]);
}
elems[i].classList.add('new');
}
}
}
}
replaceLayout('.mprofSections', [/[|]/g], ['<span class="mprofSectionsSeparator">/</span>']);
replaceLayout('.settingSections', [/[|]/g], ['<span class="settingSectionsSeparator">/</span>']);
replaceLayout('#prof-action-links', [/[ ][-]/g,/[\n][-]/g], ['','']);
replaceLayout('#langexForm ~ div', [/[\&]\w+[;][\n ]/g], ['']);
if (document.querySelectorAll('.sResThumb img:not(.new)').length >= 1) {
var profActionLinks = document.querySelectorAll('.sResThumb img');
for (var i = profActionLinks.length - 1; i >= 0; i--) {
if (profActionLinks[i] !== undefined) {
profActionLinks[i].setAttribute('src',profActionLinks[i].getAttribute('src').replace('100x100','180x180'));
profActionLinks[i].classList.add('new');
}
}
}
},100);
})();