ann.py: Further improvements.
[utils.git] / ann.py
diff --git a/ann.py b/ann.py
index 0b583ff..4d2c5d1 100644 (file)
--- 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 "<ann.anime: %r (%i)>" % (self.name, self.id)