Wykop Spam Cleaner
08 lipca, 2007
Ostatnio pisałem co sądzę o tym co się dzieje na Wykopie. Ponieważ działa to na mnie strasznie irytująco postanowiłem działać. Stworzyłem prosty UserJS - Wykop Spam Cleaner (v.0.1 beta), który pozwala pozbyć się badziewia z Wykopu. Na wstępie muszę powiedzieć, że skrypt działa tylko na Firefoksie z rozszerzeniem Greasemonkey i może nie jest userfriendly, ale za to ma myślę spore możliwości jak na swój rozmiar (~2kB).
Co umożliwia ten skrypt ? Pozwala na ukrycie wpisów ze stron Wykopu według podanych ustawień. Możemy tworzyć reguły zarówno do usuwania wpisów użytkowników jak i reguły do usuwania określonych linków. Samo "usuwanie" może działać w trzech trybach - rzeczywiste usunięcie danego wpisu z DOM, dodanie ustalonego opacity do danego wpisu i wreszcie dodanie określonego obramowania do danego wpisu. Każdy niechciany link/użytkownik ma indywidualne ustawienia typu usuwania/ukrywania i parametrów z tym związanych.
Dodatkowo skrypt w pasku nawigacji umieszcza informację o ilości usuniętych/ukrytych na danej stronie Wykopu linków.
Jak to działa ?
Jak już wspominałem - skrypt nie jest zbyt userfriendly, wymaga pewnej ingerencji w sam skrypt o czym zaraz, ale najpierw dlaczego tak, a nie inaczej:
- niedługo ponoć ma się pojawić nowy Wykop więc chcę uniknąć sytuacji, że ja się napracuję nad jakimś interfejsem do obsługi skryptu, a na drugi dzień się okaże, że nowy Wykop udostępnia takie opcje domyślnie.
- najważniejszy powód - brak czasu (to samo dotyczy wersji na Operę - oczywiście jeżeli ktoś z operowców ma czas i ochotę to śmiało można taką wersję tworzyć w oparciu o mój kod, nie widzę żadnych przeciwwskazań, a nawet bym się ucieszył bo sam czasami korzystam z Wykopu na Operze ).
- nie chciałem zaśmiecać przeglądarki danymi skryptu.
- w obecnej sytuacji można łatwo dzielić się ustawieniami skryptu z innymi (wystarczy przesłać sobie obiekt userR).
Zatem jak stworzyć zestaw własnych ustawień dla skryptu ?
Skrypt zawiera w kodzie taki oto obiekt:
var userR = {
users: [
{
user: 'username',
type: type of removing as integer,
opacity: opacity value as float,
border: 'border style'
}
],
links: [
{
link: 'link',
type: type of removing as integer,
opacity: opacity value as float,
border: 'border style'
}
]
};
gdzie kod:
users: [
{
user: 'username',
type: type of removing as integer,
opacity: opacity value as float,
border: 'border style'
}
],
Przechowuje dane o niepożądanych użytkownikach, a kod:
links: [
{
link: 'link',
type: type of removing as integer,
opacity: opacity value as float,
border: 'border style'
}
]
Przechowuje dane o regułach akceptacji linków. Dodanie nowej reguły polega na dodaniu obiektu postaci:
{
user: 'username',
type: type of removing as integer,
opacity: opacity value as float,
border: 'border style'
}
w tabeli pola users. Gdzie pole user to nazwa użytkownika bądź wyrażenie regularne opisujące parametry według których mają być akceptowani użytkownicy. Pole type to typ usuwania / ukrywania linka - podajemy tutaj jedną z trzech liczb : 1, 2 lub 3 gdzie:
- 1 - usuwanie danego wpisu
- 0 - nadanie wpisowi opacity równego polu opacity (liczba zmiennoprzecinkowa)
- 2 - dodanie do wpisu obramowania (według wartości pola border np.: '1px solid #F00');
Z obiektem linków jest podobnie tylko tam jest pole link, zamiast user - i ono określa, jakie wpisy (z jakimi linkami) będą akceptowane.
To może przykładowy obiekt. Ja na przykład chciałbym aby wszystkie linki z youtube miały opacity 25%, do tego nie chcę widzieć w ogóle (chcę usunąć) wszystkie linki użytkownika farass (swoją drogą to on skłonił mnie do napisania tego skryptu :P ) i nadać obramowanie wszystkim linkom z serwisu wiadomosci24. Obiekt będzie wyglądał następująco:
var userR = {
users: [
{
user: 'farass',
type: 1,
opacity: 0,
border: ''
}
],
links: [
{
link: '.youtube',
type: 0,
opacity: 0.25,
border: ''
},
{
link: 'wiadomosci24',
type: 2,
opacity: 0,
border: '10px dashed #EEE'
}
]
};
Link do skryptu - http://userscripts.org/scripts/show/10552
Jeśli ktoś zauważy błędy w działaniu to oczywiście czekam na informacje. Mam nadzieję, że znajdę czas na poprawki ;]
Komentarze do wpisu "Wykop Spam Cleaner":
1.
Dziudek napisał(a):
08 lipca 2007, 19:41:37
Jako, że userscripts.org raczyło akurat paść link do skryptu: dziudek.jogger.pl/files/wykopSpamCleaner.js
2.
DrLex napisał(a):
09 lipca 2007, 08:45:23
Wydaje się to sprzeczne z ideą tego serwisu. To chyba społeczność decyduje co jest spamem, a co nie.
3.
marines napisał(a):
09 lipca 2007, 09:39:18
@DrLex: to znaczy, że wykop ma spaczoną społeczność o.0 bo ostatnio wykopywane są same badziewne i kretyńskie wpisy typu „Super Mario Bros extreme”, „Toaleta za 19mln” etc. dno :/
4.
Bigismall napisał(a):
09 lipca 2007, 10:07:33
Riddle, też napisał coś podobnego swego czasu. Wg mnie bardzo przydatne. Społeczność bowiem nadal może decydować co jej sie podoba a co nie. To co zaś serwuję sobie, to już moja sprawa.
5.
Dziudek napisał(a):
09 lipca 2007, 13:27:15
Drlex – niestety funkcja zakop już dawno przestała być przydatna – trzeba się przed badziewiem bronić samemu…
6.
pzt napisał(a):
10 lipca 2007, 10:05:03
fajny skrypt mam tylko jedno zastrzeżenie – przy zaznaczeniu w skrypcie linków youtube „wykaszane” są też wpisy, które tylko o youtube wspominają (w opisie) tak jak ten http://www.wykop.pl/link/21243/uwazaj-co-grasz-na-gitarze-piracie-jeden.html
7.
Dziudek napisał(a):
10 lipca 2007, 10:13:11
@pzt – obejrzyj mój obiekt userR jaki prezentuję w miniblogu – zamiast youtube zastosowałem wyrażenie regularne pl.youtube|youtube.com i nie mam takiego problemu ;]
Dodaj komentarz: