print('\n') print(Fore.YELLOW + '!' + Style.RESET_ALL) print( Fore.YELLOW + 'Não se preocupe, não enviaremos essa informação para nenhum local, apenas será encriptada na sua máquina como cache.' + Style.RESET_ALL) print(Fore.YELLOW + '!' + Style.RESET_ALL) print('\n') key_file = open('key.key', 'rb') key = key_file.read() key_file.close() if not key: c.generate_new_key() c.encrypt(bearer_token) else: c.encrypt(bearer_token) encrypted_token_file = open('token.txt', 'rb') encrypted_token = encrypted_token_file.read() encrypted_token_file.close() if not encrypted_token: print(f'{Fore.RED}Ocorreu um erro, tente novamente{Style.RESET_ALL}') original_token = c.decrypt(encrypted_token) else: try: original_token = c.decrypt(encrypted_token)
def get_assignments(): print(ascii_art.return_ascii()) print('Tentando encontrar o Bearer token...\n') c = Crypt() encrypted_token_file = open('token.txt', 'rb') encrypted_token = encrypted_token_file.read() encrypted_token_file.close() if not encrypted_token: print( f'{Fore.YELLOW}Não conseguimos localizar seu token salvo em cache, digite manualmente{Style.RESET_ALL}' ) print('Digite o seu bearer token do Teams: ') bearer_token = str(input('')).strip() print('\n') print(Fore.YELLOW + '!' + Style.RESET_ALL) print( Fore.YELLOW + 'Não se preocupe, não enviaremos essa informação para nenhum local, apenas será encriptada na sua máquina como cache.' + Style.RESET_ALL) print(Fore.YELLOW + '!' + Style.RESET_ALL) print('\n') key_file = open('key.key', 'rb') key = key_file.read() key_file.close() if not key: c.generate_new_key() c.encrypt(bearer_token) else: c.encrypt(bearer_token) encrypted_token_file = open('token.txt', 'rb') encrypted_token = encrypted_token_file.read() encrypted_token_file.close() if not encrypted_token: print( f'{Fore.RED}Ocorreu um erro, tente novamente{Style.RESET_ALL}') original_token = c.decrypt(encrypted_token) else: try: original_token = c.decrypt(encrypted_token) except Exception as err: print(f'{Fore.RED}{err}{Style.RESET_ALL}') clear_token() exit() print( f'{Fore.BLUE}Seu token foi encontrado em cache!{Style.RESET_ALL}\n' ) print('Pegando assignments... (Isso pode demorar alguns minutos)\n') ts = TeamScrap(original_token) try: classes_assignments = ts.get_all_classes_assignments() except Exception as err: print(f'{Fore.RED}{err}{Style.RESET_ALL}\n') print( f'{Fore.RED}Verifique se o token não expirou ou está correto{Style.RESET_ALL}\n' ) clear_token() exit() overdue_assignments = 0 print('=' * 100) message = "" for class_assignment in classes_assignments: created_date_time = class_assignment['assignmentInfo'][ 'createdDateTime'] [created_date_parsed, created_hours_parsed] = parse_teams_date_time(created_date_time) created_date_final = datetime(year=int(created_date_parsed[0]), month=int(created_date_parsed[1]), day=int(created_date_parsed[2])) bimester_init_date = datetime(year=int(2021), month=int(2), day=int(1)) if created_date_final > bimester_init_date: due_date_time = class_assignment['assignmentInfo']['dueDateTime'] [date_parsed, hours_parsed] = parse_teams_date_time(due_date_time) date_init = datetime.now() date_final = datetime(year=int(date_parsed[0]), month=int(date_parsed[1]), day=int(date_parsed[2]), hour=int(hours_parsed[0]), minute=int(hours_parsed[1]), second=int(hours_parsed[2])) date_final -= timedelta(hours=3) [final_date_parsed, final_hours_parsed] = parse_date_time(date_final) remaining_date = date_final - date_init remaining_date_parsed = str(remaining_date).split(',') message += f"""\n\n📝 Tarefa: {class_assignment['assignmentInfo']['displayName']} \n📚 Disciplina: {class_assignment["classInfo"][0]["name"]} \n⏳ Data de entrega: {final_date_parsed[2]}/{final_date_parsed[1]}/{final_date_parsed[0]} às {final_hours_parsed[0]}:{final_hours_parsed[1]}:{final_hours_parsed[2]}""" if class_assignment['assignmentInfo'][ 'allowLateSubmissions'] == 'true': message += "\n⏰ Aceita atrasos: ✅SIM✅" else: message += "\n⏰ Aceita atrasos: ❌NÃO❌" if len(remaining_date_parsed) > 1: remaining_days = int( remaining_date_parsed[0].strip().split(' ')[0]) remaining_hours = remaining_date_parsed[1].strip().split(':') else: remaining_hours = remaining_date_parsed[0].strip().split(':') if int(remaining_days) < 0: message += "\n⚙️ Status: ⌛️VENCIDA⌛️" else: message += "\n⚙️ Status: 🏃CORRE QUE DÁ TEMPO🏃" message += "\n" + "=" * 10 else: pass return message