示例#1
0
 def write_log(file_path, text, err=''):
     """
     Writing text to file_path file with some err.
     If no err is present - writing nothing.
     """
     try:
         with open(file_path, 'a') as f:
             f.write("{:%Y-%m-%d-%H:%M: }".format(datetime.now()) +
                     text + str(err) + '\n')
     except IOError as e:
         view_tk(str(e))
示例#2
0
    def parser(self):
        """ TelnetParser's class method. """
        try:
            self.tn = Telnet(self.HOST)
        except Exception as e:
            self.write_log(self.FILE_ERR, 'Connection to server is not available: ', e)
            sleep(5)
        else:
            while True:
                str_all = self.tn.read_until(b'\r\r\n\r\n').decode('UTF-8')
                try:
                    call_info = self.parse_string(str_all, self.SEARCH_LIST)
                except (TypeError, ValueError) as e:
                    self.write_log(self.FILE_ERR, 'Error parsing: ', e)
                else:
                    if call_info is not None:
                        result = self.TEXT + call_info[0] + ' ' + call_info[1]

                        self.CONTACTS_LOCK.acquire(1)
                        for contact in self.contacts_book:
                            if call_info[0] == contact.phone:
                                caller = contact
                                break
                        else:
                            caller = Contact(call_info[0])
                            self.contacts_book.append(caller)
                            self.save_contacts()
                        self.CONTACTS_LOCK.release()

                        self.write_log(self.FILE_OUT, result + ' ' +
                                       str(caller) + ' to 0' + call_info[2])
                        if call_info[2] == super().config.get('search', 'search1'):
                            view_tk(result + '\n' + str(caller))
                        else:
                            self.send_mail(result + ' ' + str(caller) +
                                           ' to 0' + call_info[2])