Adblock i Linux

w dziale Opera dla systemów Linux, Mac OS, FreeBSD oraz Solaris
SzyMarek napisał(a):

Witam!
Właśnie się przesiadam z WinXp na Linuxa i potrzebuję informacje, jak zrobić sobie Adblocka w Operce. Używam w WinXP tego ze strony nontroppo i jest super. Jak zrobić coś takiego pod Linuxem?

Jeżeli to coś zmienia to mam Operę 9.0 smile

Zajec napisał(a):

A zna ktoś działanie tego programiku? On dopisywał tylko jakąś pojedynczą linijkę do któregoś pliku Opery?

szyk napisał(a):

Originally posted by SzyMarek:

Jak zrobić coś takiego pod Linuxem?


http://nontroppo.org/wiki/OperaAdblock - użyć którejś z tych 3 wersji. smile

Jak dzisiaj przejdę za jakiś czas na Linuksa, to skompiluję wersję w języku C (źródło: http://my.opera.com/forums/showthread.php?s=&postid=929428#post928717) i zamieszczę ją tutaj, może się przyda. smile

Originally posted by Zajec:

A zna ktoś działanie tego programiku? On dopisywał tylko jakąś pojedynczą linijkę do któregoś pliku Opery?


Dopisuje do pliku np. adblock.css, który trzeba najpierw dodać do stylów użytkownika. Jak już jest w nim kod {display: none !important;} (który tworzy się po dodaniu pierwszego blokowanego elementu), to dopisuje potem tylko w jednej linijce kod nowego elementu do zablokowania.

Edycja: w dzień zamieszczę sposób na uruchomienie Adblocka w Linuksie.

szyk napisał(a):

Metoda 1 (c++):

1) Ściągamy źródła z http://my.opera.com/forums/showthread.php?s=&postid=929428#post928717 (są w katalogu src). W pliku cpp_adblock.cpp podajemy ścieżkę do pliku adblock.css, np.:

std::ostringstream css_file("/home/user/.opera/adblock.css");

Plik adblock.css w podanym katalogu trzeba koniecznie samemu stworzyć.

2) Kompilujemy źródło, np. w ten sposób:

g++ -o cpp_adblock cpp_adblock.cpp

Otrzymany plik cpp_adblock kopiujemy do katalogu znajdującego się w zmiennej PATH, ja skopiowałem do /usr/local/bin.

3) Przykład wpisu w standard_menu.ini (na podstawie menu: http://my.opera.com/polski/forums/topic.dml?id=85220&t=1131535007&page=2#comment892037):

Item, "Zablokuj obrazek" = Copy image address & Execute program, "cpp_adblock", "img[src='%c']" & Select user CSS file, 1 & Deselect user CSS file, 1 & Select user CSS file, 1 & Deselect user CSS file, 1

4) Do pliku userstyle.ini w profilu dodajemy wpis dodający Adblocka do stylów użytkownika (a zarazem go włączający):

Name 12=Adblock
File 12=/home/user/.opera/adblock.css
Active 12=1

Po odpaleniu Opery Adblock powinien działać.

Metoda 2 (python):

1) Ściągamy skrypt z http://nontroppo.org/wiki/OperaPythonAdblock i zapisujemy go jako adblock.py. Podajemy w nim ścieżkę do pliku adblock.css, np.:

BLOCK_CSS_FILE="/home/user/.opera/adblock.css"

i dodajemy w pierwszej linijce wpis:

#!/usr/bin/python

2) Wpis w standard_menu.ini:

Item, "Zablokuj obrazek" = Copy image address & Execute program, "python", "/home/user/.opera/adblock.py %c" & Select user CSS file, 1 & Deselect user CSS file, 1 & Select user CSS file, 1 & Deselect user CSS file, 1

3) Patrz krok 4 w metodzie 1.

W tej metodzie można tylko blokować obrazki, tzn. nie można ramek i odnośników.


PS. Oczywiście kompilator c++ i python powinny być zainstalowane, jeśli chce się ich użyć. :)

SzyMarek napisał(a):

