Skip to content

Commit

Permalink
DeprecatedLibrary(Exception) e wiki
Browse files Browse the repository at this point in the history
Migliorata l'eccezione DeprecatedLibrary, adesso contiene gli attributi funName (nome funzione dove è sorto l'errore) e line (line dove è sorto l'errore).
Sistemata la wiki per questa aggiunta.
  • Loading branch information
MainKronos committed Jan 20, 2021
1 parent 5f5652e commit fca92e4
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 24 deletions.
12 changes: 9 additions & 3 deletions animeworld/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from bs4 import BeautifulSoup
import youtube_dl
import re
import inspect

HDR = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'}

Expand All @@ -23,7 +24,10 @@ def wrapper(*args, **kwargs):
try:
return fun(*args, **kwargs)
except AttributeError:
raise DeprecatedLibrary()
frame = inspect.trace()[-1]
funName = frame[3]
errLine = frame[2]
raise DeprecatedLibrary(funName, errLine)
return wrapper

class Anime:
Expand Down Expand Up @@ -310,6 +314,8 @@ def __init__(self, animeName=''):
super().__init__(self.message)

class DeprecatedLibrary(Exception):
def __init__(self):
self.message = "Il sito è cambiato, di conseguenza la libreria è DEPRECATA."
def __init__(self, funName, line):
self.funName = funName
self.line = line
self.message = f"Il sito è cambiato, di conseguenza la libreria è DEPRECATA. -> [{funName} - {line}]"
super().__init__(self.message)
47 changes: 27 additions & 20 deletions documentation/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,39 @@

def main():

anime = aw.Anime(link="https://www.animeworld.tv/play/black-clover.TSAUM")

print("Titolo", anime.getName()) # Titolo dell'anime

print("\n----------------------------------\n")
try:
anime = aw.Anime(link="https://www.animeworld.tv/play/jaku-chara-tomozaki-kun.RDPHq")

print("Titolo", anime.getName()) # Titolo dell'anime

print("Trama:", anime.getTrama()) # Trama
print("\n----------------------------------\n")

print("\n----------------------------------\n")
print("Trama:", anime.getTrama()) # Trama

print("Info:")
info = anime.getInfo()
for x in info: print(f"{x}: {info[x]}") # Informazioni presenti su Animeworld riguardanti l'anime
print("\n----------------------------------\n")

print("\n----------------------------------\n")
print("Info:")
info = anime.getInfo()
for x in info: print(f"{x}: {info[x]}") # Informazioni presenti su Animeworld riguardanti l'anime

print("Episodi:")
try:
episodi = anime.getEpisodes()
except Exception as error:
print("Errore:", error)
else:
for x in episodi:
print(f"\n-> Ep. {x.number}")
for k in x.links:
print(f"\t{k.name} - {k.link}")
print("\n----------------------------------\n")

print("Episodi:")
try:
episodi = anime.getEpisodes()
except (aw.ServerNotSupported, aw.AnimeNotAvailable) as error:
print("Errore:", error)
else:
for x in episodi:
print(f"\n-> Ep. {x.number}")
for k in x.links:
print(f"\t{k.name} - {k.link}")

# if x.number == '4':
# x.download()
except aw.DeprecatedLibrary as error:
print(error)

if __name__ == '__main__':
main()
25 changes: 25 additions & 0 deletions documentation/wiki/Exceptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,30 @@ _Viene sollevata questa eccezione quando la serie non è ancora uscita, cioè no
**Returns**
> Il **messaggio** di errore.
**Return type**
> [`str`](https://docs.python.org/3/library/stdtypes.html#str)
# **class** DeprecatedLibrary(_Exception_)
_Viene sollevata questa eccezione quando il sito AnimeWorld ha subito dei mutamenti nei punti dove la libreria opera._

## Attributes
### `funName`
**Returns**
> Il **nome** della funzione dove è sorto l'errore.
**Return type**
> [`str`](https://docs.python.org/3/library/stdtypes.html#str)
### `line`
**Returns**
> La **linea** dove è sorto l'errore.
**Return type**
> [`int`](https://docs.python.org/3/library/functions.html#int)
### `message`
**Returns**
> Il **messaggio** di errore.
**Return type**
> [`str`](https://docs.python.org/3/library/stdtypes.html#str)
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", # Replace with your own username
version="1.2.1",
version="1.3.1",
author="MainKronos",
author_email="[email protected]",
description="AnimeWorld UNOFFICIAL API",
Expand Down

0 comments on commit fca92e4

Please sign in to comment.