def parse(self): balances = {} messages = self.downloader.download( 'UNSEEN HEADER From "*****@*****.**"') for num, message in messages: if 'o zůstatku' not in self._get_subject(message): self.downloader.set_unseen(num) else: msg_balance = Balance() body = self._get_message_content(message) for line in body.split('\n'): if 'Vás informuje' in line: msg_balance.account_from = ''.join(''.join(line.split(':')[1]).strip().split('/')[0]) + \ '/' + UCB_BANK_CODE if 'Disponibilní zůstatek' in line: tmp = self._get_line_data(line) msg_balance.balance = float(''.join( tmp.split(' ')[0]).replace('.', '').replace(',', '.')) msg_balance.currency = ''.join(tmp.split(' ')[-1]) elif 'Datum:' in line: try: msg_balance.date = datetime.datetime.strptime( self._get_line_data(line), '%d.%m.%Y %H:%M') except ValueError as e: msg_balance.date = self._get_message_date(message) if (msg_balance.account not in balances.keys() or balances[msg_balance.account].date < msg_balance.date): balances[msg_balance.account] = msg_balance return balances.values()
def parse(self): balances = {} messages = self.downloader.download( 'UNSEEN HEADER From "*****@*****.**"') for num, message in messages: message_balance = Balance() body = self._get_message_content(message) for line in body.split('\n'): parts = line.split(' ') if 'stka' in line: message_balance.account = self._extract_line_part( parts, 3, 4, '') elif 'dne' in line: message_balance.balance = float( self._extract_line_part(parts, -2, -1, '').replace(',', '.')) message_balance.currency = self._extract_line_part( parts, -1, None, '').strip('.') try: message_balance.date = datetime.datetime.strptime( self._extract_line_part(parts, 3, 5, ' '), '%d.%m.%Y %H:%M') except ValueError: message_balance.date = self._get_message_date(message) if (message_balance.account not in balances.keys() or balances[message_balance.account].date < message_balance.date): balances[message_balance.account] = message_balance return balances.values()
def parse(self): balances = {} messages = self.downloader.download('UNSEEN HEADER From "*****@*****.**"') for num, message in messages: if "o zůstatku" not in self._get_subject(message): self.downloader.set_unseen(num) else: msg_balance = Balance() body = self._get_message_content(message) for line in body.split("\n"): if "Vás informuje" in line: msg_balance.account_from = ( "".join("".join(line.split(":")[1]).strip().split("/")[0]) + "/" + UCB_BANK_CODE ) if "Disponibilní zůstatek" in line: tmp = self._get_line_data(line) msg_balance.balance = float("".join(tmp.split(" ")[0]).replace(".", "").replace(",", ".")) msg_balance.currency = "".join(tmp.split(" ")[-1]) elif "Datum:" in line: try: msg_balance.date = datetime.datetime.strptime(self._get_line_data(line), "%d.%m.%Y %H:%M") except ValueError as e: msg_balance.date = self._get_message_date(message) if msg_balance.account not in balances.keys() or balances[msg_balance.account].date < msg_balance.date: balances[msg_balance.account] = msg_balance return balances.values()
def parse(self): balances = {} messages = self.downloader.download('UNSEEN HEADER From "*****@*****.**"') for num, message in messages: message_balance = Balance() body = self._get_message_content(message) for line in body.split("\n"): parts = line.split(" ") if "stka" in line: message_balance.account = self._extract_line_part(parts, 3, 4, "") elif "dne" in line: message_balance.balance = float(self._extract_line_part(parts, -2, -1, "").replace(",", ".")) message_balance.currency = self._extract_line_part(parts, -1, None, "").strip(".") try: message_balance.date = datetime.datetime.strptime( self._extract_line_part(parts, 3, 5, " "), "%d.%m.%Y %H:%M" ) except ValueError: message_balance.date = self._get_message_date(message) if ( message_balance.account not in balances.keys() or balances[message_balance.account].date < message_balance.date ): balances[message_balance.account] = message_balance return balances.values()
def parse(self): balance = Balance() messages = self.downloader.download( 'UNSEEN HEADER From "*****@*****.**"') for num, message in messages: if 'Email Push' in self._get_subject(message): message_balance = Balance() if not message.is_multipart(): continue body = None for part in message.walk(): if part.get_content_type( ) == 'text/html' and 'Vlast.prostr' in part.get_payload(): body = part.get_payload() break if not body: continue tmp = body[body.rindex('Vlast.prostr'):] tmp = ''.join( tmp[0:tmp.index('<')].split(':')[1]).strip('.').strip() message_balance.date = self._get_message_date(message) message_balance.balance = float(''.join( tmp.split(' ')[0]).replace(',', '.')) message_balance.currency = ''.join(tmp.split(' ')[-1]) if balance.balance is None or balance.date < message_balance.date: balance = message_balance return [balance]
def parse(self): balance = Balance() messages = self.downloader.download('UNSEEN HEADER From "*****@*****.**"') for num, message in messages: if "Email Push" in self._get_subject(message): message_balance = Balance() if not message.is_multipart(): continue body = None for part in message.walk(): if part.get_content_type() == "text/html" and "Vlast.prostr" in part.get_payload(): body = part.get_payload() break if not body: continue tmp = body[body.rindex("Vlast.prostr") :] tmp = "".join(tmp[0 : tmp.index("<")].split(":")[1]).strip(".").strip() message_balance.date = self._get_message_date(message) message_balance.balance = float("".join(tmp.split(" ")[0]).replace(",", ".")) message_balance.currency = "".join(tmp.split(" ")[-1]) if balance.balance is None or balance.date < message_balance.date: balance = message_balance return [balance]