def typed_ban(self, remainder):
     try:
         target, message = remainder.split(' ',1)
     except:
         PynaDisplay.warn("Erroneous ban command: Please specify target and reason")
         return
     self.manager.addToBlackList(target,message)
Exemple #2
0
 def typed(self, key):
     user = self.manager.node_list.find_active_node(key)
     if user is None:
         PynaDisplay.info(
             'No user or node was found with key \'{0}\''.format(key))
         return
     user.identify()
 def typed_whisper(self, remainder):
     try:
         target, message = remainder.split(' ',1)
     except:
         PynaDisplay.warn("Improperly formatted whisper command")
         return
     self.dispatcher.send('whisper',content=message, target=target)
	def is_sender_authorized(self, message, sender):
		'''Verifies that the message is authorizable'''
		if  message != 'nodelist':
			PynaDisplay.warn('Untrusted message received from {0}'.format(sender))
			return False

		return True
    def isAcceptableAnonymousMessage(self, message, sender):
        """Verifies that the message is authorizable"""
        if message != "nodelist":
            PynaDisplay.warn("Untrusted message received from {0}".format(sender))
            return False

        return True
 def typed_who(self, ignore):
     if len(self.manager.active_nodes) == 0:
         PynaDisplay.info('No nodes are active')
         return
     PynaDisplay.log('Active users')
     for node in self.manager.active_nodes:
         self.identity(node)
Exemple #7
0
 def typed(self, msg):
     try:
         target, message = msg.split(" ", 1)
     except:
         PynaDisplay.warn("Improperly formatted whisper command")
         return
     self.dispatcher.send(msg_type="Whisper", content=message, target=target)
 def typed_import(self, filename):
     '''Attempt to import a node file'''
     new_node = self.manager.node_list.importNode(filename)
     if new_node is None:
         PynaDisplay.warn('Malformed or missing file \'{0}\''.format(filename))
         return
     node_list = self.manager.get_node_list()
     self.dispatcher.send('nodelist', content=node_list, target=new_node)
Exemple #9
0
    def typed(self, filename):
        '''Attempt to import a node file'''
        new_node = self.manager.node_list.import_node(filename)
        if new_node is None:
            PynaDisplay.warn('Malformed or missing file \'{0}\''.format(filename))
            return

        self.send_nodelist(new_node)
Exemple #10
0
	def send(self, msg_type, target, content=''):
		'''Send to a single node'''
		node = self.manager.node_list.find_active_node(target)
		if node is None:
			# Erroneous; no user exists here
			PynaDisplay.subtle('No user "{0}" was found'.format(target))
			return

		packaged_json = self.packager.pack(msg_type.lower(), content)
		self.sender.try_to_send(packaged_json, node)
    def senderNeedsActivation(self, message, sender):
        """Checks to see if the sender is active or even authorized"""
        if self.manager.isActive(sender):
            return False

        if self.manager.isAuthorized(sender):
            self.manager.activate_node(sender)
            PynaDisplay.log("Registered {0} at {1}".format(sender["alias"], sender["location"]))
            return True

        return self.isAcceptableAnonymousMessage(message, sender)
Exemple #12
0
	def __running__(self):
		'''Start up client thread, '''

		# Provide information to user about its location and the client
		PynaDisplay.splash(self.manager.version)
		PynaDisplay.log('Node running on {0}:{1}\n'.format(self.location,self.port))

		# Await initialization before starting client thread
		time.sleep(1)
		sender_thread = threading.Thread(target=self.ui.__running__)
		sender_thread.start()
Exemple #13
0
    def typed(self, filename):
        '''Attempt to import a node file'''
        active_nodes = self.manager.node_list.all_active()
        if len(active_nodes) == 0:
            PynaDisplay.info('No nodes are active')
            return

        print(' ')
        PynaDisplay.log('Active users')
        for node in active_nodes:
            node.identify()
        print(' ')
	def send(self,type,target,content=''):
		'''
		Send to a single node
		'''
		node = self.manager.getNode(target)
		if node is None:
			# Erroneous; no user exists here
			PynaDisplay.warn('No user was found')
			return

		packaged_json = self.packager.pack(type,content)
		self.sender.try_to_send(packaged_json,node)
Exemple #15
0
	def does_sender_need_activation(self, message, sender):
		'''Checks to see if the sender is active or even authorized'''
		authorized_node = self.manager.node_list.find_node(sender['uid'])

		if authorized_node is not None:
			# Only show connection if coming from inactive
			if authorized_node.status == Node.Status.inactive:
				PynaDisplay.log('{0} (@{1}) is now online'.format(sender['alias'], sender['location']))

			# Ensure that the node is active
			was_not_active = authorized_node.status != Node.Status.active
			self.activate_and_update(authorized_node, sender)
			return was_not_active

		return self.is_sender_authorized(message, sender)
 def identity(self,node):
     PynaDisplay.info("{2}:  {0} ({1})".format(node['alias'],node['uid'],node['location']))
Exemple #17
0
 def typed(self, *_):
     PynaDisplay.splash(self.manager.version)
	def received_chat(self,msg):
		PynaDisplay.display(msg)
	def received_disconnection(self,msg):
		self.manager.deactivate_node(msg['sender'])
		PynaDisplay.disconnected(msg['sender'])
 def typed_exit(self,ignore):
     PynaDisplay.server_announce('Closing down node. Thank you for using PyÑa Colada!')
     self.dispatcher.broadcast('disconnection')
     time.sleep(0.5)
     sys.exit(0)
 def typed_about(self,ignore):
     PynaDisplay.splash(self.manager.version)
Exemple #22
0
 def received(self, msg):
     self.manager.most_recent_whisperer = msg["sender"]
     PynaDisplay.display(msg)
 def typed_info(self,key): #TODO: Move to display
     user = self.manager.getNode(key)
     if user is None:
         PynaDisplay.info('No user or node was found with key \'{0}\''.format(key))
         return
     self.typed_identity(user)