from calibre.web.feeds.news import BasicNewsRecipe class Bash_org_pl(BasicNewsRecipe): title = u'Bash.org.pl' __author__ = 'fenuks' description = 'Bash.org.pl - zabawne cytaty z IRC' category = 'funny quotations, humour' language = 'pl' cover_url = u'http://userlogos.org/files/logos/dzikiosiol/none_0.png' max_articles_per_feed = 50 no_stylesheets = True keep_only_tags = [dict(name='a', attrs={'class': 'qid click'}), dict(name='div', attrs={'class': 'quote post-content post-body'})] def latest_articles(self): articles = [] soup = self.index_to_soup(u'http://bash.org.pl/latest/') tags = soup.findAll('a', attrs={'class': 'qid click'}) for a in tags: title = a.string url = 'http://bash.org.pl' + a['href'] articles.append({'title': title, 'url': url, 'date': '', 'description': '' }) return articles def random_articles(self): articles = [] for i in range(self.max_articles_per_feed): soup = self.index_to_soup(u'http://bash.org.pl/random/') url = soup.find('a', attrs={'class': 'qid click'}) title = '' url = 'http://bash.org.pl/random/' articles.append({'title': title, 'url': url, 'date': '', 'description': '' }) return articles def populate_article_metadata(self, article, soup, first): article.title = soup.find(attrs={'class': 'qid click'}).string def parse_index(self): feeds = [] feeds.append((u"Najnowsze", self.latest_articles())) feeds.append((u"Losowe", self.random_articles())) return feeds