Zrobiłem wszystko jak trzeba i mam teraz pewien problem. W trybie autorskim opcja AdBlock jest niedostępna, dopiero po włączeniu trybu użytkownika robi się aktywna (tak jak i menu górne) Co ciekawsze w trybie autorskim po zablokowaniu obrazka robi się wpis do pliku adblock.css, ale dopiero po włączeniu trybu użytkownika zablokowane obrazki są niewyświetlane. Co zrobiłem źle?

andol napisał(a):

Originally posted by SzyMarek:

Co zrobiłem źle?



Nie obejrzałeś tego obrazka?

szyk napisał(a):

Pewnie zapomniałeś o tym http://img58.echo.cx/img58/4569/preferencjeopcjetrybow8lx.png. smile

PS. 17 sekund za późno, starzeję się. wink

SzyMarek napisał(a):

No oczywiście! Dzięki za pomoc! smile

Piegus napisał(a):

Witam . Mam problem. Otóż zainstalowałem sobie adblocka ver. 0.5 coś tam. I gdy chce dodać adres to blokowania to zamiast dopisywać adres do plicu cpp_adblock_menu pokazuje mi się ściąganie tegoż pliku. CO zrobić? Prosze o radę. Wyskakuje mi:
Open file
cpp_adblock

with
kfmclient exec

Uzywam Mandrivy 2006

szyk napisał(a):

Originally posted by Piegus:

Mam problem. Otóż zainstalowałem sobie adblocka ver. 0.5 coś tam. I gdy chce dodać adres to blokowania to zamiast dopisywać adres do plicu cpp_adblock_menu pokazuje mi się ściąganie tegoż pliku. CO zrobić? Prosze o radę. Wyskakuje mi:
Open file
cpp_adblock

with
kfmclient exec


Hmm, tak mi się coś kojarzy, że u mnie ten program musiał byc w zmiennej PATH, bo w przeciwnym razie coś dziwnego się działo, chyba właśnie wyskakiwał ten sam komunikat, co Tobie. Wstaw ten plik do katalogu w zmiennej PATH, zostaw tylko samo "cpp_adblock" (tzn. nie podawaj pełnej ścieżki do pliku) po Execute Program, żeby sprawdzić, czy o to chodzi.

Piegus napisał(a):

Sory ale mozna troche jaśniej?
Możesz opisać krok po kroku bo aż tak zaawansowany to nie jestem sad.
Pliki cpp_adblock.cpp i 8 innych mam w folderze /home/piotr/.opera/cpp_adblock/ (takie małe info choć)
A wersje c++ ściagnąłem z wikipedii o operze angielskiej
Mój GG: 992887

szyk napisał(a):

Aha, wpisów do pliku z menu samemu nie dodawałeś, tylko skorzystałeś z gotowego menu...

Jak się pojawi ten komunikat, to zaznacz opcję "Nie pokazuj ponownie tego okna" i wciśnij "Tak" i wszystko dalej powinno działać dobrze, komunikat przestanie się pojawiać (nic raczej nie trzeba kombinować ze zmienną PATH).

PS. Podałeś w pliku cpp_adblock_menu.ini ścieżki do pliku cpp_adblock.ini, zgodnie z punktem 3 w install.txt?

Piegus napisał(a):

Nie ma pliku cpp_adblock.ini szukałem go wszedzie. ale nawet w tresci pliku cpp_adblock_menu.ini nie ma odpośnika do cpp_adblock.ini.

szyk napisał(a):

Pomyliłem się, trzeba podać w cpp_adblock_menu.ini ścieżkę do programików typu cpp_ablock itp., w ten sposób, jak jest podane w punkcie 3 instrukcji. smile

Piegus napisał(a):

Mój przykładowy wpis : z cpp_adblock_menu.ini:
[cpp_adblock start]
Item, "* Block all elements" = Copy & Execute program, "/home/piotr/.opera/cpp_adblock/cpp_adblock", "*[src^='%c'], *[data^='%c']" & Select user CSS file,1 & Deselect user CSS file,1 & Select user CSS file,1 & Deselect user CSS file,1 & Execute program, "/home/piotr/.opera/cpp_adblock/cpp_adblock_filter", "%c*"
Item, "Block img elements" = Copy & Execute program, "/home/piotr/.opera/cpp_adblock/cpp_adblock", "img[src^='%c']" & Select user CSS file,1 & Deselect user CSS file,1 & Select user CSS file,1 & Deselect user CSS file,1

