mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Update lwn_free.recipe
Skips paid articles and cleanly pulls only past week's free articles.
This commit is contained in:
parent
c89442e6a5
commit
c0a0765b11
@ -8,11 +8,41 @@ class LWNFree(BasicNewsRecipe):
|
|||||||
title = "LWN Linux Weekly News (Free)"
|
title = "LWN Linux Weekly News (Free)"
|
||||||
language = 'en'
|
language = 'en'
|
||||||
__author__ = 'yodha8'
|
__author__ = 'yodha8'
|
||||||
description = "LWN is published every Thursday. Recipe skips current week's articles (subscriber-only) and pulls free articles from previous week."
|
description = "LWN is published every Thursday. This recipe skips current week's articles (subscriber-only) and pulls free articles from previous week."
|
||||||
oldest_article = 14 # So we can grab previous week articles.
|
oldest_article = 28 # So we can grab previous week articles.
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
auto_cleanup = True
|
auto_cleanup = True
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
('LWN Articles', 'https://lwn.net/headlines/Features'),
|
('LWN Articles', 'https://lwn.net/headlines/Features'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def parse_feeds(self):
|
||||||
|
"""Remove paid articles and articles older than a week."""
|
||||||
|
|
||||||
|
prev_feeds = super().parse_feeds()
|
||||||
|
|
||||||
|
remove_articles = []
|
||||||
|
weekly_count = 0
|
||||||
|
|
||||||
|
for article in prev_feeds[0]:
|
||||||
|
|
||||||
|
# Paid article
|
||||||
|
if "[$]" in article.title:
|
||||||
|
remove_articles.append(article)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Count how many free weekly edition we passed
|
||||||
|
if "Weekly Edition" in article.title:
|
||||||
|
weekly_count += 1
|
||||||
|
|
||||||
|
# Remove all articles starting from 2nd free weekly edition
|
||||||
|
if weekly_count > 1:
|
||||||
|
remove_articles.append(article)
|
||||||
|
|
||||||
|
# Remove everything but prev week's free articles
|
||||||
|
for pa in remove_articles:
|
||||||
|
prev_feeds[0].remove_article(pa)
|
||||||
|
|
||||||
|
print(prev_feeds)
|
||||||
|
return prev_feeds
|
||||||
|
Loading…
x
Reference in New Issue
Block a user