Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
La funzione download non ritorna più un bool ma il file scaricato (str)
  • Loading branch information
MainKronos committed Feb 13, 2022
1 parent 2e952b0 commit 7f0ac7c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 11 deletions.
5 changes: 3 additions & 2 deletions animeworld/episodio.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Modulo contenente la struttura a classe degli episodi.
"""
from tkinter.messagebox import NO
import requests
from bs4 import BeautifulSoup
from typing import *
Expand Down Expand Up @@ -66,15 +67,15 @@ def links(self) -> List[Server]: # lista dei provider dove sono hostati gli ep

return self.__setServer(tmp, self.number)

def download(self, title: Optional[str]=None, folder: str='') -> Union[bool, NoReturn]: # Scarica l'episodio con il primo link nella lista
def download(self, title: Optional[str]=None, folder: str='') -> Optional[str]: # Scarica l'episodio con il primo link nella lista
"""
Scarica l'episodio dal primo server della lista links.
- `title`: Nome con cui verrà nominato il file scaricato.
- `folder`: Posizione in cui verrà spostato il file scaricato.
```
return bool # File scaricato
return str # File scaricato
```
"""

Expand Down
25 changes: 17 additions & 8 deletions animeworld/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,16 @@ def _sanitize(self, title: str) -> str: # Toglie i caratteri illegali per i file
title = title.replace(x, '')
return title

def download(self, title: Optional[str]=None, folder: str='') -> NoReturn:
def download(self, title: Optional[str]=None, folder: str='') -> Optional[str]:
"""
Scarica l'episodio.
- `title`: Nome con cui verrà nominato il file scaricato.
- `folder`: Posizione in cui verrà spostato il file scaricato.
```
return str # File scaricato
```
"""
raise ServerNotSupported(self.name)

Expand All @@ -86,24 +89,27 @@ def _downloadIn(self, title: str, folder: str) -> bool: # Scarica l'episodio
"""
with requests.get(self._getFileLink(), headers = self._HDR, stream = True) as r:
r.raise_for_status()
with open(f"{os.path.join(folder,title)}.mp4", 'wb') as f:
ext = r.headers['content-type'].split('/')[-1]
if ext == 'octet-stream': ext = 'mp4'
file = f"{title}.{ext}"
with open(f"{os.path.join(folder,file)}", 'wb') as f:
for chunk in r.iter_content(chunk_size = 1024*1024):
if chunk:
f.write(chunk)
else:
return True # Se il file è stato scaricato correttamente
return False # Se è accaduto qualche imprevisto
return file # Se il file è stato scaricato correttamente
return None # Se è accaduto qualche imprevisto

# Protected
def _dowloadEx(self, title: str, folder: str):
def _dowloadEx(self, title: str, folder: str) -> Optional[str]:
"""
Scarica il file utilizzando yutube_dl.
- `title`: Nome con cui verrà nominato il file scaricato.
- `folder`: Posizione in cui verrà spostato il file scaricato.
```
return bool # File scaricato
return str # File scaricato
```
"""
class MyLogger(object):
Expand All @@ -124,8 +130,11 @@ def my_hook(d):
'progress_hooks': [my_hook],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([self._getFileLink()])
return True
url = self._getFileLink()
info = ydl.extract_info(url, download=False)
filename = ydl.prepare_filename(info)
ydl.download([url])
return filename


class AnimeWorld_Server(Server):
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="animeworld",
version="1.4.10",
version="1.4.11",
author="MainKronos",
description="AnimeWorld UNOFFICIAL API",
long_description=long_description,
Expand Down

0 comments on commit 7f0ac7c

Please sign in to comment.