def load_reviews(self): """Fetches the MAL user reviews page and sets the current user's reviews attributes. :rtype: :class:`.User` :return: Current user object. """ page = 0 # collect all reviews over all pages. review_collection = [] while True: user_reviews = self.session.session.get( u'http://myanimelist.net/profile/' + utilities.urlencode(self.username) + u'/reviews&' + urllib.urlencode({u'p': page})).text parse_result = self.parse_reviews( utilities.get_clean_dom(user_reviews)) if page == 0: # only set attributes once the first time around. self.set(parse_result) if len(parse_result[u'reviews']) == 0: break review_collection.append(parse_result[u'reviews']) page += 1 # merge the review collections into one review dict, and set it. self.set({ 'reviews': {k: v for d in review_collection for k, v in d.iteritems()} }) return self
def load_reviews(self): """Fetch the MAL user reviews page and sets the current user's reviews attributes. :rtype: :class:`.User` :return: Current user object. """ page = 0 # collect all reviews over all pages. review_collection = [] while True: user_reviews = self.session.session.get( u'http://myanimelist.net/profile/' + utilities.urlencode(self.username) + u'/reviews&' + urlencode({u'p': page}) ).text parse_result = self.parse_reviews(utilities.get_clean_dom(user_reviews)) if page == 0: # only set attributes once the first time around. self.set(parse_result) if len(parse_result['reviews']) == 0: break review_collection.append(parse_result['reviews']) page += 1 # merge the review collections into one review dict, and set it. self.set({ 'reviews': {k: v for d in review_collection for k, v in d.items()} }) return self
def load_friends(self): """Fetches the MAL user friends page and sets the current user's friends attributes. :rtype: :class:`.User` :return: Current user object. """ user_friends = self.session.session.get(u'http://myanimelist.net/profile/' + utilities.urlencode(self.username) + u'/friends').text self.set(self.parse_friends(utilities.get_clean_dom(user_friends))) return self
def load(self): """Fetch the MAL user page and sets the current user's attributes. :rtype: :class:`.User` :return: Current user object. """ user_profile = self.session.session.get( 'http://myanimelist.net/profile/' + utilities.urlencode(self.username)).text self.set(self.parse(utilities.get_clean_dom(user_profile))) return self
def load_stats(self): """Fetches the MAL media statistics page and sets the current media's statistics attributes. :rtype: :class:`.Media` :return: current media object. """ stats_page = self.session.session.get(u'http://myanimelist.net/' + self.__class__.__name__.lower() + u'/' + str( self.id) + u'/' + utilities.urlencode(self.title) + u'/stats').text self.set(self.parse_stats(utilities.get_clean_dom(stats_page))) return self
def load_pictures(self): """Fetche the MAL person pictures page and sets the current character's pictures attributes. :rtype: :class:`.Person` :return: Current person object. """ person = self.session.session.get( u'http://myanimelist.net/person/' + str(self.id) + u'/' + utilities.urlencode( self.name) + u'/pictures').text self.set(self.parse_pictures(utilities.get_clean_dom(person))) return self
def load_clubs(self): """Fetches the MAL character clubs page and sets the current character's clubs attributes. :rtype: :class:`.Character` :return: Current character object. """ character = self.session.session.get( u'http://myanimelist.net/character/' + str(self.id) + u'/' + utilities.urlencode(self.name) + u'/clubs').text self.set(self.parse_clubs(utilities.get_clean_dom(character))) return self
def load_clubs(self): """Fetches the MAL character clubs page and sets the current character's clubs attributes. :rtype: :class:`.Character` :return: Current character object. """ character = self.session.session.get( u'http://myanimelist.net/character/' + str(self.id) + u'/' + utilities.urlencode( self.name) + u'/clubs').text self.set(self.parse_clubs(utilities.get_clean_dom(character))) return self
def load_pictures(self): """Fetche the MAL person pictures page and sets the current character's pictures attributes. :rtype: :class:`.Person` :return: Current person object. """ person = self.session.session.get(u'http://myanimelist.net/person/' + str(self.id) + u'/' + utilities.urlencode(self.name) + u'/pictures').text self.set(self.parse_pictures(utilities.get_clean_dom(person))) return self
def load_characters(self): """Fetches the MAL media characters page and sets the current media's character attributes. :rtype: :class:`.Media` :return: current media object. """ character_page_url = u'http://myanimelist.net/' + self.__class__.__name__.lower() + u'/' + str( self.id) + u'/' + utilities.urlencode(self.title) + u'/characters' characters_page = self.session.session.get(character_page_url).text characters_page_original = bs4.BeautifulSoup(characters_page,'lxml') self.set(self.parse_characters(utilities.get_clean_dom(characters_page), characters_page_original)) return self
def load_recommendations(self): """Fetch the MAL user recommendations page. :rtype: :class:`.User` :return: Current user object. """ user_recommendations = self.session.session.get( u'http://myanimelist.net/profile/' + utilities.urlencode(self.username) + u'/recommendations' ).text self.set(self.parse_recommendations(utilities.get_clean_dom(user_recommendations))) return self
def load_characters(self): """Fetches the MAL media characters page and sets the current media's character attributes. :rtype: :class:`.Media` :return: current media object. """ characters_page = self.session.session.get( u'http://myanimelist.net/' + self.__class__.__name__.lower() + u'/' + str(self.id) + u'/' + utilities.urlencode(self.title) + u'/characters').text self.set( self.parse_characters(utilities.get_clean_dom(characters_page))) return self
def load_videos(self): """Fetch the MAL media videos page and sets the current media's promotion videos attr. :rtype: :class:`.Anime` :return: current media object. """ url = ParseResult( scheme='https', netloc='myanimelist.net', path='/'.join([ '', # empty string to make path start with '/' self.__class__.__name__.lower(), str(self.id), utilities.urlencode(self.title), 'video' ]), params='', query='', fragment='' ).geturl() videos_page = self.session.session.get(url).text promotion_videos = self.parse_promotion_videos(utilities.get_clean_dom(videos_page)) self.set({'promotion_videos': promotion_videos}) return self