X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=ann.py;fp=ann.py;h=4d2c5d15ed7b8eccc2f0ac062fa76edc52f6ff19;hp=0b583ffba69d5bff800cb9dd2ef374fe28c80f75;hb=6602427b42eda9be83a4e74d3548736e062279b2;hpb=8b09dc89e6081cfc76fee513be8dac9e39b6305f diff --git a/ann.py b/ann.py index 0b583ff..4d2c5d1 100644 --- a/ann.py +++ b/ann.py @@ -3,6 +3,9 @@ from urllib.parse import urljoin, urlencode import bs4 soup = lambda cont: bs4.BeautifulSoup(cont, "html.parser") +__all__ = ["anime", "getlist", + "error", "incompatible"] + base = "http://www.animenewsnetwork.com/encyclopedia/" class error(Exception): @@ -63,6 +66,8 @@ def cstr(soup): for el in soup: ret += cstr(el) return ret + elif isinstance(soup, str): + return soup elif soup is None: return None else: @@ -145,6 +150,18 @@ class anime(object): return ret return int(ret) + @cproperty + def vintage(self): + return cstr(self._info("vintage")).strip() + + @cproperty + def genres(self): + return [cstr(el) for x in (self._info("genres") or []) if isinstance(x, bs4.Tag) for el in x.findAll("a")] + + @cproperty + def themes(self): + return [cstr(el) for x in (self._info("themes") or []) if isinstance(x, bs4.Tag) for el in x.findAll("a")] + def __repr__(self): return "" % (self.name, self.id)