# # Orange MBOX sms sender # Written by antonone, 25/09/2008 # http://anadoxin.org/blog # # Granted to the public domain. # class MBoxConstants public def initialize @login_req = "_dyncharset=UTF-8&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginErrorURL=%2Fportal%2Fmap%2Fmap%2Fsignin&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginErrorURL=+&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginSuccessURL=http%3A%2F%2Fwww.orange.pl%2Fportal%2Fmap%2Fmap%2Fyour_account&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginSuccessURL=+&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.login=" @login_req2 = "&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.login=+&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.password=" @login_req3 = "&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.password=+&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login=+&_DARGS=%2Fgear%2Fstatic%2Fhome%2Flogin.jsp.loginFormId&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login.x=" @login_req4 = "&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login.y=" @sms_req = "_dyncharset=UTF-8&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.type=sms&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.type=+&enabled=false&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.errorURL=%2Fportal%2Fmap%2Fmap%2Fcorpo_message_box%3Fmbox_view%3Dnewsms&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.errorURL=+&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.successURL=%2Fportal%2Fmap%2Fmap%2Fcorpo_message_box%3Fmbox_view%3Dmessageslist&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.successURL=+&smscounter=1&counter=631&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.to=" # doklej kontakt @sms_req2 = "&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.to=+&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.body=+&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.body=" # doklej tresc @sms_tok_data = "&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.token=" # doklej token @sms_req3 = "&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.token=+&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create=+&_DARGS=%2Fgear%2Fmapmessagebox%2Fsmsform.jsp&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create.x=33&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create.y=8" end # Getters. def login_req; @login_req end def login_req2; @login_req2 end def login_req3; @login_req3 end def login_req4; @login_req4 end def sms_req; @sms_req end def sms_req2; @sms_req2 end def sms_req3; @sms_req3 end def sms_tok_data; @sms_tok_data end end # # Orange MBOX sms sender # Written by antonone, 02/02/2009 # http://anadoxin.org/blog # # Granted to the public domain. # require 'net/http' require 'cgi' # require 'constants.rb' class MBoxSMS private def encode(text) CGI::escape(text) end public def initialize(user,pass) @user = user @pass = pass @cookies = '' @vars = MBoxConstants.new @token = '' end def login http = Net::HTTP.new("www2.orange.pl", 80) path = '/portal/map/map?noredir=1' header = { "User-Agent" => "Opera/9.50 (X11; Linux i686; U; en)", "Accept" => "text/html", "Accept-Language" => "pl,en-US", "Accept-Charset" => "UTF-8", "Referer" => "http://orange.pl/", "Cookie2" => "$Version=1", "Connection" => "Close" } res = http.request_get(path, header) return false if res.code != '200' body = res.read_body @cookies = res['set-cookie'] # Te dwa zera to wspolrzedne wg. gemius heat map. request = @vars.login_req + @user + @vars.login_req2 + @pass + @vars.login_req3 + 0.to_s + @vars.login_req4 + 0.to_s header['Cookie'] = @cookies header['Referer'] = "http://www.orange.pl/portal/map/map?noredir=1" header['Content-Type'] = "application/x-www-form-urlencoded" path = "/portal/map/map/homenew?noredir=1&_DARGS=/gear/static/home/login.jsp.loginFormId" res = http.post(path, request, header) logged_page = res['Location'] if (logged_page =~ /corpo/) > 0 @logged_page = logged_page @cookies = @cookies + "; " + res['set-cookie'] return true end false end def sendsms(number, text) match = @logged_page.match(/tid=(.*?)$/) if !match.nil? and !match.captures.nil? and match.captures.size == 1 request_id = match.captures[0] path = "/portal/map/map/corpo_message_box?mbox_view=newsms&mbox_edit=new" ref = "http://www.orange.pl/portal/map/map?noredir=1" http = Net::HTTP.new("www2.orange.pl", 80) header = { "User-Agent" => "Opera/9.50 (X11; Linux i686; U; en)", "Accept" => "text/html", "Accept-Language" => "phriWDnTrNSl,en-US", "Accept-Charset" => "UTF-8", "Referer" => ref, "Cookie" => @cookies, "Cookie2" => "$Version=1", "Connection" => "Close" } res = http.request_get(path, header) mbox_body = res.read_body.split("\n").to_s return false if mbox_body.empty? md = mbox_body.match(/bezp.*? :.*?e">(.*?) 0 end false end end # # Orange MBOX sms sender # Written by antonone, 25/09/2008 # http://anadoxin.org/blog # # Granted to the public domain. # # require 'sender.rb' require 'net/http' login="user" pass="pass" puts "Orange MultiBox handler by antonone_" if login.nil? or login.empty? or pass.nil? or pass.empty? puts "Skonfiguruj poprawnie skrypt -- ustaw zmienne 'login' i 'pass'." exit 1 end number = ARGV[0] text = ARGV[1] if number.nil? or text.nil? puts "Użycie: skrypt " exit 1 end sms = MBoxSMS.new(login, pass) puts "Logowanie..." if !sms.login puts "[e] Błąd podczas logowania!" exit 1 end puts "Wysyłanie..." if !sms.sendsms number, text puts "Błąd podczas wysyłania smsa!" else puts "SMS został wysłany milordzie!" end