By zminimalizować czas pisania skorzystałem z jQuery, do którego "szkielet" dla Greasemonkey znalazłem tutaj. Swoją drogą, już po fakcie zdążyłem doczytać, że od kilku wersji powinno się do takich potrzeb używać @require, które w przypadku jQuery zdaje się działać całkiem dobrze.
Kiedy już przypomniałem sobie obsługę ciasteczek i różne detale odnośnie jQuery, wszystko zapowiadało się na szybkie i bezproblemowe kodowanie. Problemy jednak się znalazły - a na dobrą sprawę jeden - kodowanie. Otóż strona Potyczek jest kodowana w ISO-8859-2, na co się odrobinę skrzywiłem jako wyznawca UTF-8, a co powodowało że zapytania wyszukujące asynchronicznie znajomych zwracało nic innego jak krzaki. Rozwiązanie znalazłem stosunkowo szybko za pośrednictwem google:
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.overrideMimeType('text/html; charset=ISO-8859-2');
}
});
Te kilka linijek rozwiązuje ów problem natychmiast. To jednak nie był koniec przeciwności ze strony kodowania.Zapytanie do wyszukiwarki na stronie wymaga - co jest oczywiste - przedmiot wyszukiwania. W moim przypadku były to również imiona i nazwiska, więc nie brak w nich polskich znaków diakrytycznych. Próbowałem javascriptowych funkcji escape oraz encodeURI, ale polskie znaki "uratowane" (nie mam pojęcia jak sensownie przetłumaczyć w tym kontekście escape na polski) dawały w wyszukiwaniu dwa denerwujące krzaczki. Finalnie rozwiązałem problem w sposób nieco brzydki, ale skuteczny - sprawdziłem jak uratować polskie znaki dla ISO-8859-2 i wszystkie podmieniłem tak, aby wyszukiwanie poprawnie je zinterpretowało:
user.replace('Ę', '%CA').replace('Ó', '%D3').replace('Ą', '%A1').replace('Ś', '%A6').replace('Ł', '%A3').replace('Ż', '%AF').replace('Ź', '%AC').replace('Ć', '%C6').replace('Ń', '%D1').replace('ę', '%EA').replace('ó', '%F3').replace('ą', '%B1').replace('ś', '%B6').replace('ł', '%B3').replace('ż', '%BF').replace('ź', '%BC').replace('ć', '%E6').replace('ń', '%F1')
Choć ta przydługawa linijka wydaje się "łopatologicznym brutem", to rozwiązanie problemu nr 2 zajęło mi dobre kilka godzin, po których stałem się jeszcze zagorzalszym wielbicielem jedynego słusznego kodowania - UTF-8.