Advertisement
Guest User

JV Chat (extension pour jeuxvideo.com)

a guest
Dec 22nd, 2012
1,338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement