Python1320

Untitled

Oct 24th, 2010
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.17 KB | None | 0 0
  1. do
  2.     module("alan", package.seeall)
  3.  
  4.     require("oosocks")
  5.    
  6.     cookies = {}
  7.     answer = ""
  8.     name = "Alan"
  9.     pending = {}
  10.  
  11.     socket = OOSock(IPPROTO_TCP)
  12.  
  13.     function AlanURL()
  14.         return Format("/alan1/webface1_ctrl.asp?gender=male&style=%s&name=%s&action0=name:%s&DName=%s", name, name, name, name)
  15.     end
  16.  
  17.     function Connect()
  18.         socket:Connect("www.a-i.com", 80)
  19.     end
  20.  
  21.     function GetCookieID()
  22.    
  23.         print(AlanURL())
  24.            
  25.         Connect()
  26.        
  27.         table.insert(
  28.             pending,
  29.            
  30.             socket:Send(
  31.                 Format(
  32.                     [[GET %s HTTP/1.1
  33.                     Host: www.a-i.com
  34.                    
  35.                     ]],
  36.                    
  37.                     AlanURL()
  38.                 )
  39.             )
  40.         )
  41.        
  42.         PrintTable(pending)
  43.  
  44.     end
  45.  
  46.     function SendQuestion(player, text)
  47.         local text = URLEscape(text)
  48.        
  49.         Connect()
  50.        
  51.         socket:Send(
  52.             Format(
  53.                 [[GET %s&question=%s HTTP/1.1
  54.                 Host: www.a-i.com
  55.                 Cookie: %s]],
  56.                
  57.                 AlanURL(),
  58.                 text,
  59.                 cookie
  60.             )
  61.         )
  62.     end
  63.  
  64.     function URLEscape(s)
  65.         return string.gsub(s, "([^A-Za-z0-9_])", function(c)
  66.             return string.format("%%%02x", string.byte(c))
  67.         end)
  68.     end
  69.  
  70.     function IsCookie(string)
  71.         return string:Left(12) == "Set-Cookie: "
  72.     end
  73.  
  74.     function GetCookie(string)
  75.         return string:sub(13, -10)
  76.     end
  77.  
  78.     function GetCookie(string)
  79.         return cookies[string]
  80.     end
  81.  
  82.     function SetCookie(cookie, player)
  83.         cookies[cookie] = player
  84.     end
  85.  
  86.     function HasAnswer(string)
  87.         return string:Left(16) == "<option>answer ="
  88.     end
  89.  
  90.     function GetAnswer(string)
  91.         return string:sub(17, -1):Trim()
  92.     end
  93.  
  94.     local length_sig = "Content-Length: "
  95.  
  96.     socket:SetCallback(function(socket, callType, callId, err, data, peer, peerPort)
  97.        
  98.         print(data)
  99.        
  100.         local HTTPLen = 0
  101.  
  102.         if callType == SCKCALL_REC_LINE and err == SCKERR_OK and data ~= "" then
  103.        
  104.             print(callId)
  105.            
  106.             if IsCookie(data) then
  107.                 print(GetCookie(data))
  108.             end
  109.  
  110.             if HasAnswer(data) then
  111.                 print(GetAnswer())
  112.             end
  113.  
  114.             if data:Left(#length_sig) == length_sig then
  115.                 HTTPLen = tonumber(data:Right(#data - #length_sig))
  116.             end
  117.  
  118.             socket:ReceiveLine()
  119.            
  120.         elseif callType == SCKCALL_REC_LINE and err == SCKERR_OK and data == "" then
  121.             socket:Receive(HTTPLen)
  122.         end
  123.     end)
  124.    
  125. end
  126. require("alan")
  127.  
  128. alan.GetCookieID()
Advertisement
Add Comment
Please, Sign In to add comment