Munzee Clanlink Replace

Replace Clanlinks at profile pages and clan leaderboard

  1. // ==UserScript==
  2. // @name Munzee Clanlink Replace
  3. // @namespace https://gf.qytechs.cn/users/156194
  4. // @version 0.8
  5. // @description Replace Clanlinks at profile pages and clan leaderboard
  6. // @author rabe85
  7. // @match https://www.munzee.com/m/*
  8. // @match https://www.munzee.com/m/*/*
  9. // @match https://www.munzee.com/settings
  10. // @match https://www.munzee.com/settings/*
  11. // @match https://www.munzee.com/clans
  12. // @match https://www.munzee.com/clans/*
  13. // @grant GM_setValue
  14. // @grant GM_getValue
  15. // @grant GM_deleteValue
  16. // ==/UserScript==
  17.  
  18. (function() {
  19. 'use strict';
  20.  
  21. function munzee_clanlink_replace() {
  22.  
  23. var clanlink_firstrun = GM_getValue('clanlink_firstrun', 1);
  24.  
  25. if(clanlink_firstrun == 1) {
  26.  
  27. function clanlink_firstrun_button0() {
  28. GM_setValue('clanlink_option', 0);
  29. GM_setValue('clanlink_firstrun', 0);
  30. location.reload();
  31. }
  32. function clanlink_firstrun_button1() {
  33. GM_setValue('clanlink_option', 1);
  34. GM_setValue('clanlink_firstrun', 0);
  35. location.reload();
  36. }
  37. function clanlink_firstrun_button2() {
  38. GM_setValue('clanlink_option', 2);
  39. GM_setValue('clanlink_firstrun', 0);
  40. location.reload();
  41. }
  42. function clanlink_firstrun_button3() {
  43. document.getElementById('clanlink_firstrun_desc').setAttribute('style', 'display: block;font-style: normal;font-weight: lighter;');
  44. document.getElementById('clanlink_firstrun_input').setAttribute('style', 'display: inline;width: 200px;color: #000;padding: 5px;border-radius: 10px;font-style: normal;');
  45. var input_value = document.getElementById('clanlink_firstrun_input').value;
  46. GM_setValue('clanlink_option', 3);
  47. GM_setValue('clanlink_input', input_value);
  48. GM_setValue('clanlink_firstrun', 0);
  49. if(input_value != 'https://') location.reload();
  50. }
  51. document.body.insertAdjacentHTML('afterbegin', '<div style="position: fixed;left: 0px;top: 0px;height: 100%;width: 100%;background-color: black;opacity: 0.9;z-index: 9999;text-align: center;font-family: Ubuntu,sans-serif;font-weight: 400;font-style: italic;color: #fff;"><div style="margin: 50px;font-style: normal;font-size: x-large;">Munzee Clanlink Replace</div><div style="margin: 50px;color: white;font-size: larger;">Welcome, this script will change the clanlink<br>at the profile page. Please choose an option.<br><br>You can change it whenever you want<br>at your <a href="https://www.munzee.com/settings" style="color: #fff;">profile settings</a> page.</div><div><button id="clanlink_firstrun_button0" class="user-stat stat-green" style="width: 200px;padding-top: 0px;border-radius: 10px !important;margin-bottom: 15px;">Off (default link)</button><br><button id="clanlink_firstrun_button1" class="user-stat stat-green" style="width: 200px;padding-top: 0px;border-radius: 10px !important;margin-bottom: 15px;">Clan Stats by RUJA</button><br><button id="clanlink_firstrun_button2" class="user-stat stat-green" style="width: 200px;padding-top: 0px;border-radius: 10px !important;margin-bottom: 15px;">CuppaZee</button><br><button id="clanlink_firstrun_button3" class="user-stat stat-green" style="width: 200px;padding-top: 0px;border-radius: 10px !important;margin-bottom: 15px;">Own Clanlink</button><br><div style="display:none;" id="clanlink_firstrun_desc"><i class="fa fa-info-circle"></i> Use {id} for Clan ID and {name} for Clan Simple Name</div><br><input type="text" id="clanlink_firstrun_input" name="clanlink_firstrun_input" size="30" value="https://" style="display: none;"></div></div>');
  52.  
  53. document.getElementById('clanlink_firstrun_button0').addEventListener('click', clanlink_firstrun_button0, false);
  54. document.getElementById('clanlink_firstrun_button1').addEventListener('click', clanlink_firstrun_button1, false);
  55. document.getElementById('clanlink_firstrun_button2').addEventListener('click', clanlink_firstrun_button2, false);
  56. document.getElementById('clanlink_firstrun_button3').addEventListener('click', clanlink_firstrun_button3, false);
  57. document.getElementById('clanlink_firstrun_input').addEventListener('change', clanlink_firstrun_button3, false);
  58.  
  59. } else {
  60.  
  61. var url_path = window.location.pathname;
  62. var url_array = url_path.split("/");
  63. var url_array_lenght = url_array.length - 1;
  64. var url_switch = url_array[url_array_lenght];
  65.  
  66. var clanlink_option = GM_getValue('clanlink_option', 0);
  67. var clanlink_input = GM_getValue('clanlink_input', '');
  68.  
  69. if(url_array[1] == 'settings') { // Settings page
  70.  
  71. function clanlink_input_speichern() {
  72. GM_setValue('clanlink_input', document.getElementById('clanlink_input').value);
  73. }
  74. function clanlink_option_aendern() {
  75. var clanlink_option_selected = document.getElementById('clanlink_option').value;
  76. GM_setValue('clanlink_option', clanlink_option_selected);
  77. if(clanlink_option_selected == 3) {
  78. document.getElementById('clanlink_input_div').setAttribute('style', 'margin-bottom: 25px;');
  79. } else {
  80. document.getElementById('clanlink_input_div').setAttribute('style', 'margin-bottom: 25px; display: none;');
  81. }
  82. }
  83.  
  84. document.getElementById('distance_type').parentElement.parentElement.setAttribute('style', 'margin-bottom: 10px;');
  85.  
  86. var clanlink_option0_selected = '';
  87. var clanlink_option1_selected = '';
  88. var clanlink_option2_selected = '';
  89. var clanlink_option3_selected = '';
  90. var clanlink_input_style = 'display: none;';
  91. if(clanlink_option == 0) { clanlink_option0_selected = 'selected="selected"'; }
  92. if(clanlink_option == 1) { clanlink_option1_selected = 'selected="selected"'; }
  93. if(clanlink_option == 2) { clanlink_option2_selected = 'selected="selected"'; }
  94. if(clanlink_option == 3) { clanlink_option3_selected = 'selected="selected"'; clanlink_input_style = ''; }
  95.  
  96. var pos = document.getElementById('email_address').parentElement.parentElement;
  97. pos.setAttribute('style', 'margin-bottom: 10px;');
  98. pos.insertAdjacentHTML('afterend', '<div class="clearfix col-xs-12 col-md-6 setting-box" style="margin-bottom: 25px;"><label for="xxlInput">Clanlink Option</label><div class="input"><select name="clanlink_option" id="clanlink_option" class="form-control"><option value="0" ' + clanlink_option0_selected + '>Off (default link)</option><option value="1" ' + clanlink_option1_selected + '>Clan Stats by RUJA</option><option value="2" ' + clanlink_option2_selected + '>CuppaZee</option><option value="3" ' + clanlink_option3_selected + '>Own Clanlink</option></select></div></div><div class="clearfix col-xs-12 col-md-6 setting-box" id="clanlink_input_div" style="margin-bottom: 25px; ' + clanlink_input_style + '"><label for="xlInput">Own Clanlink&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight: normal;"><i class="fa fa-info-circle"></i> Use {id} for Clan ID and {name} for Clan Simple Name</span></label><div class="input"><input class="form-control" id="clanlink_input" name="clanlink_input" size="30" type="text" value="' + clanlink_input + '"></div></div>');
  99.  
  100. document.getElementById('clanlink_option').addEventListener('change', clanlink_option_aendern, false);
  101. document.getElementById('clanlink_input').addEventListener('input', clanlink_input_speichern, false);
  102. } else {
  103. if(clanlink_option == 1 || clanlink_option == 2 || clanlink_option == 3) {
  104.  
  105. var load_fancybox = 0;
  106.  
  107. function clanpage(position,id,name) {
  108. if(clanlink_option == 1) { // Clan Stats by RUJA
  109. if(id != 0 || name != '') {
  110. if(id != 0) {
  111. position.setAttribute('data-src','https://stats.munzee.dk/?' + id);
  112. load_fancybox = 1;
  113. } else {
  114. position.setAttribute('data-src','https://stats.munzee.dk/?clan_name' + name);
  115. load_fancybox = 1;
  116. }
  117. }
  118. } else {
  119. if(clanlink_option == 2) { // CuppaZee
  120. if(id != 0) {
  121. position.setAttribute('data-src','https://cuppazee.app/clan/' + id);
  122. load_fancybox = 1;
  123. }
  124. } else {
  125. position.setAttribute('data-src',clanlink_input.replace(/{id}/g,id).replace(/{name}/g,name));
  126. load_fancybox = 1;
  127. }
  128. }
  129. if(load_fancybox == 1) {
  130. position.setAttribute('href', 'javascript:;');
  131. position.setAttribute('title', 'Open Clanpage (external link)');
  132. position.setAttribute('data-fancybox', '');
  133. position.setAttribute('data-type', 'iframe');
  134. }
  135. }
  136.  
  137. if(url_array[1] == 'clans') { // Clan Leaderboards
  138. var leaderboard_tr0 = document.getElementsByClassName('table')[0].getElementsByTagName('tr');
  139. for(var ltr = 0, leaderboard_tr; !!(leaderboard_tr=leaderboard_tr0[ltr]); ltr++) {
  140. var leaderboard_clanid = 0;
  141. var leaderboard_clanname = '';
  142. var leaderboard_logo = leaderboard_tr.querySelector('img[data-src*=clan_logos]');
  143. var leaderboard_logo_src = '';
  144. if(leaderboard_logo) {
  145. leaderboard_logo_src = leaderboard_logo.getAttribute('data-src');
  146. leaderboard_logo.setAttribute('src', leaderboard_logo_src); // Workaround, lazy loading doesn't work anymore
  147. }
  148. if(leaderboard_logo_src) {
  149. leaderboard_clanid = parseInt((leaderboard_logo_src.match(/clan_logos\/([^/.]+)\.png/)||[])[1],36);
  150. }
  151. if(leaderboard_clanid != 0) {
  152. var leaderboard_td0 = leaderboard_tr.getElementsByTagName('td');
  153. for(var ltd = 0, leaderboard_td; !!(leaderboard_td=leaderboard_td0[ltd]); ltd++) {
  154. leaderboard_td.innerHTML = '<a href="javascript:;" id="leaderboard_tr' + ltr + 'td' + ltd + '" title="Open Clanpage (external link)" data-fancybox data-type="iframe">' + leaderboard_td.innerHTML + '</a>';
  155. clanpage(document.getElementById('leaderboard_tr' + ltr + 'td' + ltd),leaderboard_clanid,leaderboard_clanname);
  156. }
  157. }
  158. }
  159. } else { // Player profile
  160. var clanlink_replace0 = document.querySelectorAll('a[href^="/clans/"]');
  161. for(var cr = 0, clanlink_replace; !!(clanlink_replace=clanlink_replace0[cr]); cr++) {
  162. var clanid = 0;
  163. var clanname = '';
  164. var logo = document.querySelector('img[src*=clan_logos]');
  165. var logo_src = '';
  166. var link = clanlink_replace.getAttribute('href');
  167. if(logo) {
  168. logo_src = logo.getAttribute('src');
  169. }
  170. if(logo_src) {
  171. clanid = parseInt((logo_src.match(/clan_logos\/([^/.]+)\.png/)||[])[1],36);
  172. }
  173. if(link) {
  174. clanname = link.split('/')[link.split('/').length - 2];
  175. }
  176. clanpage(clanlink_replace,clanid,clanname);
  177. }
  178. }
  179.  
  180. if(load_fancybox == 1) {
  181. var load_fancybox_css = document.createElement('link');
  182. load_fancybox_css.rel = 'StyleSheet';
  183. load_fancybox_css.type = 'text/css';
  184. load_fancybox_css.href = 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css';
  185. document.head.appendChild(load_fancybox_css);
  186.  
  187. var load_fancybox_script = document.createElement('script');
  188. load_fancybox_script.src = 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js';
  189. document.body.appendChild(load_fancybox_script);
  190. }
  191. }
  192. }
  193. }
  194.  
  195. }
  196.  
  197.  
  198. // DOM vollständig aufgebaut?
  199. if (/complete|interactive|loaded/.test(document.readyState)) {
  200. munzee_clanlink_replace();
  201. } else {
  202. document.addEventListener("DOMContentLoaded", munzee_clanlink_replace, false);
  203. }
  204.  
  205. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址