Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

JV Chat (extension pour jeuxvideo.com)

By: a guest on Dec 22nd, 2012  |  syntax: JavaScript  |  size: 4.88 KB  |  views: 345  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //
  2. //                    _|  _|      _|        _|_|_|  _|                    _|
  3. //                    _|  _|      _|      _|        _|_|_|      _|_|_|  _|_|_|_|
  4. //                    _|  _|      _|      _|        _|    _|  _|    _|    _|
  5. //              _|    _|    _|  _|        _|        _|    _|  _|    _|    _|
  6. //                _|_|        _|            _|_|_|  _|    _|    _|_|_|      _|_|
  7. //
  8. //
  9. // JV Flux présente JV Chat <http://jvflux.com/jvchat/>,
  10. // discutez en temps réel sur les forums de jeuxvideo.com.
  11. //
  12. // Copyright (c) 2011 JV Flux <http://jvflux.com/> Tous droits réservés
  13. //
  14. // --------------------------------------------------------------------
  15. //
  16. // ==UserScript==
  17. // @name                        JV Chat Loader
  18. // @namespace           http://jvflux.com/jvchat/
  19. // @description         Discussions en temps réel sur les forums de jeuxvideo.com
  20. // @version                     1.2
  21. // @include                     http://www.jeuxvideo.com/forums/0-*
  22. // @include                     http://www.jeuxvideo.com/forums/1-*
  23. // @include                     http://www.jeuxvideo.com/forums/3-*
  24. // @include                     http://www.jeuxvideo.com/jvchat*
  25. // ==/UserScript==
  26.  
  27. /* Variables */
  28. window._jvchat = window._jvchat || {};
  29. var i, elems, elem;
  30.  
  31. /* Variables url */
  32. var url = location.href.split('/').pop();
  33. var url_parts = url.split('-');
  34.  
  35.  
  36. if (location.pathname == '/jvchat') {
  37.         /* On est sur le module JV Chat */
  38.  
  39.         /* Chargement de la dernière version */
  40.         elem = document.createElement('script');
  41.         elem.src = '//'+(document.getElementById('_jvchat_localhost') ? '127.0.0.1' : 'jvflux.com')+'/jvchat/jvchat.js';
  42.         document.body.appendChild(elem);
  43. }
  44. else if (url_parts.length >= 6) {
  45.         /* On est sur une page de forum */
  46.  
  47.         var url_parts_names = ['mode', 'forum', 'topic', 'page', 'zero', 'index'];
  48.         for (i in url_parts_names) {
  49.                 if (i >= url_parts.length) {
  50.                         break;
  51.                 }
  52.                 eval('url_'+url_parts_names[i]+' = '+url_parts[i]+';');
  53.         }
  54.  
  55.  
  56.         /* Liens sur la liste des topics */
  57.         if (url_mode === 0 && url_index === 1) { // première page uniquement
  58.                 elems = document.getElementsByClassName('navig_prec');
  59.                 for (i in elems) {
  60.                         elems[i].innerHTML = '<a target="jvchat" class="jvchat" href="/jvchat#'+url+'">JV Chat</a>';
  61.                 }
  62.         }
  63.  
  64.         /* Liens à côté des boutons alerte mail */
  65.         if (url_mode === 1 && document.getElementsByClassName('bt_repondre').length > 0) { // pas sur topics bloqués
  66.                 elems = document.getElementsByClassName('moder');
  67.                 for (i in elems) {
  68.                         //alert(typeof elems[i]);
  69.  
  70.                         if (typeof elems[i] == 'object') {
  71.                                 //elems[i].innerHTML += '<a target="jvchat" class="jvchat" href="/jvchat#'+url+'">JV Chat</a>';
  72.                                 elem = document.createElement('a');
  73.                                 elem.setAttribute('target', 'jvchat');
  74.                                 elem.setAttribute('class', 'jvchat');
  75.                                 elem.setAttribute('href', '/jvchat#'+url);
  76.                                 elem.appendChild(document.createTextNode('JV Chat'));
  77.                                 elems[i].appendChild(elem);
  78.                         }
  79.                 }
  80.         }
  81.  
  82.         /* Lien en bas du formulaire de réponse (mode 3), à côté de la liste des smileys */
  83.         elems = document.getElementsByClassName('lien_base');
  84.         if (url_mode === 3
  85.                 && elems.length
  86.                         && elems[0].getElementsByTagName('a').length
  87.                                 && elems[0].getElementsByTagName('a')[0].href === 'http://www.jeuxvideo.com/smileys/legende.htm') {
  88.                 elems[0].innerHTML += ' | <a target="jvchat" class="jvchat" href="/jvchat#'+url+'">JV Chat</a>';
  89.         }
  90.  
  91.         /* Lien dans la liste des forums */
  92.         if (0) {
  93.                 elem = document.getElementById('liste_forums') || document.getElementById('liste_forums_pref');
  94.                 if (elem !== null) {
  95.                         elem.innerHTML += '<li><a target="jvchat" class="jvchat" href="/jvchat#">JV Chat</a><li>';
  96.                 }
  97.         }
  98.  
  99.         /* Stylisation des liens */
  100.         elem = document.createElement('style');
  101.         elem.setAttribute('type', 'text/css');
  102.         elem.innerHTML = '/* CSS généré par JV Chat */ \
  103.                 .moder .jvchat, .navig_prec .jvchat { color: #666;  font-weight: bold;  border: 1px solid white;  border-top-right-radius: 5px;  border-bottom-left-radius: 5px; } \
  104.                 .moder .jvchat { padding: 1px 15px; } \
  105.                 .navig_prec .jvchat { padding: 1px 5px; } \
  106.                 .moder .jvchat:hover, .navig_prec .jvchat:hover { color: #333 !important;  border-color: #ccc; \
  107.                         background: -moz-linear-gradient(top, #fff 0%, #eee 50%, #e8e8e8 50%, #e8e8e8 100%); \
  108.                         background: -webkit-linear-gradient(top, #fff 0%,#eee 50%,#e8e8e8 50%,#e8e8e8 100%); \
  109.                         background: -o-linear-gradient(top, #fff 0%,#eee 50%,#e8e8e8 50%,#e8e8e8 100%); \
  110.                         background: -ms-linear-gradient(top, #fff 0%,#eee 50%,#e8e8e8 50%,#e8e8e8 100%); \
  111.                         background: linear-gradient(top, #fff 0%,#eee 50%,#e8e8e8 50%,#e8e8e8 100%); \
  112.                         filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=\'#fff\', endColorstr=\'#e8e8e8\',GradientType=0 ); \
  113.                 } \
  114.                 .moder .jvchat:active, .navig_prec .jvchat:active { background: #ddd; } \
  115.                 .lien_base .jvchat:hover { color: #333 !important; } \
  116.                 .lien_base .jvchat:active { background: #e8e8e8; } \
  117.         ';
  118.         document.getElementsByTagName('head')[0].appendChild(elem);
  119. }