def create_message(
     self, agent_jid: str, performative: str, conversation_id: str, content_object
 ) -> Message:
     msg = Message()
     msg.to = agent_jid
     msg.sender = self.agent_id
     msg.set_metadata(CONVERSATION, conversation_id)
     msg.set_metadata(PERFORMATIVE, performative)
     msg.body = MessageCodification.pickle_object(content_object)
     logger.info(
         "{}: message to send to: {} | dialogue_id: {}".format(
             self.name, msg.to, msg.get_metadata(CONVERSATION)
         )
     )
     return msg
Exemple #2
0
        async def connectWithPeer(self, myFile):
            print(
                "############### Conecting with peer with the file ###############"
            )
            name = input("Peer Name: ")
            msg = Message(to=name + "@jabber.at")
            msg.set_metadata("job", "connectFiles")
            msg.set_metadata("title", myFile)
            await self.send(msg)

            msg = await self.receive(timeout=TIMEOUT)
            if msg:
                print()
                print("Recived answer")
                fileAsked = msg.get_metadata("file")
                print("Files:")
                print(fileAsked)
            print()
Exemple #3
0
        async def askFileFromDirectory(self):
            print("############### Ask file ###############")
            msg = Message(to=DirectoryAddress)
            msg.set_metadata("job", "askFile")
            title = input("title: ")
            msg.set_metadata("title", title)
            await self.send(msg)

            msg = await self.receive(timeout=TIMEOUT)
            if msg:
                print()
                print("Received list of peers")

                listOfPeers = json.loads(msg.get_metadata("list"))

                print("list:")
                for peer in listOfPeers:
                    print("+ {}".format(peer))
                await self.connectWithPeer(title)
                print("TODO: Get file from peer and inform directory")
            print()
Exemple #4
0
        async def searchFilesInDirectory(self):
            print("############### Search file(s) by name ###############")
            msg = Message(to=DirectoryAddress)
            msg.set_metadata("job", "searchFiles")
            search = input("search by: ")
            msg.set_metadata("search", search)
            await self.send(msg)

            msg = await self.receive(timeout=TIMEOUT)
            if msg:
                print()
                print("Received list of files")

                listOfFiles = json.loads(msg.get_metadata("files"))

                print("Files matching your search:")
                for file in listOfFiles:
                    print(f"+ {file}")

                print()
                # self.askFileFromDirectory()

            print()
Exemple #5
0
def get_message_type(msg: Message):
    sender_name = msg.get_metadata("sender")
    for agent_type in AgentType:
        if agent_type.value == sender_name:
            return agent_type