Esempio n. 1
0
class User:
    warship = None
    destroyer = None
    submarine = None
    aes = None
    rsa = None
    upnp = UPNP()

    def __init__(self, user_id, name):
        self.user_id = user_id
        self.name = name
        self.warship = Warship()
        self.destroyer = Destroyer()
        self.submarine = Submarine()
        self.phase = PHASE[0]
        self.is_host = False
        self.port = 5000

    def get_ship_by_ship_id(self, ship_id):
        if ship_id == FIELD_WARSHIP:
            return self.warship
        elif ship_id == FIELD_DESTROYER:
            return self.destroyer
        else:
            return self.submarine

    def is_alive(self):
        if self.warship.hp > 0:
            return True
        if self.destroyer.hp > 0:
            return True
        if self.submarine.hp > 0:
            return True
        return False
Esempio n. 2
0
 def get_ext_ip(self):
     if self.debug:
         return 'ip'
     u = UPNP()
     ip = u.get_external_ip()
     if not ip:
         try:
             ip = urlopen(self.config['IP_CHECKER']).read().strip()
         except:
             self.logger.error('Cannot obtain external ip')
             raise Exception("Cannot obtain external ip")
     self.logger.debug('Obtained external IP - ' + ip)
     return ip
Esempio n. 3
0
    def __init__(self, debug=False):
        '''
        buffering_units -> This is a number of video stream units for buffering
        all peers list is saved in DB
        '''
        self.config = ConfigLoader()

        self.logger = logging.getLogger('tamchy')
        self.logger.setLevel(self.config['DEBUG'])
        f = logging.FileHandler(self.config['LOG_FILE'])
        f.setLevel(self.config['DEBUG'])
        formatter = logging.Formatter(
            '%(asctime)s -- %(name)s ( %(filename)s : %(lineno)d) -- %(message)s'
        )
        f.setFormatter(formatter)
        self.logger.addHandler(f)

        #self.peer_id = messages.generate_peer_id()
        self.work = True
        # content_id : Stream Container
        self._streams = {}
        # this dict will hold port:Server instance for this port
        self.ports = {}
        self.debug = debug
        self.logger.info('Client started')

        # getting our external ip
        self.ip = self.get_ext_ip()
        self.http = HTTPEngine(self)
        self.PStorage = PeerStorage()
        #self.Reactor = Reactor(self.PStorage)
        if not debug:
            self.http.start_http_server()

            u = UPNP()
            port = self.config['INCOMING_PORT']
            # we will try to map same external port to internal port
            u.add_port_mapping(port, port)

            self.PStorage.start_serving()