def retrieve(self): """ Récupère un fond d'écran aléatoire """ self._reInit() page_content = RetrieverBase.urlGetContents(self.WALLBASE_URL) # récupération de l'url de la page du wall try: url_wall_page = re.compile(self.WALL_PAGE_REGEX).findall(page_content)[0] except IndexError: return # exploration de la page du wall pour trouver les infos intéressantes ... wall_page = RetrieverBase.urlGetContents(url_wall_page) try: data_title = re.compile(self.TITLE_REGEX).findall(wall_page)[0] except IndexError: data_title = '' no, title = self.parseTitle(data_title) # recherche du lien de téléchargement et de la taille du wall try: link, size_data = re.compile(self.DL_LINK_REGEX, re.DOTALL).findall(wall_page)[0] size = size_data.split('/')[1].strip('Wallpaper').strip() except IndexError: return self.wlpprs.append(Wlppr(no, title, { size: link }))
def retrieve(self): """ Récupère un fond d'écran aléatoire """ self._reInit() page_content = RetrieverBase.urlGetContents(self.WLPPR_URL) # récupération du titre try: data_title = re.compile(self.WLPPR_TITLE_REGEX) \ .findall(page_content)[0] except IndexError: data_title = '' no, title = self.parseTitle(data_title) # récupération des différentes versions (tailles) du wlppr links_zone = re.compile(self.WLPPR_LINKS_ZONE_REGEX) \ .findall(page_content)[0] links = self.parseLinks(links_zone) if not len(links) == 0: self.wlpprs.append(Wlppr(no, title, links))
def retrieve(self): """ Retourne les nb derniers fonds d'écran contenus dans le flux du site. """ self._reInit() nb_left = self.NB_ITEMS feed_content = RetrieverBase.urlGetContents(self.FEED_URL) parser = minidom.parseString(feed_content) for item in parser.getElementsByTagName('entry'): if nb_left <= 0: break # récupération du titre try: data_title = self.getText(item.getElementsByTagName('title')[0]) except IndexError: # pas de titre spécifié data_title = '' # séparation du numéro du wlppr et du titre en lui-même # NB : les titres sont de la forme "Episode #999 : Here is the title" no, title = self.parseTitle(data_title) # récupération des liens try: data_links = self.getText(item.getElementsByTagName('content')[0]) links = self.parseLinks(data_links) except IndexError: # pas de titre spécifié links = {} if not len(links) == 0: self.wlpprs.append(Wlppr(no, title, links)) nb_left -= 1 # on trie les wlpprs selon leur numéro (même si en principe ils # sont déjà triés) self.wlpprs.sort(lambda x, y : y .no - x.no)