Zastanawia mnie to ze gdy skopuje ta sciezke do konquerora to pisze ze nie ma takeigo pliku czy ta sciezka "/home/piotr/.opera/cpp_adblock/cpp_adblock" ma być scieżką do plików w folderze /home/piotr/.opera/cpp_adblock/ czy sciezką do PLIKU cpp_adblock.cpp

szyk napisał(a):

Ścieżka do plików binarnych, czyli jest dobrze. I nie działa?

Wywołanie pliku cpp_adblock powoduje dodawanie wpisów do adblock.css, a cpp_adblock_filter do filter.ini.

Piegus napisał(a):

Hmmm. Dziwne... ZMieniłem ściężke w tym cpp...menu.ini na /home/piotr/.opera/cpp_adblock Gdy teraz klikam na jakis obrazek i wybieram blok this image wyskakuje mi '/home/piotr/.opera/cpp_adblock' Brak dostêpu.
Gdy patrzylem na ustawienia tego folderu to właścicielem jestem ja.

szyk napisał(a):

Originally posted by Piegus:

ZMieniłem ściężke w tym cpp...menu.ini na /home/piotr/.opera/cpp_adblock Gdy teraz klikam na jakis obrazek i wybieram blok this image wyskakuje mi '/home/piotr/.opera/cpp_adblock' Brak dostêpu.
Gdy patrzylem na ustawienia tego folderu to właścicielem jestem ja.


/home/piotr/.opera/cpp_adblock to jest chyba u Ciebie katalog, którego oczywiście nie da się uruchomić. smile

Piegus napisał(a):

no tak. To jest katalog. Ale jak tam widziałem te moje poprzednie ustawienia odsyłąły do /home/piotr/.opera/cpp_adblock/cpp_adblock . a przeciez takiego pliku tam nie mam. Jest podobny plik w tym folderze o nazwie: cpp_adblock.CPP ale takiego pliku do jakiego wysylalo ...menu.ini nie ma...

szyk napisał(a):

Aaa, przekopiowałeś złe pliki. Powinieneś przekopiować 4 pliki binarne (czyli programiki) z katalogu ./cpp_adblock/bin/linux do katalogu z pozostałymi plikami.

Czyliw jednym katalogu powinny się znaleźć pliki (z punktu 2 instrukcji): cpp_adblock, cpp_adblock_remove, cpp_adblock_filter, cpp_adblock_filter_remove, add_filter_or_style.html, overlay.css, adblock.css, filter.ini. Reszta plików jest zbędna.

Piegus napisał(a):

Zrobiłęm wszystko od nowa bo nie chciało łączyć się z plikami ini...
OD nowa wszytsko zrbiłem i sprawdziłem Ale wróciłem do początku sad. Znów wyskakuje klient exec.... Jak zaznacze tak i spróbuje zablokować image to nie działa....sad

P.s.Może gdzieś trzeba ustawić we wtyczkach by dany program to uruchamial?
POMOCY!

szyk napisał(a):

A nowe wpisy pojawiają się w adblock.css lub filter.ini?

Piegus napisał(a):

wlasnie o to chodzi zze sie nie pojawiaja....sad

szyk napisał(a):

