1
0

myanimelist.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import re
  2. import urllib
  3. import datetime
  4. from bs4 import BeautifulSoup
  5. import myanimebot.utils as utils
  6. import myanimebot.globals as globals
  7. def get_thumbnail(urlParam):
  8. ''' Returns the MAL media thumnail from a link '''
  9. url = "/".join((urlParam).split("/")[:5])
  10. websource = urllib.request.urlopen(url)
  11. soup = BeautifulSoup(websource.read(), "html.parser")
  12. image = re.search(r'(?P<url>https?://[^\s]+)', str(soup.find("img", {"itemprop": "image"}))).group("url")
  13. thumbnail = "".join(image.split('"')[:1]).replace('"','')
  14. return thumbnail
  15. def build_feed_from_data(data, user : utils.User, image, pubDateRaw, type : utils.MediaType) -> utils.Feed:
  16. if data is None: return None
  17. media = utils.Media(name=data.title,
  18. url=data.link,
  19. episodes=None,
  20. image=image,
  21. type=type)
  22. if data.description.startswith('-') :
  23. if type == 1:
  24. data.description = "Rereading " + data.description
  25. else:
  26. data.description = "Rewatching " + data.description
  27. feed = utils.Feed(service=utils.Service.MAL,
  28. date_publication=datetime.datetime.fromtimestamp(pubDateRaw, globals.timezone),
  29. user=user,
  30. status=utils.MediaStatus.from_str(data.description),
  31. description=data.description,
  32. media=media)
  33. return feed