Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.23 KB | None | 0 0
  1. import socket
  2. import os
  3. import sys
  4. from urllib2 import urlopen
  5.  
  6. # PACKET TEMPLATE for MESSAGES
  7.  
  8. # 0:15  = USERNAME
  9. # 16:24 = NICKNAME?
  10. # 24:39 = SRC IP
  11. # 39:   = MESSAGE
  12. #v0.0.1
  13.  
  14. class Chat:
  15.     @staticmethod
  16.     def __DEBUG__(content, is_debug):
  17.         if is_debug:
  18.             sys.stdout(">>%s" % content)
  19.         else:
  20.             pass
  21.  
  22.     def __init__(self, username, host, port=80, password="",  is_debug=False):
  23.       self.username = username
  24.       self.password = password
  25.       self.host     = host
  26.       self.port     = port
  27.       self.socket   = None
  28.       self.is_debug = is_debug
  29.       self._        = None # temporary variable used for whatever
  30.      
  31.       self.e_s_r_b_l_a = 4 # expected server reply buffer length  (for) acknowledgement
  32.      
  33.       self.crlf     = "\r\n"
  34.       self.version  = "001"
  35.       self.ip       = urlopen("http://api.ipify.org").read()
  36.      
  37.       self.users    = []
  38.  
  39.       self.packet   = \
  40.     {
  41.      "username" : "".zfill(16),
  42.      "nickname" : "".zfill(8),
  43.      "source"   : "".zfill(15),  
  44.      "message"  : None,
  45.      #"sequence" : 0,
  46.     }
  47.       self.auth    = "AUTH%s%s~%s%s" % (self.ip, self.version, len(self.ip), self.crlf)
  48.       self.ack     = "ACKN"
  49.       self.authed  = False
  50.  
  51.     def new(self):
  52.         return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  53.    
  54.     def connect(self):
  55.         if not self.socket:
  56.             self.socket = self.new()
  57.         if self.socket:
  58.             self.socket.connect((self.host, self.port))
  59.             self.socket.send(self.auth)
  60.             self._ = self.socket.recv(4)
  61.             if len(self._) != self.e_s_r_b_l_a:
  62.                 print("[1] Received malformed server reply. (%s)" % (self._))
  63.                 self.close()
  64.             elif len(self._) == self.e_s_r_b_l_a:
  65.                 print("[0] Received correct server reply (according to length). (%s)" % (self._))
  66.             if self._ == self.ack:
  67.                 print("[0] Recieved successful server acknowledgement.")
  68.                 self.authed = True
  69.  
  70.     def send_message(self, content):
  71.         pass
  72.     def close(self):
  73.         if socket:
  74.             self.socket.close()
  75.             return 0
  76.         else:
  77.             return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement