-
Notifications
You must be signed in to change notification settings - Fork 1
/
main_cli.py
144 lines (135 loc) · 6.93 KB
/
main_cli.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), "modules"))
from common import Common
from re import compile
import shutil
from anilist_robot import AnilistRobot
from modules.downloader_anime import DownloaderAnime
if __name__ == "__main__":
common = Common()
print('Selecione o diretório que será salvo os arquivos')
save_path = common.wx_dirdialog()
if save_path is None:
save_path = os.path.join(os.environ['USERPROFILE'], 'Videos')
print(f'Arquivos serão salvos em {save_path}')
option = -1
list_episodes = []
regex = compile(r'((?:https\:\/\/)|(?:http\:\/\/)|(?:www\.))?([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(?:\??)[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]+)')
while option != 0:
print("-"*15)
print("| MAIN MENU |")
print("-"*15)
print("0) SAIR\n1) Baixar episódios Saiko Animes\n2) Baixar episódios AnimeFire.net\n3) Atualizar Anilist\n4) Adicionar ao Anilist\n5) Baixar episódios Anitsu")
option = common.only_read_int("Digite -> ")
if option == 1:
out_path = common.create_folder("- Downloaded -", save_path)
t_i = common.initCountTime(True)
print('Iniciado opção Baixar episódios Saiko Animes em {}'.format(common.timestamp()))
login = input("Deseja realizar o login? (S)sim/(n)não\n-> ")
downloader = DownloaderAnime(out_path)
if 's' in login.lower() or 'sim' in login.lower() or 'si' in login.lower() or 'yes' in login.lower() or 'y' in login.lower():
downloader.login_saiko()
else:
driver = None
search = input("Digite o nome do anime -> ")
name_anime = downloader.get_anime_saiko(search=search)
if name_anime:
downloader.down_episodes_saiko(save_path=out_path, anime_name=name_anime)
shutil.rmtree(out_path)
print('Finalizado opção Baixar episódios Saiko Animes em {}'.format(common.timestamp()))
t_f = common.finishCountTime(t_i, True)
common.print_time(t_f)
del downloader
elif option == 2:
downloader = DownloaderAnime(save_path)
t_i = common.initCountTime(True)
print('Iniciado opção Baixar episódios AnimeFire.net em {}'.format(common.timestamp()))
search = input("Digite o nome do anime -> ")
url, name_anime = downloader.get_anime_animefire_net(search)
if url and name_anime:
downloader.down_episodes_animefire_net(url, name_anime, save_path)
t_f = common.finishCountTime(t_i, True)
common.print_time(t_f)
print('Finalizado opção Baixar episódios AnimeFire.net em {}'.format(common.timestamp()))
del downloader
elif option == 3:
anilist_robot = AnilistRobot()
t_i = common.initCountTime(True)
print('Iniciado opção Atualizar Anilist em {}'.format(common.timestamp()))
username = anilist_robot.login_anilist()
# anilist_get_chaps_from_reader.set_list_anilist(driver, 'Megami no Sprinter ', '/manga/101617/Megami-no-Sprinter/', True, True, True)
anilist_robot.create_custom_list()
mangas_list = {}
mangas_list = anilist_robot.get_mangas_anilist(username)
mangas_list = dict(sorted(mangas_list.items()))
mangas_not_found = anilist_robot.set_list_anilist_brmangas(mangas_list)
while len(mangas_not_found) > 1:
...
t_f = common.finishCountTime(t_i, True)
common.print_time(t_f)
print('Finalizado opção Atualizar Anilist em {}'.format(common.timestamp()))
del anilist_robot
elif option == 4:
t_i = common.initCountTime(True)
print('Iniciado opção adicionar ao Anilist em {}'.format(common.timestamp()))
anilist_robot = AnilistRobot()
anilist_robot.login_anilist()
items = {}
source_list = common.only_read_int("1 - via terminal\n2 - via arquivo\n-> ")
type_material = common.only_read_int("1 - para mangas\n2 - para animes\n-> ")
if source_list == 1:
print('Todos os nomes deve ter o sinal \"--\" seguido da quantidades de episódios/capitulos')
print('Siga o exemplo a seguir')
print('#'*50)
print('Miageru to Kimi wa--1\nYamada-kun to Lv999 no Koi wo Suru--2')
print('#'*50)
print('Para iniciar não digite nada e apenas pressione o ENTER 2 vezes')
while True:
item = input()
if item:
name_anime, chap = item.split('--')
items.update({name_anime : chap})
else:
break
elif source_list == 2:
file_anime_names = os.path.join(os.environ['USERPROFILE'], 'Documents', 'names.txt')
if os.path.isfile(file_anime_names):
# ler o arquivo
with open(file_anime_names, 'r', encoding='utf-8') as file_txt:
content = file_txt.readlines()
content = [x.replace('\n', '') for x in content]
for line in content:
new_content = line.split('--')
if len(new_content) == 2:
name_anime, chap = line.split('--')
items.update({name_anime : chap})
anilist_robot.add_on_anilist(items, type_material)
t_f = common.finishCountTime(t_i, True)
common.print_time(t_f)
print('Finalizado opção adicionar ao Anilist em {}'.format(common.timestamp()))
del anilist_robot
elif option == 5:
downloader = DownloaderAnime(save_path)
t_i = common.initCountTime(True)
print('Iniciado opção Baixar episódios Anitsu em {}'.format(common.timestamp()))
print('1 - Baixar via URL\n2 - Navegar pelo acervo')
option_anitsu = input('Selecione -> ')
if option_anitsu == '1':
print('Obtenha o link aqui -> https://anitsu.online')
url = input("Digite a url do anime -> ")
if regex.match(url):
downloader.downdload_anitsu(False,url)
else:
print("Não é url")
elif option_anitsu == '2':
downloader.downdload_anitsu(True)
t_f = common.finishCountTime(t_i, True)
common.print_time(t_f)
print('Finalizado opção Baixar episódios Anitsu em {}'.format(common.timestamp()))
del downloader
elif option == 0:
break
else:
print("Opção inválida")
continue