#!/usr/bin/env python # -*- coding: iso-8859-2 -*- # # Skrypt do wysyłania SMSów via http://www.miastoplusa.pl # Wymagania: konto na miastoplusa.pl, zainstalowany Python # Wersja skryptu: 0.0.3 # Najnowsza wersja dostępna pod adresem: http://miracle7.homeip.net/sms.php # # Prawa autorskie rodion(at)lodowka.com / http://miracle7.info. Wszystkie prawa zastrzeżone. # Redystrybucja i użytkowanie kodu źródłowego lub plików wykonywalnych po lub bez dokonywania modyfikacji jest dozwolone, # o ile spełnione zostaną poniższe warunki: # # 1. Każda kopia kodu źródłowego powinna zawierać powyższą notatkę dotyczącą praw autorskich, niniejszą listę warunków oraz # poniższą informację. # 2. Każda kopia plików wykonywalnych powinna w dokumentacji i (lub) innych materiałach rozpowszechnianych w związku # z dystrybucją zawierać powyższą notatkę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższą # informację. # # TO OPROGRAMOWANIE JEST ROZPROWADZANE PRZEZ WŁAŚCICIELI PRAW AUTORSKICH I WSPÓŁPRACOWNIKÓW. WSZELKA ODPOWIEDZIALNOŚĆ, # W SZCZEGÓLNOŚCI ZA SKUTECZNOŚĆ OPROGRAMOWANIA W REALIZACJI POSZCZEGÓLNYCH ZADAŃ JEST WYŁĄCZONA. AUTORZY OPROGRAMOWANIA # NIE PONOSZĄ ODPOWIEDZIALNOŚCI ZA BEZPOŚREDNIE, POŚREDNIE, PRZYPADKOWE, ZARÓWNO MOŻLIWE JAK I NIE MOŻLIWE DO # PRZEWIDZENIA PRZY ZACHOWANIU NALEŻYTEJ STARANNOŚCI SZKODY, W SZCZEGÓLNOŚCI SPOWODOWANE UŻYTKOWANIEM SUBSTYTUCYJNYCH # PRODUKTÓW LUB USŁUG, UTRATĄ DANYCH, ZYSKÓW LUB UJEMNYMI SKUTKAMI W RAMACH PROWADZONEJ DZIAŁALNOŚCI GOSPODARCZEJ. # NINIEJSZE WYŁĄCZENIE ODPOWIEDZIALNOŚCI JEST SKUTECZNE W ODNIESIENIU DO WNIOSKÓW O ODSZKODOWANIE I SPRAW SĄDOWYCH, # NAWET JEŻELI ŻĄDANIE ODSZKODOWANIA ZOSTAŁO WNIESIONE W ZWIĄZKU Z ZAWARTYM KONTRAKTEM HANDLOWYM LUB POPEŁNIENIEM # PRZESTĘPSTWA, A UŻYTKOWNIK ZOSTAŁ POINFORMOWANY O MOŻLIWOŚCI ODNIESIENIA SZKODY. # import sys, string, urllib, urllib2, Cookie # Ustaw swój login i hasło dostępu do miastoplusa.pl login = '' password = '' def help(): print 'Sposób użycia:', sys.argv[0], 'numer treść' print 'Przykład:', sys.argv[0], '501234567 Bardzo być może ale żaba pozostaje żabą' sys.exit(1) def sendsms(numer,tresc): if numer.isdigit() and len(numer) == 9 and len(tresc) > 0: baseURL='http://www.miastoplusa.pl/' print 'Łączę się z',baseURL # Łączenie się i pobieranie ciasteczka f = urllib2.urlopen(baseURL + 'minimal/login.jsp') c = Cookie.SimpleCookie(f.info()['Set-Cookie']) sessionid = 'JSESSIONID=' + c['JSESSIONID'].value # Logowanie print 'Loguję się...' request = urllib2.Request(baseURL + 'auth/LoginCitizen.do') request.add_data(urllib.unquote(urllib.urlencode( {'login': login, 'password': password}))) request.add_header('Cookie', sessionid) request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)') result = urllib2.urlopen(request) print 'Zalogowany.' # Wysyłanie SMS print 'Wysyłam SMS...' request = urllib2.Request(baseURL + 'sms/SendSMS2.do') request.add_data(urllib.unquote(urllib.urlencode([ ('smsType',10), ('phoneNumber',phonenumber), ('smsType',20), ('userId',0), ('smsType',30), ('groupId', 0), ('message', message), ('notifyCode', 0), ('validity', 72), ('sendDay', '-1'), ('sendHour', 0), ('sendMin', 0), ('archiveMessage', 0), ('flashMessage', 0), ('templateCategory', 0), ('targetURL', '/sms/send_sms.jsp')]))) request.add_header('Cookie', sessionid) request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)') result = urllib2.urlopen(request) print 'Wysłany.' else: help() # Main if __name__ == '__main__': if len(sys.argv) == 1: help() else: phonenumber, message = sys.argv[1], ' '.join(sys.argv[2:]) sendsms(phonenumber,message)