Пример #1
0
class Chat:
    FILE_PATH = './chat.txt'
    COMPLETED_FILE_PATH = './completed_message.txt'

    def __init__(self, user):
        self.user = user
        self.file_handler = FileHandler()

    def type_a_message(self, message=None, file_path=None):
        """메세지를 입력하는 함수

        Notes:
            message(str)혹은 random string을 txt파일에 적는 역할을하는 함수여서 따로 반환하지 않음

        Args:
            user (User)
            message (str)
            file_path (str)

        Returns:
            -

        """
        # str 생성 or message_list를 인자로 받아서 txt에 저장.

        if file_path is None:
            file_path = self.FILE_PATH

        # TODO 1. str 생성 or message(str)를 인자로 받아서 txt에 저장.
        if message is None:
            message = str(uuid.uuid4())

        # TODO 2. 보낸사람과 Message내용을 dict로 취합해서 저장
        user_name = self.user.name
        message = {
            # 'id': None
            'user': str(user_name),
            'message': message,
            'time_stamp': None
        }

        text_file, now = self.file_handler.access_text_file(file_path)
        message['time_stamp'] = now
        text_file.write(str(message) + '\n')
        text_file.close()

    def send_the_message(self, file_path=None):

        if file_path is None:
            file_path = self.FILE_PATH

        text_file, now = self.file_handler.access_text_file(file_path, 1)
        all_messages = text_file.readlines()

        if len(all_messages) == 0:
            text_file.close()
            print("끝")
            return
        cur_message = all_messages[0]
        print(cur_message)
        self.store_completed_the_message(cur_message)

        text_file.seek(0)
        del all_messages[0]
        for message in all_messages:
            text_file.write(message)
        text_file.truncate()
        text_file.close()

    def run(self):

        self.type_a_message()
        self.send_the_message()

    def store_completed_the_message(self, message, file_path=None):
        # with self.lock:
        if file_path is None:
            file_path = self.COMPLETED_FILE_PATH
        text_file = open(file_path, 'a')
        text_file.write(message)
        text_file.close()
Пример #2
0
class Chat:
    """채팅(?)에 대한 class

        Attributes:
            user (User)
            file_handler (FileHandler)
    """
    def __init__(self, user):
        self.user = user
        self.file_handler = FileHandler()

    def type_a_message(self, message=None, file_path=None):
        """메세지를 입력하는 함수

        Notes:
            message(str)혹은 random string을 txt파일에 적는 역할을하는 함수여서 따로 반환하지 않음

        Args:
            message (str)
            file_path (str)

        Returns:
            -

        """
        if file_path is None:
            file_path = FILE_PATH

        # TODO 1. str 생성 or message(str)를 인자로 받아서 txt에 저장.
        if message is None:
            message = str(uuid.uuid4())

        # TODO 2. 보낸사람과 Message내용을 dict로 취합해서 저장
        user_name = self.user.name
        message = {
            # 'id': None
            "user": str(user_name),
            "message": message,
            "time_stamp": None
        }

        text_file, now = self.file_handler.access_text_file(file_path)
        message['time_stamp'] = now
        text_file.write(str(message) + "\n")
        text_file.close()

    def send_the_message(self, file_path=None):
        """메세지를 보내는 함수

        Notes:
            txt파일에 저장된 message를 전송하는(print) 함수여서 따로 반환하지않음.
            print 후 complete_message.txt 파일에 다시 기록함.

        Args:
            file_path (str)

        Returns:
            -

        """

        if file_path is None:
            file_path = FILE_PATH
        text_file, now = self.file_handler.access_text_file(file_path, 1)
        all_messages = text_file.readlines()

        if len(all_messages) == 0:
            text_file.close()
            return

        cur_message = all_messages[0]
        print(cur_message)
        self.store_completed_the_message(cur_message)

        text_file.seek(0)
        del all_messages[0]
        for message in all_messages:
            text_file.write(message)
        text_file.truncate()
        text_file.close()

    def store_completed_the_message(self, message, file_path=None):
        """전송이 완료된 message를 또다른 txt에 적어놓는 함수

        Notes:
            전송된 message(str)를 받아서 complete txt에 적어놓는 함수라 따로 반환하지 않음.

        Args:
            message (str)
            file_path (str)

        Returns:
            -

        """
        if file_path is None:
            file_path = COMPLETED_FILE_PATH
        text_file, now = self.file_handler.access_text_file(file_path)
        text_file.write(message)
        text_file.close()