import datetime from calibre.web.feeds.news import BasicNewsRecipe class AdvancedUserRecipe1286242553(BasicNewsRecipe): title = u'CACM' oldest_article = 7 max_articles_per_feed = 100 needs_subscription = True feeds = [(u'CACM', u'http://cacm.acm.org/magazine.rss')] language = 'en' __author__ = 'jonmisurda' no_stylesheets = True remove_tags = [ dict(name='div', attrs={'class':['FeatureBox', 'ArticleComments', 'SideColumn', \ 'LeftColumn', 'RightColumn', 'SiteSearch', 'MainNavBar','more', 'SubMenu', 'inner']}) ] cover_url_pattern = 'http://cacm.acm.org/magazines/%d/%d' def get_browser(self): br = BasicNewsRecipe.get_browser(self) if self.username is not None and self.password is not None: br.open('https://cacm.acm.org/login') br.select_form(nr=1) br['current_member[user]'] = self.username br['current_member[passwd]'] = self.password br.submit() return br def get_cover_url(self): now = datetime.datetime.now() cover_url = None soup = self.index_to_soup(self.cover_url_pattern % (now.year, now.month)) cover_item = soup.find('img',attrs={'alt':'magazine cover image'}) if cover_item: cover_url = cover_item['src'] return cover_url