Zalati

tsviewer FR translation

Oct 11th, 2017
252
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var TSV=TSV||{};TSV.ViewerScript={Helper:{getInnerViewerDiv:function(regId)
  2. {return document.getElementById('ts3v_'+ regId);},getOuterViewerDiv:function(regId)
  3. {return document.getElementById('ts3viewer_'+ regId);},storageAvailable:function(type)
  4. {try
  5. {var storage=window[type];var x='__storage_test__';storage.setItem(x,x);storage.removeItem(x);return true;}
  6. catch(e)
  7. {return false;}}},Loader:{staticFilesUrl:'https://static.tsviewer.com/',pageUrl:'https://www.tsviewer.com/',scriptLoaders:{},styleSheetGenerators:{},urlParsers:{},ScriptLoader:function(url,onLoadCallback,onErrorCallback)
  8. {this.url=url;this.onLoadCallback=onLoadCallback;this.onErrorCallback=onErrorCallback;this.element=null;this.createAndAppend=function()
  9. {this.element=document.createElement('script');this.element.type='text/javascript';this.element.charset='utf-8';this.element.async=1;this.element.src=this.url;document.head.appendChild(this.element);this.element.onload=this.onLoadCallback;this.element.onerror=this.onErrorCallback;};this.remove=function()
  10. {document.head.removeChild(this.element);}},UrlParser:function(url)
  11. {this.url=url;this.parsed=null;this.getUrl=function()
  12. {return this.url;};this.getParsed=function()
  13. {if(this.parsed==null)
  14. {this.parse();}
  15. return this.parsed;};this.parse=function()
  16. {var vars={};this.url.replace
  17. (/[?&]+([^=&]+)=?([^&]*)?/gi,function(m,key,value)
  18. {if(typeof value=='undefined')
  19. {value=null;}
  20. vars[key]=value;});this.parsed=vars;};},StyleSheetGenerator:function(params)
  21. {this.params=params;this.generatedCss=null;this.element=null;this.getCss=function()
  22. {if(this.generatedCss===null)
  23. {this.generate();}
  24. return this.generatedCss;};this.append=function()
  25. {this.element=document.createElement('style');this.element.type='text/css';this.element.innerHTML=this.getCss();document.head.appendChild(this.element);};this.remove=function()
  26. {document.head.removeChild(this.element);};this.generate=function()
  27. {var sl='#'+'ts3v_'+ this.getValue('ID');var css='';css+=sl+' * '+'{'+'border: 0;'+'margin: 0;'+'padding: 0;'+'line-height: inherit;'+'}'+
  28. sl+'{'+'display: block;'+'width: 100%;'+'height: 100%;'+'text-align: left !important;'+'line-height: 16px;'+'overflow: auto;'+'padding-bottom: 4px;'+'}'+
  29. sl+', '+
  30. sl+' small, '+
  31. sl+' .tsv_server a:link, '+
  32. sl+' .tsv_server a:visited, '+
  33. sl+' .tsv_server a:active, '+
  34. sl+' .tsv_server a:hover, '+
  35. sl+' .tsv_serverinfo, '+
  36. sl+' .tsv_serverinfo a:link, '+
  37. sl+' .tsv_serverinfo a:visited, '+
  38. sl+' .tsv_serverinfo a:active, '+
  39. sl+' .tsv_serverinfo:hover, '+
  40. sl+' .tsv_serverinfo:hover a:hover, '+
  41. sl+' .tsv_channel, '+
  42. sl+' .tsv_channel:hover, '+
  43. sl+' .tsv_user, '+
  44. sl+' .tsv_user a:link, '+
  45. sl+' .tsv_user a:visited, '+
  46. sl+' .tsv_user a:active, '+
  47. sl+' .tsv_user:hover, '+
  48. sl+' .tsv_user:hover a:hover, '+
  49. sl+' .tsv_spacer, '+
  50. sl+' .tsv_content '+'{'+
  51. this.getRule('color',this.getColor('text'))+
  52. this.getRule('font-family',this.getFontFamily())+
  53. this.getRule('font-size',this.getPixelSize('text_size'))+'}'+
  54. sl+' .tsv_level '+'{'+'line-height: 1.5;'+'clear: both;'+'white-space: nowrap;'+'}'+
  55. sl+'.hideEmptyChannels .tsv_channel.tsv_empty, '+
  56. sl+'.hideEmptyChannels .tsv_spacer.tsv_empty '+'{'+'display: none;'+'}'+
  57. sl+'.hideEmptyChannels .tsv_channel '+'{'+'margin-top: 4px !important;'+'}'+
  58. sl+' .tsv_serverinfo '+'{'+'margin-bottom: 4px !important;'+'}'+
  59. sl+'.hideEmptyChannels .tsv_serverinfo '+'{'+'margin-bottom: 0 !important;'+'}'+
  60. sl+'.hideEmptyChannels .tsv_level.tsv_channel .tsv_content, '+
  61. sl+'.hideEmptyChannels .tsv_level.tsv_spacer .tsv_content '+'{'+'padding-left: 0 !important;'+'}'+
  62. sl+'.hideEmptyChannels .tsv_level.tsv_user .tsv_content '+'{'+'padding-left: 40px !important;'+'}'+
  63. sl+'.hideFlags .tsv_level.tsv_user .tsv_suffix .tsv_flag '+'{'+'display: none !important;'+'}';for(var i=0;i<=8;i++)
  64. {css+=sl+' .tsv_level .tsv_content.tsv_depth_'+ i+'{'+'padding-left: '+(i*20)+'px'+'}';}
  65. css+=sl+' .tsv_content '+'{'+'box-sizing: border-box;'+'-moz-box-sizing: border-box;'+'-webkit-box-sizing: border-box;'+'background: none !important;'+'background-color: transparent !important;'+'float: none !important;'+'width: auto !important;'+'}'+
  66. sl+' .tsv_level .tsv_content:before, '+
  67. sl+' .tsv_level .tsv_content:after, '+
  68. sl+' .tsv_user:before, '+
  69. sl+' .tsv_user:after, '+
  70. sl+' .tsv_user .tsv_flag:before, '+
  71. sl+' .tsv_user .tsv_flag:after '+'{'+'content: initial;'+'display: none;'+'clear: none;'+'}'+
  72. sl+' .tsv_level img '+'{'+'vertical-align: text-top;'+'height: 16px;'+'width: 16px;'+'}'+
  73. sl+' .tsv_suffix '+'{'+'float: right;'+'position: relative;'+'text-align: right;'+'}'+
  74. sl+' .tsv_suffix i '+'{'+'margin-left: 3px;'+'}'+
  75. sl+' .tsv_prefixIcon '+'{'+'margin-right: 6px;'+'}'+
  76. sl+' .tsv_left '+'{'+'text-align: left;'+'}'+
  77. sl+' .tsv_center '+'{'+'text-align: center;'+'}'+
  78. sl+' .tsv_right '+'{'+'text-align: right;'+'}'+
  79. sl+' .tsv_server a:link, '+ sl+' .tsv_server a:visited '+'{'+
  80. this.getDefaultDefinition('text_s',false)+'}'+
  81. sl+' .tsv_server a:active, '+ sl+' .tsv_server a:hover '+'{'+
  82. this.getDefaultDefinition('text_s',true)+'}'+
  83. sl+' .tsv_serverinfo a:link, '+ sl+' .tsv_serverinfo a:visited'+'{'+
  84. this.getDefaultDefinition('text_i',false)+'}'+
  85. sl+' .tsv_serverinfo a:active, '+ sl+' .tsv_serverinfo a:hover '+'{'+
  86. this.getDefaultDefinition('text_i',true)+'}'+
  87. sl+' .tsv_channel .tsv_content '+'{'+
  88. this.getDefaultDefinition('text_c',false)+'}'+
  89. sl+' .tsv_channel:hover .tsv_content '+'{'+
  90. this.getDefaultDefinition('text_c',true)+'}'+
  91. sl+' .tsv_user, '+ sl+' .tsv_user a:link, '+ sl+' .tsv_user a:visited, '+ sl+' .tsv_user a:active '+'{'+
  92. this.getDefaultDefinition('text_u',false)+'}'+
  93. sl+' .tsv_user:hover, '+ sl+' .tsv_user:hover a:hover '+'{'+
  94. this.getDefaultDefinition('text_u',true)+'}'+
  95. sl+' .tsv_user .tsv_content .ts3v_user_tooltip '+'{'+'display: none !important;'+'position: absolute;'+'z-index: 100;'+'background-color: white;'+'color: grey;'+'font-size: 11px;'+'font-weight: normal;'+'width: 127px;'+'overflow: hidden;'+'padding: 3px;'+'border-radius: 3px;'+'box-sizing: border-box;'+'box-shadow: 0 1px 3px #888;'+'}'+
  96. sl+' .tsv_user .tsv_content .ts3v_user_tooltip div label '+'{'+'color: grey;'+'white-space: nowrap;'+'display: inline-block;'+'width: 48px;'+'font-size: 11px;'+'font-weight: normal;'+'font-family: inherit;'+'text-align: right;'+'padding-right: 8px;'+'line-height: inherit;'+'}'+
  97. sl+' .tsv_user .tsv_content .ts3v_user_tooltip div span '+'{'+'color: black;'+'white-space: nowrap;'+'display: inline-block;'+'font-size: 11px;'+'font-weight: normal;'+'font-family: inherit;'+'line-height: inherit;'+'}'+
  98. sl+' .tsv_user .tsv_content .ts3v_user_tooltip a.boxedLink '+'{'+'display: block !important;'+'color: #545454 !important;'+'background-color: #F1F1F1 !important;'+'font-size: 10px !important;'+'margin-top: 4px !important;'+'margin-bottom: 4px !important;'+'border: 1px solid #d8d8d8 !important;'+'padding: 1px 5px !important;'+'text-align: center !important;'+'font-weight: normal !important;'+'}'+
  99. sl+' .tsv_user .tsv_content .ts3v_user_tooltip a.boxedLink:hover '+'{'+'color: #000000 !important;'+'background-color: #ffcc00 !important;'+'border: 1px solid #d78e00 !important;'+'}'+
  100. sl+' .tsv_user .tsv_content .ts3v_user_tooltip .tsv_userBanner '+'{'+'width: 121px;'+'height: 23px;'+'display: block;'+'}'+
  101. sl+' .tsv_user:hover .tsv_content .ts3v_user_tooltip '+'{'+'display: block !important;'+'}';var iconsPath=TSV.ViewerScript.Loader.staticFilesUrl+'images/ts3/';var iconSet=this.getValue('iconset','default');var viewerImages=['host','tree','group_icon_100','group_icon_200','group_icon_300','group_icon_400','group_icon_500','group_icon_600','channel_full','channel_pass','channel_open','channel_flag_default','channel_flag_password','channel_flag_music','channel_flag_moderated','client_away','client_priority','client_cc','client_idle','client_talker','client_mic_muted','client_mic_disabled','client_snd_disabled','client_snd_muted','client_cc_talk','client_cc_idle'];var flagImages=['ad','ae','af','ag','ai','al','am','an','ao','ar','as','at','au','aw','ax','az','ba','bb','bd','be','bf','bg','bh','bi','bj','bl','bm','bn','bo','br','bs','bt','bv','bw','by','bz','ca','cc','cd','cf','cg','ch','ci','ck','cl','cm','cn','co','cr','cs','cu','cv','cx','cy','cz','de','dj','dk','dm','do','dz','ec','ee','eg','eh','er','es','et','fi','fj','fk','fm','fo','fr','ga','gb','gd','ge','gf','gg','gh','gi','gl','gm','gn','gp','gq','gr','gs','gt','gu','gw','gy','hk','hm','hn','hr','ht','hu','id','ie','il','im','in','io','iq','ir','is','it','je','jm','jo','jp','ke','kg','kh','ki','km','kn','kp','kr','kw','ky','kz','la','lb','lc','li','lk','lr','ls','lt','lu','lv','ly','ma','mc','md','me','mg','mh','mk','ml','mm','mn','mo','mp','mq','mr','ms','mt','mu','mv','mw','mx','my','mz','na','nc','ne','nf','ng','ni','nl','no','np','nr','nu','nz','om','pa','pe','pf','pg','ph','pk','pl','pm','pn','pr','ps','pt','pw','py','qa','re','ro','rs','ru','rw','sa','sb','sc','sd','se','sg','sh','si','sj','sk','sl','sm','sn','so','sr','st','sv','sy','sz','tc','td','tf','tg','th','tj','tk','tl','tm','tn','to','tr','tt','tv','tw','tz','ua','ug','uk','um','us','uy','uz','va','vc','ve','vg','vi','vn','vu','wf','ws','ye','yt','za','zm','zw'];for(i=0;i<viewerImages.length;i++)
  102. {css+=sl+' i.tsv_viewer.'+ viewerImages[i]+' '+'{'+'background-image: url('+ iconsPath+'viewer/'+ iconSet+'/'+ viewerImages[i]+'.png);'+'}';}
  103. for(i=0;i<flagImages.length;i++)
  104. {css+=sl+' i.tsv_flag.'+ flagImages[i]+' '+'{'+'background-image: url('+ iconsPath+'flags/'+ flagImages[i]+'.png);'+'}';}
  105. css+=sl+' .tsv_level.tsv_spacer.tsv_center i.tsv_viewer.tree, '+
  106. sl+' .tsv_level.tsv_spacer.tsv_right i.tsv_viewer.tree '+'{'+'background-image: none;'+'width: 0 !important;'+'}';css+=sl+' i.tsv_viewer.tree '+'{'+'margin-right: 4px;'+'}';css+=sl+' i '+'{'+'display: inline-block !important;'+'vertical-align: text-bottom !important;'+'background-size: contain !important;'+'background-repeat: no-repeat !important;'+'}'+
  107. sl+' i.tsv_viewer '+'{'+'width: 16px !important;'+'height: 16px !important;'+'}'+
  108. sl+' i.tsv_flag '+'{'+'width: 16px !important;'+'height: 11px !important;'+'vertical-align: middle !important;'+'}';this.generatedCss=css;};this.getDefaultDefinition=function(key,isHover)
  109. {var css='';var keySuffix='';if(isHover)
  110. {keySuffix='_h';}
  111. css+='display: inline !important;'+'text-align: left !important;'+
  112. this.getRule('color',this.getColor(key+'_color'+ keySuffix))+
  113. this.getRuleWithKey('font-weight',key+'_weight'+ keySuffix,null)+
  114. this.getRuleWithKey('font-style',key+'_style'+ keySuffix,null)+
  115. this.getRuleWithKey('font-variant',key+'_variant'+ keySuffix,null)+
  116. this.getRuleWithKey('text-decoration',key+'_decoration'+ keySuffix,'none');return css;};this.getRuleWithKey=function(property,key,defaultValue)
  117. {return this.getRule(property,this.getValue(key,defaultValue));};this.getRule=function(property,value)
  118. {if(value!==null)
  119. {return property+': '+ value+' !important;';}
  120. else
  121. {return'';}};this.getColor=function(key)
  122. {var value=null;if(key!='text')
  123. {value=this.getValue(key);}
  124. if(value===null)
  125. {value=this.getValue('text');}
  126. if(value!==null)
  127. {return'#'+ value;}
  128. else
  129. {return value;}};this.getPixelSize=function(key)
  130. {var value=this.getValue(key);if(value!==null)
  131. {return value+'px';}
  132. else
  133. {return value;}};this.getValue=function(key,defaultValue)
  134. {if(typeof this.params[key]!='undefined'&&this.params[key]!==null)
  135. {return this.params[key];}
  136. else
  137. {if(typeof defaultValue!='undefined')
  138. {return defaultValue;}
  139. return null;}};this.getFontFamily=function()
  140. {var param=this.getValue('text_family');if(param!==null)
  141. {switch(param)
  142. {case'2':return"Times New Roman, Times, serif";case'3':return"Georgia, Times New Roman, Times, serif";case'4':return"Verdana, Arial, Helvetica, sans-serif";case'5':return"Arial, Helvetica, sans-serif";case'6':return"inherit";}}
  143. return"'Segoe UI', FreeSans, sans-serif";};},init:function(url,regId,maxRepetitions)
  144. {if(this.blockUnauthorizedApp(regId))
  145. {return;}
  146. this.urlParsers[regId]=new this.UrlParser(url);this.styleSheetGenerators[regId]=new this.StyleSheetGenerator(this.urlParsers[regId].getParsed());this.styleSheetGenerators[regId].append();this.load(regId);},blockUnauthorizedApp:function(regId)
  147. {if(window.location.hostname=='bploeg.com')
  148. {var message='<div style="font-family: Roboto, sans-serif;">';message+='<div style="font-size: 14px; margin-bottom: 24px;">This unauthorized App has been replaced by the TSViewer.com WebApp. Get it on Google Play.</div>';message+='<div style="background: white; box-shadow: 0 2px 4px rgba(0,0,0,0.1); padding: 8px; margin: 8px;" onclick="window.location.href=\'https://play.google.com/store/apps/details?id=com.tsviewer.webapp\'">';message+='<img style="display: inline-block; vertical-align: middle; width: 42px; margin-right: 16px;" src="https://lh3.googleusercontent.com/3S-JzTDrxSDQ84O0MtFuaxYrjqffmxWa05Y5BPyQKpjBpsIsVZS-w1G9DwRInehQUg=w300-rw">';message+='<div style="display: inline-block; vertical-align: middle;"><div style="font-size: 16px;">TSViewer.com</div><div style="font-size: 12px; color: grey;">Viewer for TeamSpeak 3</div></div>';message+='</div>';message+='<a style="clear: both; display: block; margin-top: 32px;" href="https://play.google.com/store/apps/details?id=com.tsviewer.webapp"><img src="'+ TSV.ViewerScript.Loader.staticFilesUrl+'images/play_store_badge_bright.png" style="width: 106px; float: right;"></a>';message+='</div>';TSV.ViewerScript.Helper.getOuterViewerDiv(regId).innerHTML=message;return true;}
  149. else
  150. {return false;}},load:function(regId)
  151. {var onLoadCallback=function()
  152. {this.finishUpdate(regId,true);}.bind(this);var onErrorCallback=function()
  153. {this.finishUpdate(regId,false);}.bind(this);this.scriptLoaders[regId]=new this.ScriptLoader
  154. (this.urlParsers[regId].getUrl(),onLoadCallback,onErrorCallback);this.scriptLoaders[regId].createAndAppend();TSV.ViewerScript.Helper.getOuterViewerDiv(regId).innerHTML=' <img src="'+ this.staticFilesUrl+'/images/loading_14.svg" alt="" title="'+ regId+'" /> Consultation TS3 avec <a href="'+ this.pageUrl+'" target="_blank">TSViewer.com</a>';},finishUpdate:function(regId,success)
  155. {var html;if(!success)
  156. {html='Impossible de charger le TSViewer<br>Veuillez signaler ce problème sur le twitter @Zalati_';}
  157. else
  158. {html=TSV.ViewerScript.Data[regId]['html'];}
  159. TSV.ViewerScript.Helper.getOuterViewerDiv(regId).innerHTML=html;if(typeof TSV.TsviewerPage!='undefined'&&typeof TSV.TsviewerPage.receiveData=='function')
  160. {TSV.TsviewerPage.receiveData();}
  161. else
  162. {this.applyLocalStoragePreferences(regId);}
  163. if(typeof displayClientData=='undefined')
  164. {window.displayClientData=function(div)
  165. {}}
  166. TSV.ViewerScript.ToolTips.addEvents(regId);},refresh:function(regId)
  167. {this.scriptLoaders[regId].remove();delete TSV.ViewerScript.Data[regId];this.load(regId);},setUrl:function(regId,url)
  168. {if(this.urlParsers[regId].getUrl()!=url)
  169. {this.urlParsers[regId]=new this.UrlParser(url);}},redoCss:function(regId)
  170. {this.styleSheetGenerators[regId].remove();this.styleSheetGenerators[regId]=new this.StyleSheetGenerator(this.urlParsers[regId].getParsed());this.styleSheetGenerators[regId].append();},applyLocalStoragePreferences:function(regId)
  171. {if(TSV.ViewerScript.Helper.storageAvailable('localStorage'))
  172. {this.applyLocalStoragePreference_hideEmptyChannels(regId);}
  173. else
  174. {console.info('local storage not available');}},applyLocalStoragePreference_hideEmptyChannels:function(regId)
  175. {var varName='hideEmptyChannels';var userPreference=localStorage.getItem('tsv_'+ regId+'_'+ varName);if(userPreference!==null)
  176. {var viewerClassList=TSV.ViewerScript.Helper.getInnerViewerDiv(regId).classList;if(JSON.parse(userPreference)==true)
  177. {if(!viewerClassList.contains(varName))
  178. {viewerClassList.add(varName);}
  179. else
  180. {}}
  181. else
  182. {if(viewerClassList.contains(varName))
  183. {viewerClassList.remove(varName);}
  184. else
  185. {}}}
  186. else
  187. {}},toggleEmptyChannels:function(regId)
  188. {var varName='hideEmptyChannels';var viewerClassList=TSV.ViewerScript.Helper.getInnerViewerDiv(regId).classList;viewerClassList.toggle(varName);if(TSV.ViewerScript.Helper.storageAvailable('localStorage'))
  189. {localStorage.setItem('tsv_'+ regId+'_'+ varName,viewerClassList.contains(varName));}
  190. else
  191. {}}},ToolTips:{addEvents:function(regId)
  192. {var viewerDiv=TSV.ViewerScript.Helper.getInnerViewerDiv(regId);var querySelect=viewerDiv.querySelectorAll('div.tsv_level.tsv_user');var _this=this;for(var i=0;i<querySelect.length;i++)
  193. {querySelect[i].addEventListener('mouseenter',function(target)
  194. {_this.onMouseEnter(target,regId);});}},onMouseEnter:function(mouseEvent,regId)
  195. {var div=mouseEvent.target;this.createHtml(div,regId);this.reposition(div,regId,mouseEvent);},reposition:function(div,regId,mouseEvent)
  196. {if(this.isChromium())
  197. {var viewerInner=TSV.ViewerScript.Helper.getInnerViewerDiv(regId);var toolTip=div.querySelector('.ts3v_user_tooltip');if(viewerInner.scrollTop>0)
  198. {toolTip.style.marginTop='-'+ viewerInner.scrollTop+'px';}
  199. else
  200. {toolTip.style.marginTop='0';}}},isChromium:function()
  201. {if(typeof this.isChromiumReturn=='undefined')
  202. {var isChromium=window.chrome,winNav=window.navigator,vendorName=winNav.vendor,isOpera=winNav.userAgent.indexOf("OPR")>-1,isIEedge=winNav.userAgent.indexOf("Edge")>-1,isIOSChrome=winNav.userAgent.match("CriOS");if(isIOSChrome){this.isChromiumReturn=true;}else if(isChromium!==null&&isChromium!==undefined&&vendorName==="Google Inc."&&isOpera==false&&isIEedge==false){this.isChromiumReturn=true;}else{this.isChromiumReturn=false;}}
  203. return this.isChromiumReturn;},createHtml:function(element,regId)
  204. {if(!element.classList.contains('ts3v_tooltip_created'))
  205. {element.classList.add('ts3v_tooltip_created');var tooltip=this.HtmlCreator.create(element,regId);element.querySelector('.tsv_content').appendChild(tooltip);}},HtmlCreator:{create:function(div,regId)
  206. {var tooltip=document.createElement('div');tooltip.classList.add('ts3v_user_tooltip');if(div.dataset.client_away==1)
  207. {var awayMessage=div.dataset.client_away_message;if(awayMessage=='')
  208. {awayMessage='-';}
  209. tooltip.appendChild(this.createDataDiv('Absent',awayMessage));}
  210. if(div.dataset.client_input_overall_muted==1)
  211. {tooltip.appendChild(this.createDataDiv('Micro','coupé'));}
  212. if(div.dataset.client_output_overall_muted==1)
  213. {tooltip.appendChild(this.createDataDiv('Son','coupé'));}
  214. var onlineTimeHuman=this.getHumanTimePassed(div.dataset.client_lastconnected,true,false);tooltip.appendChild(this.createDataDiv('En ligne',onlineTimeHuman));var idleTime=div.dataset.client_idle_time;if(idleTime>60000)
  215. {var idleHuman=this.getHumanTimePassed(idleTime,false,true);tooltip.appendChild(this.createDataDiv('AFK',idleHuman));}
  216. tooltip.appendChild(this.createDataDiv('Connu',this.getHumanTimePassed(div.dataset.client_created,true,false)));var serverIp=TSV.ViewerScript.Data[regId]['net_ip'];var udpPort=TSV.ViewerScript.Data[regId]['net_udp_port'];var channelId=div.dataset.cid;tooltip.appendChild(this.createBoxedLink('Se connecter au client',this.getConnectToUserLink(serverIp,udpPort,channelId),'Vous connecte au même canal que ce client'));var encodedUniqueIdentifier=encodeURIComponent(div.dataset.client_unique_identifier);tooltip.appendChild(this.createBoxedLink('Ajouter comme ami',this.getUserInfoLink(encodedUniqueIdentifier),''));tooltip.appendChild(this.createUserBanner(encodedUniqueIdentifier));return tooltip;},createDataDiv:function(labelName,data)
  217. {var div=document.createElement('div');var label=document.createElement('label');var dataSpan=document.createElement('span');label.textContent=labelName;dataSpan.textContent=data;div.appendChild(label);div.appendChild(dataSpan);return div;},getConnectToUserLink:function(ip,udpPort,channelId)
  218. {return'ts3server://'+ ip+'?port='+ udpPort+'&cid='+ channelId;},getUserInfoLink:function(uniqueIdentifier)
  219. {var a=document.createElement('a');a.href=TSV.ViewerScript.Loader.pageUrl+'index.php?page=userinfo&ident='+ uniqueIdentifier;return a;},createUserBanner:function(uniqueIdentifier)
  220. {var ub=document.createElement('img');ub.classList.add('tsv_userBanner');ub.src='https://userb.tsviewer.com/3_t-i/'+ uniqueIdentifier+'.png';var a=document.createElement('a');a.href=TSV.ViewerScript.Loader.pageUrl+'index.php?page=userbanners&ident='+ uniqueIdentifier;a.title='TS3 UserBanner';a.appendChild(ub);return a;},createBoxedLink:function(text,href,title)
  221. {var a=document.createElement('a');a.classList.add('boxedLink');a.href=href;a.textContent=text;a.title=title;return a;},getTimePassedlObject:function(intervalInSeconds)
  222. {var result={};var structure={day:86400,hour:3600,minute:60,second:1};Object.keys(structure).forEach(function(key)
  223. {result[key]=Math.floor(intervalInSeconds/structure[key]);intervalInSeconds-=result[key]*structure[key];});return result;},getHumanTimePassed:function(value,isSeconds,isDelta)
  224. {if(!isSeconds)
  225. {value=value/1000;}
  226. if(!isDelta)
  227. {value=(new Date().getTime()/ 1000) - value;
  228. }
  229. var interval=this.getTimePassedlObject(value);if(interval.day>0)
  230. {var hourString='';if(interval.day<3)
  231. {hourString=', '+ interval.hour+' h'}
  232. return interval.day+' j'+ hourString;}
  233. else if(interval.hour>0)
  234. {return interval.hour+' h, '+ interval.minute+' m';}
  235. else if(interval.minute>0)
  236. {return interval.minute+' min';}
  237. else
  238. {return interval.second+' sec';}}}},Data:{}};var ts3v_display=TSV.ViewerScript.Loader;
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×