text: import os
  import re
  import zipfile
  import requests
  import unidecode
  from bs4 import BeautifulSoup
  
  
  class Message:
      def __init__(self, title, sender, url, date):
          self.title = title
          self.sender = sender
          self.url = url
          self.date = date
  
  
  if __name__ == '__main__':
      logo_str = ('\n'
                  '___________________                      .__                    .___            \n'
                  '\_   _____/\______ \   ______  _  ______ |  |   _________     __| _/___________ \n'
                  ' |    __)_  |    |  \ /  _ \ \/ \/ /    \|  |  /  _ \__  \   / __ |/ __ \_  __ \\\n'
                  ' |        \ |    `   (  <_> )     /   |  \  |_(  <_> ) __ \_/ /_/ \  ___/|  | \/\n'
                  '/_______  //_______  /\____/ \/\_/|___|  /____/\____(____  /\____ |\___  >__|   \n'
                  '        \/         \/                  \/                \/      \/    \/       \n'
                  '________________________________________________________________________________\n\n')
      print(logo_str)
  
      with requests.session() as session:
          while True:
              print('___LOGIN________________________________________________________________________')
              school_id = input('Zadejte ID Vaší školy: ')
              username = input('Zadejte Vaše přihlašovací jméno: ')
              password = input('Zadejte Vaše heslo: ')
              print('________________________________________________________________________________\nPřihlašování...')
  
              login_url = 'https://' + school_id + '.edookit.net/user/login'
              login_check_url = 'https://' + school_id + '.edookit.net/user/login?do=loginForm-checkCaptcha&loginForm-username=' + username
              inbox_url = 'https://' + school_id + '.edookit.net/overview/updates'
  
              payload = {
                  'username': username,
                  'password': password,
                  'g-recaptcha-response': '',
                  'send': 'Přihlásit',
                  'remember': '',
                  '_do': 'loginForm-form-submit'
              }
  
              session.get(login_check_url)
              post = session.post(login_url, data=payload)
              if post.status_code == 200:
                  break
              else:
                  print('Nesprávné přihlašovací údaje! Zkuste to znovu.\n')
  
          print('Přihlášen✓\nNačítání zpráv...')
          r = session.get(inbox_url)
  
          soup = BeautifulSoup(r.text, 'html.parser')
          inbox = soup.find(class_='grid-container inbox')
  
          senders = []
          forbidden = ['/', '\\', ':', '?', '"', '<', '>', '|', '*']
          messages = inbox.find_all('span', class_='attachment')
          for i, m in enumerate(messages):
              m = m.parent.parent.parent
  
              t = re.sub(' +', ' ', m.find(class_='simply-highlighted').string.replace("\n", "").strip())
              t = re.sub('[/:?"<>|*]', ' ', t)
  
              u = m.find(class_='simply-highlighted')['href']
              d = unidecode.unidecode(m.find(class_='time').text.strip()).replace(':', '.')
  
              s = m.find(class_='creator').string.strip()
              if s not in senders:
                  senders.append(s)
  
              messages[i] = Message(t, s, u, d)
          senders.sort()
  
          length = len(messages)
          if length == 1:
              print('Načtena 1 zpráva✓')
          elif length < 5:
              print('Načteny', length, 'zprávy✓')
          else:
              print('Načteno', length, 'zpráv✓')
          print('________________________________________________________________________________')
  
          download_from = []
          yes_responses = ['ano', 'a', 'yes', 'y']
  
          if input(
                  'Odpovídejte pomocí "ano", "ne", "a", nebo "n".\nPřejete si stáhnout úplně všechny soubory?\n').lower() in yes_responses:
              download_from = senders
          else:
              for s in senders:
                  if input('Přejete si stáhnout soubory od: ' + s + '?\n').lower() in yes_responses:
                      download_from.append(s)
  
          for s in download_from:
              print('Stahování souborů od:', s)
  
              sender_messages = []
              for m in messages:
                  if m.sender == s:
                      sender_messages.append(m)
  
              msg_num = len(sender_messages)
              if msg_num == 1:
                  print('\tNašli jsme 1 zprávu se soubory:')
              elif msg_num < 5:
                  print('\tNašli jsme', msg_num, 'zprávy se soubory:')
              else:
                  print('\tNašli jsme', msg_num, 'zpráv se soubory:')
  
              for m in sender_messages:
                  try:
                      msg_url = 'https://' + school_id + '.edookit.net' + m.url
                      syntax = '\n        Stáhnout všechny soubory\n        '
  
                      r = session.get(msg_url)
                      soup = BeautifulSoup(r.text, 'html.parser')
                      href = 'https://' + school_id + '.edookit.net' + soup.find('a', text=syntax)['href']
  
                      print('\t\tStahování: ' + m.title + ' -> ' + href)
  
                      save_path = os.getcwd() + '/messages/' + m.sender + '/' + m.date + ' - ' + m.title
                      file_name = 'archiv.zip'
                      final_path = os.path.join(save_path, file_name)
                      extract_path = os.path.join(save_path)
  
                      os.makedirs(os.path.dirname(final_path), exist_ok=True)
                      r = session.get(href, allow_redirects=True)
                      open(final_path, 'wb').write(r.content)
                      with zipfile.ZipFile(final_path, 'r') as zip_ref:
                          zip_ref.extractall(extract_path)
                      os.remove(final_path)
                      print('\t\tStaženo✓')
                  except:
                      print('\t\tNestaženo✕')
                      pass
  
              print('\n')
  
          path = os.path.realpath(os.getcwd() + '/messages')
          os.startfile(path)
  