This commit is contained in:
Kovid Goyal 2022-05-01 19:14:23 +05:30
commit 2e4de4dabd
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1,39 +1,30 @@
import datetime
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1286242553(BasicNewsRecipe):
title = u'CACM'
oldest_article = 7
class CACM(BasicNewsRecipe):
title = "ACM CACM Magazine"
description = "Published on day 1 of every month."
oldest_article = 30
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']})
auto_cleanup = True
feeds = [
('ACM CACM', 'https://cacm.acm.org/magazine.rss'),
]
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()
"""
Parse out cover URL from cover page.
Example:
From: https://cacm.acm.org/system/assets/0004/2570/April2022.Cover.1000x1338.large.jpg?1647524668&1647524668
Get: https://cacm.acm.org/system/assets/0004/2570/April2022.Cover.1000x1338.jpg
"""
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
soup = self.index_to_soup("https://cacm.acm.org/")
a_img = soup.find("a", class_="menuCover")
img_url = a_img.img["src"]
img_url = img_url.split("?")[0]
img_url = img_url.replace(".large", "")
return img_url