hup.user.js

Kiegészítettem a (greasemonkey) szkriptet, hogy könnyebben tudjam sorravenni az "új" hozzászólásokat. A szkript betesz három linket az "új" jelölés mellé: következő, előző, tracker.


// ==UserScript==
// @name     HUP
// @include  http://hup.hu/*
// @include  http://*.hup.hu/*
// ==/UserScript==

var kiemelt_szerzok     = [  ];
var eltuntetett_szerzok = [  ];
var torolt_szerzok      = [  ];

var kiemeles_minta   = '<div style="background-color: #E77471;"                >$1</div>';
var eltuntetes_minta = '<div style="background-color: #f6f6eb; color: #f6f6eb;">$1</div>';
var torles_minta     = '(torolve)';

//
var id = '';
var c  = document.body.innerHTML.split( /(<!--\s+(?:begin|end)\s+content\s+-->)/im );
var b  = c[2].split( /((?:<a\s+id="new"><\/a>\s*)?<a\s+id="comment-\d+"><\/a>)/im );
var s  = c[0]+c[1]+b[0];
for( var i=1; i<b.length; i++ ){
  if( b[i].indexOf('new') >= 0 ){
    s += b[i].replace( /"new"/im, '"new' + id + '"' );
    id++;
  }
  else{
    s += b[i];
  }
  i++;
  b[i] = b[i].replace( />.j<\/font>/, '>uj</font>'+
                                      '<a href="#new'+   id               +'">(kovetkezo)</a>'+
                                      '<a href="#new'+ ((id<=2)?'':id-2)  +'">(elozo)</a>'+
                                      '<a href="/tracker">(tracker)</a>' );

  var szerzo = b[i].split( /<a\s+href="\/user\/\d+"[^>]+>([^<]+)<\/a>/im );

  var minta = (kiemelt_szerzok    .indexOf( szerzo[1] ) >= 0 )? kiemeles_minta:
              (eltuntetett_szerzok.indexOf( szerzo[1] ) >= 0 )? eltuntetes_minta:
              (torolt_szerzok     .indexOf( szerzo[1] ) >= 0 )? torles_minta:
              null;

  s += minta? b[i].replace( /<td[^>]*>(<p>[\s\S]*?<\/p>)\s*<\/td>/igm, minta ): b[i];
}

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

//

Lehet hogy jelölni kéne, ha valaki egy szűrő szkript alkalmazása miatt nem olvas minden hozzászólást.

Az durva lenne, ha minden hozzászólásom végére kiíratnám, hogy pld: "X, Y, Z ignorálva", de egy szimpla "user.js", vagy valami hasonló jelölés alkalmazása talán eltántoríthatna egyes fórum "társakat", hogy semmitmondó beszólások hiábavaló beírására pazarolják az energiáikat.

Nem tudom. Egy próbát megér?

Hozzászólások

IMHO az sem lenne rossz megoldás, ha pl. az érdeklődési kör című mezőbe kerülne valami ilyesmi:
- begin ignorelist -
* trey
* Gabucino
* mbaron
- end ignorelist -
A userscript meg innen olvasná ki az ignorelist-et. Egyrészt azért lenne jó, mert mások is látják az ignorelist-et, másrészt azért, mert így a script szerkesztése nélkül lehetne módosítani az ignorelist-et. Persze ez csak egy javaslat. Én nem fogom implementálni, mert nem használok userscripteket, de ha valaki más is jó ötletnek tartja, ért hozzá, valamint van ideje, megteheti. :-)
Szerk.: Ehhez persze valahogy meg kellene adni a saját felhasználói azonosítót a userscript számára, hogy tudja, honnan olvassa ki az ignorelist-et. :-)

Még valami: IMHO hasznos lenne a kulcsszó alapú szűrés is, esetleg valami pontozós formában. Ez az érdeklődési kör mezőben ilyesmi módon lehetne megvalósítva:
- set ignore limit 50 -
- begin ignorelist -
* user: mbaron ; 35
* keyword: windows ; 20
- end ignorelist -
- set highlight limit 40 -
- begin highlightlist -
* user: trey ; 35
* keyword: FreeBSD ; 30
- end highlightlist -
Remélem, érthető volt az elgondolásom. :-)

LOL Én csak írtam pár ötletet, amit megvalósíthatnának azok, akik értenek a userscript-hez, persze csak ha ők is értelmes ötletnek tartják. Én nem fogom elkezdeni fejleszteni, valamint semmi egyebet sem teszek, mert a userscript ügyekhez nem értek, és most nem is akarom megtanulni, ugyanis van egyéb tanulnivalóm is így érettségi előtt. :-)
Megjegyzés: Az sem kizárt, hogy az ötletem teljes egészében használhatatlan. Nem ismerem a UserScript-et, ezért nem tudom eldönteni. :-)