hupnode.user.js hibajavítás

Javítottam a Greasemonkey szkripten, a hozzászólás törlés nem működött minden esetben.


// ==UserScript==
// @name     HUP-node
// @include  http://hup.hu/node/*
// @include  http://*.hup.hu/node/*
// @include  http://hup.hu/cikkek/*
// @include  http://*.hup.hu/cikkek/*
// @include  http://hup.hu/szavazasok/*
// @include  http://*.hup.hu/szavazasok/*
// @include  http://hup.hu/treyblog/*
// @include  http://*.hup.hu/treyblog/*
// @include  http://hup.hu/ad/*
// @include  http://*.hup.hu/ad/*
// ==/UserScript==

c  = document.body.innerHTML.split( /(<!-- (?:start|end) main content -->)/m );

reg_user = new RegExp( '<div id="block-user-1" [\\s\\S]*?<h2>([^<]+)</h2>', 'm' );
user     = reg_user.exec( c[4] );

// ******

figyelt_szerzok  = [ user[1], 'nev1', 'nev2' ];
kiemeles         = [          'nev3', 'nev4' ];
torles           = [          'nev5', 'nev6' ];

figyelt_minta    = '<div class="content" style="background-color: #BBBBFF;"                 >$1</li></ul></div></div>';
kiemeles_minta   = '<div class="content" style="background-color: #FF9999;"                 >$1</li></ul></div></div>';
eltuntetes_minta = '<div class="content" style="background-color: #f6f6eb; color: #f6f6eb;" >$1</li></ul></div></div>';
torles_minta     = '<div class="content" style="background-color: #E77471;">(t\u00F6r\u00F6lve)</li></ul></div></div>';

// ******

reg_uid    = new RegExp( '<div id="block-user-1" [\\s\\S]*?<a href="/user/([^"]+)"', 'm' );
reg_szerzo = new RegExp( '<a href="/user/\\d+"[^>]+>([^<]+)</a>' );
reg_szoveg = new RegExp( '<div class="content">([\\s\\S]*?)</li>\\s*</ul>\\s*</div>\\s*</div>', 'm' );
reg_uj     = new RegExp( '<div class="comment comment-new">[\\s\\S]*<a id="new"></a>', 'm' );

uid = reg_uid.exec( c[4] );

c[2] = c[2].replace( '>permalink</a></li>', '>permalink</a></li>'+
          '<li><a href="/tracker/'+uid[1]+'">(\u25C4)</a>\u0026nbsp;<a href="/tracker">(\u25C4\u25C4)</a></li>', 'g' );

b   = c[2].split( /(<a id="comment-\d+"><\/a>)/im );
s   = c[0].replace('>HupWiki</a></li>', '>HupWiki</a></li><li class="menu-1-6-101">'+
'<a href="#new" title="els\u0151 \u00FAj" class="menu-1-6-101">els\u0151 \u00FAj</a></li>'+
'<li><a href="/tracker/'+uid[1]+'">(\u25C4)</a></li>'+
'<li><a href="/tracker">(\u25C4\u25C4)</a></li>'               )+c[1]+b[0];

for( uj=0, i=2; i<b.length; i+=2 ){ if( b[i].search( reg_uj )>=0 ){ uj++; } }

for( id=0, i=2; i<b.length; i+=2 ){
  if( b[i].search( reg_uj )>=0 ){
    b[i] = b[i].replace( reg_uj, '<div class="comment comment-new">\n <a id="new'+((id>0)?id:'')+'"></a>' );

    b[i] = b[i].replace( '<span class="new">\u00FAj\u0026nbsp;</span>', '<span class="new">\u00FAj\u0026nbsp;'+
      ' <a href="#new'+ (id+1)           +'">(\u25BC'+(uj-id-1)+')</a>'+
      ' <a href="#new'+ (id>1?id-1:'')   +'">(\u25B2'+(   id  )+')</a>'+
      '\u0026nbsp;</span>' );
    id++;
  }

  var szerzo = b[i].split( reg_szerzo );

  var minta = figyelt_szerzok .indexOf(szerzo[1])>=0 ? figyelt_minta:
              kiemeles        .indexOf(szerzo[1])>=0 ? kiemeles_minta:
              torles          .indexOf(szerzo[1])>=0 ? torles_minta:
              null;

  s += b[i-1] +(minta? b[i].replace( reg_szoveg, minta ): b[i]);
}

document.body.innerHTML = s+c[3]+c[4];

Hozzászólások

Üdv!

Nem értek az ilyen javascriptekhez, most akkor ezt mire is tudom használni? Telepítettem de nem sok változást látok... :)

---
"Ne ugass be mert felveszlek MSN-en és letiltalak vazze!"

> akkor ezt mire is tudom használni?

Én leginkább arra használom, hogy az egy témában megjelent új üzeneteket könnyen végig tudjam nézni; "Beágyazott (teljes), Dátum - újabbak elől" hozzászólás megjelenítés esetén is.

Pld.: ebben a témában: http://hup.hu/cikkek/20090121/belep_a_szerverpiacra_a_cisco nálam az oldal tetején így néz ki a választék lista: "főoldal blogok fórumok szavazások HupWiki első új (◄) (◄◄)". Az utolsó 3 tételt a szkript adta az oldal kódjához.

Egy új üzenet jobb felső sarkába pedig ez kerül: "új (▼1) (▲0)". A számozás azt mutatja, hogy lefelé, felfelé hány új üzenetre lehet, a számozásra történő kattintással, navigálni.

Ezen kívül a szkript átszínezhet vagy eltüntethet hozzászólásokat. Bejelentkezett felhasználó saját üzenetei automatikusan át lesznek színezve, míg más felhasználók üzeneteit csak akkor színezi át (tünteti el) a szkript, ha a szkriptben a megfelelő helyre be van írva a felhasználó neve.

> Telepítettem de nem sok változást látok...

Akkor jó, a sok változás nagy hibára utalna. :-)

"Akkor jó, a sok változás nagy hibára utalna. :-)"

Konkrétan nálam semmi változás nincs, egyiket se látom azoknak a funkciókank amiket fent említettél :S Pedig itt a greasemonkey-ban meg is jelenik a telepített pluginok között ha idejövök a hup-ra :S

Nem tudom mit csinálhattam rosszul..

---
"Ne ugass be mert felveszlek MSN-en és letiltalak vazze!"

Hozzászólás törlése? Mármint látszólag, vagy az adatbázisból? :)