Skip to content

Commit d8ec0ef

Browse files
authored
Streaming com vlc, download webdriver automatic...
Caso a pessoa tenha o vlc instalado, será feito o streaming do anime. Caso o contrário, será realizado o download
1 parent 7fa3885 commit d8ec0ef

File tree

1 file changed

+48
-43
lines changed

1 file changed

+48
-43
lines changed

raspamb.py

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,72 +2,76 @@
22
import re
33
import platform
44
import importlib
5+
from pathlib import Path
6+
import subprocess
7+
58

69
def bible(lib):
710
try:
811
if importlib.import_module(lib):
912
return importlib.import_module(lib)
1013
except:
1114
try:
12-
os.system(f'pip install {lib}')
15+
os.system(f'pip install {lib}')
1316
return importlib.import_module(lib)
1417
except:
15-
os.system(f'sudo pip install {lib}')
18+
os.system(f'sudo pip install {lib}')
1619
return importlib.import_module(lib)
20+
1721

1822
requests = bible('requests')
1923
bs4 = bible('bs4')
2024
selenium = bible('selenium')
25+
webdriver_manager = bible('webdriver_manager')
26+
from webdriver_manager.microsoft import EdgeChromiumDriverManager
27+
from webdriver_manager.chrome import ChromeDriverManager
2128
from bs4 import BeautifulSoup
2229
from selenium import webdriver
2330
from urllib.request import urlopen
2431
from selenium.common.exceptions import WebDriverException
2532

2633

27-
def drive_download():
34+
def popen(cmd):
35+
startupinfo = subprocess.STARTUPINFO()
36+
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
37+
process = subprocess.Popen(cmd, shell=True, startupinfo=startupinfo, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
38+
return process.stdout.read()
39+
40+
41+
def get_path_exe(exe_name, thirty_two=True):
2842
'''
29-
Esta função é responsavel por localizar a versão mais recente do Chrome Driver na internet e realiza o download
43+
Retorna a path de um executável
3044
'''
45+
path_exe = None
46+
DISCO = popen('echo %WINDIR%').decode().split(':')[0]
3147

32-
version = requests.get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text
33-
34-
if platform.system() == "Windows":
35-
zipp = requests.get(f"https://chromedriver.storage.googleapis.com/{version}/chromedriver_win32.zip")
48+
49+
if thirty_two:
50+
path_program_files = rf'{DISCO}:\Program Files (x86)'
3651
else:
37-
zipp = requests.get(f"https://chromedriver.storage.googleapis.com/{version}/chromedriver_linux64.zip")
52+
path_program_files = rf'{DISCO}:\Program Files'
3853

39-
with open("chromedriver.zip", "wb") as r:
40-
r.write(zipp.content)
4154

42-
if platform.system() == "Windows":
43-
os.system("tar -xf chromedriver.zip")
44-
os.system("cls")
45-
else:
46-
os.system("unzip chromedriver.zip")
47-
os.system("clear")
48-
os.remove("chromedriver.zip")
55+
for path in Path(path_program_files).rglob(exe_name):
56+
path_exe = path
57+
58+
return path_exe
4959

5060

51-
def localizar_driver():
61+
def return_driver():
5262
'''
53-
Esta função localiza o driver no computador do usuário
63+
Esta função baixa e retorna o driver no computador do usuário
5464
'''
5565

56-
if os.path.isfile('chromedriver') or os.path.isfile('chromedriver.exe'):
57-
if os.name == 'posix':
58-
# Retorna o driver nos sistas operacionais posix(ubuntu, etc...)
59-
return webdriver.Chrome(os.getcwd() + '/chromedriver')
60-
elif platform.system() == 'Windows':
61-
# Retorna o driver no sistema operacional windows
62-
return webdriver.Chrome(executable_path=os.getcwd() + '\chromedriver.exe')
63-
else:
64-
print('Sistema operacional, não reconhecido.')
65-
print('Envie o resultado abaixo para os desenvolvedores em https://github.com/hirios/raspamb/')
66-
print(os.name)
67-
exit()
68-
else:
69-
print('Nao encontrei o driver na mesma pasta do arquivo\nTentarei pela path do sistema')
70-
return webdriver.Chrome()
66+
if get_path_exe('msedge.exe'):
67+
return webdriver.Edge(EdgeChromiumDriverManager().install())
68+
69+
if get_path_exe('chrome.exe'):
70+
return webdriver.Chrome(ChromeDriverManager().install())
71+
72+
print("Você precisa ter o Google Chrome ou Edge instalado")
73+
input("")
74+
quit()
7175

7276

7377
def links_zippyshare():
@@ -79,15 +83,8 @@ def links_zippyshare():
7983
return lista_com_links
8084

8185

82-
if os.path.isfile("chromedriver.exe") or os.path.isfile("chromedriver") :
83-
pass
84-
else:
85-
drive_download()
86-
87-
8886
print('A execução do código pode demorar de acordo com a internet\n')
8987
url = 'https://www.anbient.com/anime/lista'
90-
9188
html = urlopen(url)
9289
bs = BeautifulSoup(html, 'html.parser')
9390
data = bs.find(class_="list")
@@ -101,6 +98,7 @@ def links_zippyshare():
10198
d = dat[c].text
10299
lista.append(str(d).lower())
103100

101+
104102
def retornar_busca():
105103
global driver
106104
global list_animes
@@ -152,7 +150,7 @@ def retornar_busca():
152150
print('Recomenda-se que o chromedriver esteja na mesma pasta que este script')
153151

154152
try:
155-
driver = localizar_driver()
153+
driver = return_driver()
156154
driver.get(link)
157155
except WebDriverException as e:
158156
print('Ocorreu um erro')
@@ -187,6 +185,13 @@ def retornar_busca():
187185
zip = zip_link[0].get('href')
188186
picotado = str(link).split('/')
189187
episode = 'https://{}{}'.format(picotado[2], zip)
188+
189+
190+
path_vlc = get_path_exe("vlc.exe", False)
191+
192+
if path_vlc:
193+
popen(f'"{path_vlc}" {episode}')
194+
190195
driver.get(episode)
191196

192197
retornar_busca()

0 commit comments

Comments
 (0)