예제 #1
0
 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()
예제 #2
0
 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()
예제 #3
0
 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]
예제 #4
0
 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()
예제 #5
0
 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()
예제 #6
0
 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]