from urllib.error import URLError
from datetime import datetime
from os import getenv
from dotenv import load_dotenv
load_dotenv()
from Overpost import get_newspaper
from MyPyload import Pyload
NEWSPAPER_PREFIX = getenv("NEWSPAPER_PREFIX") or ""
HOST_PREFERENCE = [ 'katfile.com', 'rapidgator.net', 'www.easybytez.com' ]
def scroll_list(array, buffer=1000):
array_len = len(array)
i = 0
while i < buffer:
if i >= array_len:
i = 0
yield array[i]
i += 1
def get_host(link):
return link.split("/")[2]
def filter_links(links, hosts):
host = next(hosts)
for link in links:
if get_host(link) == host:
return link
return filter_links(links, hosts)
def get_sorted_links(dictionary):
hosts = scroll_list(HOST_PREFERENCE)
return [ filter_links(links, hosts) for _, links in dictionary.items() ]
def download_link(connection, name, link):
return connection.addPackage(name=name, links=[link])
def handle_links(name, links):
try:
con = Pyload()
return [ download_link(con, name, link) for link in links ]
except URLError:
print("\nConnessione a Pyload rifiutata.")
print(len(links), "link da aggiungere manualmente:\n")
for link in links:
print(link)
print()
return []
def main():
newspapers = get_newspaper(NEWSPAPER_PREFIX, 0) # 0 -> today
name = f"{NEWSPAPER_PREFIX} - {datetime.today().strftime('%Y-%m-%d')}"
links = get_sorted_links(newspapers)
pids = handle_links(name, links)
print(len(pids), "link aggiunti a Pyload.")
print("Premi INVIO per uscire.")
input()
if __name__ == "__main__":
exit(main())