divided into simpler functions
This commit is contained in:
parent
4a58c6f249
commit
bff23b1ffd
@ -1,26 +1,29 @@
|
||||
def modulo_scarica():
|
||||
from bs4 import BeautifulSoup as bs
|
||||
import csv, jsbeautifier, cloudscraper, os, re, smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from json import loads
|
||||
from datetime import datetime
|
||||
#from multiprocessing.dummy import Pool as ThreadPool
|
||||
from yt_dlp import YoutubeDL
|
||||
from bs4 import BeautifulSoup as bs
|
||||
import csv, jsbeautifier, cloudscraper, os, re, smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from json import loads
|
||||
from datetime import datetime
|
||||
from yt_dlp import YoutubeDL
|
||||
|
||||
r = cloudscraper.create_scraper()
|
||||
def get_animu():
|
||||
with open("animelist.csv",mode='r') as animecsv:
|
||||
csvfile=csv.reader(animecsv)
|
||||
file=list(csvfile)
|
||||
animecsv.close()
|
||||
return file
|
||||
|
||||
def get_config():
|
||||
with open("cfg.json",mode='r') as config:
|
||||
configs=config.read()
|
||||
configs=loads(configs)
|
||||
config.close()
|
||||
def get_soup(url): #dall'url outputta la soup della pagina
|
||||
return configs
|
||||
|
||||
def get_soup(url): #dall'url outputta la soup della pagina
|
||||
r = cloudscraper.create_scraper()
|
||||
page=r.get(url)
|
||||
data=page.text
|
||||
return bs(data, features="html.parser")
|
||||
def new_email(subject,body):
|
||||
|
||||
def new_email(subject,body,configs):
|
||||
msg = MIMEText(body)
|
||||
msg['Subject'] = subject
|
||||
msg['From'] = configs['email']
|
||||
@ -29,15 +32,18 @@ def modulo_scarica():
|
||||
smtp_server.login(configs['email'], configs['email_password'])
|
||||
smtp_server.sendmail(configs['email'], configs['email'], msg.as_string())
|
||||
print('Email successfully sent!')
|
||||
def tutti_gli_episodi(url): #trova tutti gli episodi dalla pagina descrittiva dell'anime
|
||||
|
||||
def tutti_gli_episodi(url): #trova tutti gli episodi dalla pagina descrittiva dell'anime
|
||||
cosette=get_soup(url).find('div', {'class':'tab-content'}).find_all('a')
|
||||
return [episodi['href'] for episodi in cosette]
|
||||
def link_ep_da_url(url): #prende la pagina del "Guarda lo Streaming" e trova il link per guardarlo
|
||||
#print('ledu')
|
||||
|
||||
def link_ep_da_url(url): #prende la pagina del "Guarda lo Streaming" e trova il link per guardarlo
|
||||
#print('link_ep_da_url')
|
||||
cosetta=get_soup(url).find('div', {'class':"btn btn-light w-100 mt-3 mb-3"}).parent
|
||||
return cosetta['href']
|
||||
def links_ep_da_scaricare(url): #prende il link output di link_ep_da_url e cerca al suo interno tutti i link di file di tutti i provider possibili ritornando un dict
|
||||
#print('leds')
|
||||
|
||||
def links_ep_da_scaricare(url): #prende il link output di link_ep_da_url e cerca al suo interno tutti i link di file di tutti i provider possibili ritornando un dict
|
||||
#print('links_ep_da_scaricare')
|
||||
soup=get_soup(url)
|
||||
cosetta=soup.find('div', {'class':'main-container'}).find('source')
|
||||
links={}
|
||||
@ -59,7 +65,8 @@ def modulo_scarica():
|
||||
except Exception as e:
|
||||
pass
|
||||
return links
|
||||
def link_down(named_urls): #prende il dict di links_ep_da_scaricare e per quanto può converte i siti in link scaricabili tramite yt-dlp
|
||||
|
||||
def link_down(named_urls): #prende il dict di links_ep_da_scaricare e per quanto può converte i siti in link scaricabili tramite yt-dlp
|
||||
#print('link-down')
|
||||
#print(named_urls)
|
||||
links={}
|
||||
@ -83,7 +90,8 @@ def modulo_scarica():
|
||||
pass
|
||||
#print(links)
|
||||
return links
|
||||
def scarica(lista): #la lista sarà nella forma filepath,url e prova in ordine di priorità da conf
|
||||
|
||||
def scarica(lista,configs): #la lista sarà nella forma filepath,url e prova in ordine di priorità da conf
|
||||
orario=datetime.now().strftime("%d/%m/%Y %H:%M:%S")
|
||||
priority=configs['DownPriority']
|
||||
urls_file=link_down(links_ep_da_scaricare(link_ep_da_url(lista[1])))
|
||||
@ -98,6 +106,10 @@ def modulo_scarica():
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print('['+orario+']'+'Errore '+provider+' per '+lista[0].split('/')[-1])
|
||||
|
||||
def modulo_scarica():
|
||||
file = get_animu()
|
||||
configs = get_config()
|
||||
#lines 0 è url ep, lines 1 è cartella download, lines 2 è nome anime
|
||||
lista_email=[]
|
||||
for lines in file[1:]:
|
||||
@ -133,15 +145,8 @@ def modulo_scarica():
|
||||
filepath=os.path.join(configs['DownDir'],lines[1], nome_ep)
|
||||
results.append((filepath,episodi))
|
||||
for ep in results:
|
||||
scarica(ep)
|
||||
scarica(ep,configs)
|
||||
lista_email.append((os.path.basename(ep[0]),0))
|
||||
'''
|
||||
print(results)
|
||||
pool=ThreadPool(1)
|
||||
pool.map(scarica,results)
|
||||
pool.close()
|
||||
pool.join()
|
||||
'''
|
||||
except Exception as e:
|
||||
print(e)
|
||||
lista_email.append((lines[1],1))
|
||||
@ -161,21 +166,21 @@ def modulo_scarica():
|
||||
for el in errori:
|
||||
body+=f"{ el[0] }, oof ci sono stati errori con questo anime\n"
|
||||
body+="\nFine resoconto, sono sbalordito delle mie capacità o_o"
|
||||
new_email(subject,body)
|
||||
new_email(subject,body,configs)
|
||||
elif novità:
|
||||
subject='Saturn_cli: Novità'
|
||||
body="Yo sono usciti nuovi episodi, valli a vedere soldato ;)\n"
|
||||
for el in novità:
|
||||
body+=f"{ el[0] } è stato aggiunto con successo!\n"
|
||||
body+="\nFine resoconto, sono sbalordito delle mie capacità o_o"
|
||||
new_email(subject,body)
|
||||
new_email(subject,body,configs)
|
||||
elif errori:
|
||||
subject='Saturn_cli: Errori'
|
||||
body="Ohibò ci sono stati degli errori :(\n"
|
||||
for el in errori:
|
||||
body+=f"{ el[0] }, oof ci sono stati errori con questo anime\n"
|
||||
body+="\nFine resoconto, sono sbalordito delle mie capacità o_o"
|
||||
new_email(subject,body)
|
||||
new_email(subject,body,configs)
|
||||
|
||||
if __name__ == "__main__":
|
||||
modulo_scarica()
|
||||
|
Loading…
Reference in New Issue
Block a user