Wklej tutaj wynik polecenia ls -a /home/piotr/.opera/cpp_adblock/, czyli tego, w którym masz te wszystkie pliki, oraz umieść plik cpp_adblock_menu.ini (do zamieszczenia plików pomocna jest strona http://my.opera.com/Piegus/files/). smile

Piegus napisał(a):

Pliki mam w folderze /home/piotr/addblock/


[piotr@Piotr-Linux ~]$  ls -a /home/piotr/cpp_adblock/
./                         cpp_adblock*                cpp_adblock_remove*
../                        cpp_adblock_filter*         filter.ini*
adblock.css*               cpp_adblock_filter_remove*  overlay.css*
add_filter_or_style.html*  cpp_adblock_menu.ini*


cpp_adblock_menu.ini

szyk napisał(a):

Hmm, no wszystko wygląda poprawnie...

Wejdź w terminalu do katalogu /home/piotr/cpp_adblock/, wykonaj polecenie "./cpp_adblock test" i sprawdź, czy się doda wpis "test" do adblock.css, a jak nie, to czy pojawią się jakieś komunikaty.

Piegus napisał(a):

[piotr@Piotr-Linux cpp_adblock]$ ./cpp_adblock test
./cpp_adblock: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory


Gdy wpisałem urpmi to wyskoczyło takie coś:
[root@Piotr-Linux cpp_adblock]# urpmi libstdc
brak pakietu o nazwie libstdc
Następujące pakiety zawierają libstdc:
libstdc++2.10
libstdc++2.10-devel
libstdc++5
libstdc++5-devel
libstdc++5-static-devel
libstdc++6
libstdc++6-devel
libstdc++6-static-devel
[root@Piotr-Linux cpp_adblock]# urpmi libc
Zostaną zainstalowane następujące 2 pakiety w celu spełnienia zależności (1 MB):
ld.so1-1.9.11-10mdk.i586
libc-base-5.3.12-39mdk.i586
W porządku? (T/n) n
[root@Piotr-Linux cpp_adblock]#      


Które z nich mam zainstalowac. Bo jeszcze nic nie zaistalowalem

szyk napisał(a):

O kurcze...
To znalazłem: http://rpm.pbone.net/index.php3/stat/4/idpl/2364282/com/libstdc++2.10-2.96-0.83mdk.i586.rpm.html, powinno wystarczyć (czyli jest to ten pierwszy pakiet - libstdc++2.10).

Piegus napisał(a):

SZYK dziekuję! Wreszcie działa!.
Naprawde Jesteś WIELKI! smile
Teraz pozostała mi nauka obsługiwania tego smile Nie znacie może jakiś tutoriali albo spisu?? bigsmile

P.S. Mam problem otóz ten bloker nawet nie działa :|. Jak klikam na jakiś normalny obrazek block this image to rrestartuje opere to nawet nie blokuje go... Wciąż się wyświetla...

szyk napisał(a):

Pojawia się w menu stylów (po naciśnięciu strzałeczki przy przycisku Tryb autorski/Tryb użytkownika, znajdującego się w "prawy klik na pasku narzędziowym"->Dostosuj->Przyciski->Widok strony lub menu Widok->Styl) "Adblock", a także "Overlay", jeśli go też dodawałeś?
Jeśli tak, to powinieneś mieć np. taką konfigurację: http://img58.echo.cx/img58/4569/preferencjeopcjetrybow8lx.png, wybrany tryb autorski oraz w menu stylów "zaptaszkowany" styl Adblock (Overlay nie, ponieważ zastępuje niektóre obiekty tekstem).

Jeśli następuje blokowanie przy użyciu filter.ini, to wtedy restart jest potrzebny, ale w przypadku dodawania wpisów do adblock.css blokowanie jest dokonywane od razu, nie potrzeba restartować Opery.

PS. Heh, nie spodziewałem się, że taki prosty plik może mieć jakieś zależności. smile
A tutorial nie powinien być potrzebny, wszystko jest w miarę intuicyjne. smile

Piegus napisał(a):

Troszkę chaotycznie napisałeś czy chodzi Ci o to:[img]http://img447.imageshack.us/img447/7933/zrzutekranu33bp.th.gif
Tak mam ustawione w Narzędzia>Preferencje>Zawartośc> Opcje Stylów mam ustawione tak jak na obrazku, który mi dałeś a ściażka do arkusza stylów prowadzi do cpp_adblock.css.
Domyslny tryb wyświetlania : Autorski
Nierozumiem tego pytania

 "Adblock", a także "Overlay", jeśli go też dodawałeś?
Gdzie go miałem dodawać?

szyk napisał(a):

Do userstyle.ini, punkt 6 instrukcji. smile
Po naciśnięciu strzałeczki przy przycisku z wyborem trybów powinno to tak wyglądać: http://my.opera.com/szyk/homes/files/adblock_styl.png.

ściażka do arkusza stylów prowadzi do cpp_adblock.css.


Usuń ją, jest niepotrzebna (albo wskaż jakiś inny plik, jeśli w przyszłości będziesz chciał korzystać z arkusza stylów, a nie z osobnych "wyłączalnych" stylów).

PS. Ale teoretycznie, jeśli arkuszem stylów jest cpp_adblock.css, to wszystko powinno działać...
PS2. Nie zapomnij o punkcie 7 instrukcji, jeśli go jeszcze nie przerobiłeś. wink