Dla zastanawiających się po co ktoś miałby używać tego skryptu, mogę jedynie rzucić sugestię i zarysować przykładową sytuację polegającą na otrzymywaniu smsa podczas gdy na którymś z serwerów wykryto logowanie na root'a ;). Lub też, dla mniejszych paranoików, gdy któryś serwer nie odpowiada na połączenia pod konkretny port (czyt. padnięta usługa), lub też gdy bardzo czekamy na jakiś event, można postawić monitor triggerujący uruchomienie tego skryptu na swój numer komórkowy... (update: można też monitorować zdrowie naszych dysków twardych poprzez monitorowanie tablic SMART i notyfikację przez SMS gdy pojawi się jakiś problem)
Sama idea działania skryptu nie zmieniła się:
- 1. Skrypt wchodzi na stronę główną, pobierając ciastko JSESSIONID i inne, charakterystyczne dla CMSa orange.pl,
- 2. Następuje logowanie przy użyciu dostarczonego loginu i hasła,
- 3. Logowanie przekierowuje na specjalną stronę mającą na celu przekierowanie do faktycznej strony po zalogowaniu. Zapewne ktoś wpadł na pomysł dorobienia kolejnej warstwy analizującej ruch na stronie...
- 4. Skrypt wchodzi na stronę główną skrzynki Multibox, aby odczytać pozostałą ilość darmowych SMSów,
- 5. Jeśli ilość na to pozwala (czyt. jest większa niż nic ;>), skrypt "wypełnia" formularz i wysyła do serwera. Serwer ponownie przekierowuje na stronę wirtualną, ale na szczęście zakończenie operacji można sprawdzić na podstawie tego, gdzie ta wirtualna strona nas przekieruje; jeśli na stronę z formularzem SMSa, wtedy sms nie zostanie wysłany. Jeśli do listy wysłanych wcześniej sms'ów, wtedy zostanie wysłany.
Aby ułatwić dystrybucję na wszystkie maszyny, postawiłem odpowiednie repozytorium na gitorious.org. Otrzymywanie kodu źródłowego polega na uruchomieniu:
- $ git clone git://gitorious.org/orangesms/orangesms.git
Skrypt oczekuje katalogu ~/.orangesms i plików login.conf oraz phonebook.conf, które muszą mieć prawa 0600. Pierwszy z nich zawiera dane konta Orange Online - te, które wpisujesz na stronę, by móc się zalogować. Syntax pliku to (zwróć uwagę na BRAK entera na końcu pliku):
- username,password
Plik phonebook.conf zawiera mapę numerów telefonów i ich przyjaznych nazw, czyli np.
- alpha=502100100
- beta=502102102
- gamma=502103103
- omega=502104104
Dzięki temu posługując się linią poleceń możesz wpisywać przyjazne nazwy, a skrypt zamieni je na konkretne numery telefonów. Dzięki temu historia poleceń będzie wolna od numerów telefonów, być może są też i inne plusy takiego podejścia ;).
Na koniec krótkie wideo z przykładu użycia skryptu. (upewnij się, że oglądasz wersję HD)



arhu, spróbuj odpalić tą wersję:
http://anadoxin.org/blog/files/u0/smsorange_debug_211111.rb
Może wyświetlić dużo informacji, więc najlepiej skieruj wyjście do pliku i wystaw ten plik. Nie wiem jeszcze gdzie może być problem, ale skrypt strzelał już swoje fochy na Linuxie PLD, być może problem jest podobnej natury ;)