Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do
- module("alan", package.seeall)
- require("oosocks")
- cookies = {}
- answer = ""
- name = "Alan"
- pending = {1,2,3}
- socket = OOSock(IPPROTO_TCP)
- function AlanURL()
- return Format("/alan1/webface1_ctrl.asp?gender=male&style=%s&name=%s&action0=name:%s&DName=%s", name, name, name, name)
- end
- function Connect()
- socket:Connect("www.a-i.com", 80)
- end
- function GetCookie()
- Connect()
- table.insert(
- pending,
- socket:Send(
- Format(
- [[GET %s HTTP/1.1
- Host: www.a-i.com
- ]],
- AlanURL()
- )
- )
- )
- PrintTable(pending)
- print("UIDSHUAHDS")
- end
- function SendQuestion(player, text)
- local text = URLEscape(text)
- Connect()
- socket:Send(
- Format(
- [[GET %s&question=%s HTTP/1.1
- Host: www.a-i.com
- Cookie: %s]],
- AlanURL(),
- text,
- cookie
- )
- )
- end
- function URLEscape(s)
- return string.gsub(s, "([^A-Za-z0-9_])", function(c)
- return string.format("%%%02x", string.byte(c))
- end)
- end
- function IsCookie(string)
- return string:Left(12) == "Set-Cookie: "
- end
- function GetCookie(string)
- return string:sub(13, -10)
- end
- function GetCookie(string)
- return cookies[string]
- end
- function SetCookie(cookie, player)
- cookies[cookie] = player
- end
- function HasAnswer(string)
- return string:Left(16) == "<option>answer ="
- end
- function GetAnswer(string)
- return string:sub(17, -1):Trim()
- end
- local length_sig = "Content-Length: "
- socket:SetCallback(function(socket, callType, callId, err, data, peer, peerPort)
- local HTTPLen = 0
- if callType == SCKCALL_REC_LINE and err == SCKERR_OK and data ~= "" then
- print(callId)
- if IsCookie(data) then
- print(GetCookie(data))
- end
- if HasAnswer(data) then
- print(GetAnswer())
- end
- if data:Left(#length_sig) == length_sig then
- HTTPLen = tonumber(data:Right(#data - #length_sig))
- end
- socket:ReceiveLine()
- elseif callType == SCKCALL_REC_LINE and err == SCKERR_OK and data == "" then
- socket:Receive(HTTPLen)
- end
- end)
- end
- alan.GetCookie()
Advertisement
Add Comment
Please, Sign In to add comment