Z lenistwa...

28 sierpnia, 2007

Kolega w nocy zaczął mi się użalać, że Wykop ma pewną denerwującą cechę - gdy ktoś nie jest zalogowany to po kliknięciu na "wykop" przenosi do strony logowania, a po zalogowaniu nie przenosi do poprzedniego linka tylko na stronę główną. Nie ukrywam sprawa dość denerwująca i mnie. Dlatego rozwiązałem problem w... 12 linijkach UserJS. Użycie skryptu jest wręcz banalne - wystarczy po instalacji wyedytować dwie linijki jego kodu:

var login = '';
var haslo = '';

W tych dwóch linijkach podajemy dane naszego konta. Co potem ? W wypadku gdy skrypt wykryje obecność linka "Zaloguj" na jakiejś podstronie wykopu ów link zyskuje nową funkcjonalność - po jego kliknięciu zostajemy zalogowani, a następnie strona na której jesteśmy zostaje odświeżona. W ten sposób nie musimy wklepywać naszych danych do formularza i w ogóle go oglądać ;)

Wiem - to szczyt lenistwa, ale po co się męczyć i tracić cenny czas ;)

EDIT: żeby nie narzekano - wersja dla Opery ;) :

// ==UserScript== 
// @name Wykop one-click login 
// @description Login with one click 
// @author Dziudek 
// @version 0.1 
// @include http://*wykop.pl* 
// ==/UserScript== 

window.addEventListener('DOMContentLoaded', function() { 
// podaj swoje dane 
var login = ''; 
var haslo = ''; 
var d=document.getElementById("navlog").childNodes[3].childNodes[0]; 
if(d.href == "http://www.wykop.pl/zaloguj"){ 
d.addEventListener("click",function(e){ 
e.preventDefault(); 
var x = new XMLHttpRequest(); 
if (!x) alert('Błąd tworzenia XHR'); x.onreadystatechange = function(){
if(x.readyState == 4)(x.status == 200)?window.location=window.location:alert('Błąd zapytania');}; 
x.open('POST','http://www.wykop.pl/zaloguj.php', true);
x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
x.send('username='+login+'&password='+haslo+'&remember_me=remember_me')},false);} 
}, false);

EDIT2: niektórzy słusznie zauważyli, że skrypt nie trzyma cookies i po każdym zamknięciu przeglądarki trzeba się logować - poprawiłem już chyba ten błąd poprzez dodanie kodu: +'&remember_me=remember_me' w zmiennych POST - teraz już wszystko w obu wersjach powinno być OK ;)

Komentarze do wpisu "Z lenistwa...":

1. off napisał(a):
28 sierpnia 2007, 15:59:55

Dziudek, dopiero co wróciłeś. Przestań :p

2. Dziudek napisał(a):
28 sierpnia 2007, 16:00:28

@off – takie małe wejście w rytm :P Skrypt napisałem już w nocy xD

3. Gryphon napisał(a):
28 sierpnia 2007, 16:33:05

Fajne! Sam miałem z tym kłopot, a że nie znam JS to nie mogłem tego sobie napisać :)

4. Dziudek napisał(a):
28 sierpnia 2007, 16:35:36

Gryphon – jedno zapytanie AJAX i po nim tylko odświeżenie stronki – ot cała „magia” tego skryptu ;) No i oczywiście selekcja elementu wraz z preventDefault dla linka :) Małe, a przydatne jak widzę nie tylko dla mnie ;)

5. off napisał(a):
28 sierpnia 2007, 18:56:30

Próbowałeś to zgłosić do ministerstwa wykopu?

6. Dziudek napisał(a):
28 sierpnia 2007, 19:08:10

@off – oni tak zajeszybko wprowadzają poprawki, że wolę się zdać na własne userJSy niż nadzieję, że kiedyś wmontują daną funkcjonalność na stałe…

7. Grzegorz napisał(a):
28 sierpnia 2007, 20:13:43

A ja mam prośbę dotyczącą takiego skryptu dla forum MozillaPL.org

Kontaktowałem się z „władzami”, ale nie za bardzo mają czas. A przydała by się funkcja powrotu do poprzedniej strony po zalogowaniu lub dodatkowy przycisk Zaloguj i odpowiedz

8. Dziudek napisał(a):
28 sierpnia 2007, 20:20:18

@Grzegorz – obadam sprawę w nocy ;)

9. Dziudek napisał(a):
29 sierpnia 2007, 00:43:40

@Grzegorz – chyba nie da rady, bez solidnego obejrzenia kodu ;] Prawdopodobnie tam są przesyłane nie tylko dane z formularza – w każdym razie metodą analogiczną do tej z wykopu nie dało rady… Niestety nie mam za bardzo czasu by siedzieć nad tym kilka godzin i myśleć co może być nie tak :/

10. Grzegorz napisał(a):
29 sierpnia 2007, 10:15:00

Serdeczne dzięki za zainteresowanie ;) W każdym bądź razie, gdybyś kiedyś cierpiał na nadmiar wolnego czasu… to możesz do tego wrócić. Zwłaszcza do przycisków, o których napisałem we wcześniejszym komentarzu.

Pozdrawiam

11. Kuba napisał(a):
20 marca 2009, 15:26:57

Witam,
A jak przerobić ten skrypt do korzystania z https://www.itaktak.pl/iboa/auth/auth.html ? Coś mi nie wychodzi… można prosić o pomoc?

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.