replace 'url2id' predicate with 'rssid'
This commit is contained in:
parent
13cde4ed1f
commit
8012afe847
7 changed files with 24 additions and 15 deletions
|
|
@ -21,7 +21,7 @@ from __future__ import with_statement
|
|||
from weboob.capabilities.messages import ICapMessages, Message, Thread
|
||||
from weboob.tools.backend import BaseBackend
|
||||
from weboob.tools.newsfeed import Newsfeed
|
||||
from .tools import url2id
|
||||
from .tools import rssid
|
||||
|
||||
class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
||||
"GenericNewspaperBackend class"
|
||||
|
|
@ -67,7 +67,7 @@ class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
|||
return thread
|
||||
|
||||
def iter_threads(self):
|
||||
for article in Newsfeed(self.RSS_FEED, url2id).iter_entries():
|
||||
for article in Newsfeed(self.RSS_FEED, rssid).iter_entries():
|
||||
thread = Thread(article.id)
|
||||
thread.title = article.title
|
||||
thread.date = article.datetime
|
||||
|
|
|
|||
|
|
@ -32,3 +32,6 @@ def id2url(_id):
|
|||
def url2id(url):
|
||||
"return an id from an url"
|
||||
return url
|
||||
|
||||
def rssid(entry):
|
||||
return url2id(entry.id)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ from __future__ import with_statement
|
|||
from weboob.capabilities.messages import ICapMessages, Message, Thread
|
||||
from weboob.tools.backend import BaseBackend
|
||||
from weboob.tools.newsfeed import Newsfeed
|
||||
from .tools import url2id
|
||||
from .tools import rssid
|
||||
|
||||
class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
||||
"GenericNewspaperBackend class"
|
||||
|
|
@ -67,7 +67,7 @@ class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
|||
return thread
|
||||
|
||||
def iter_threads(self):
|
||||
for article in Newsfeed(self.RSS_FEED, url2id).iter_entries():
|
||||
for article in Newsfeed(self.RSS_FEED, rssid).iter_entries():
|
||||
thread = Thread(article.id)
|
||||
thread.title = article.title
|
||||
thread.date = article.datetime
|
||||
|
|
|
|||
|
|
@ -32,3 +32,6 @@ def id2url(_id):
|
|||
def url2id(url):
|
||||
"return an id from an url"
|
||||
return url
|
||||
|
||||
def rssid(entry):
|
||||
return url2id(entry.id)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ from __future__ import with_statement
|
|||
from weboob.capabilities.messages import ICapMessages, Message, Thread
|
||||
from weboob.tools.backend import BaseBackend
|
||||
from weboob.tools.newsfeed import Newsfeed
|
||||
from .tools import url2id
|
||||
from .tools import rssid
|
||||
|
||||
class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
||||
"GenericNewspaperBackend class"
|
||||
|
|
@ -67,7 +67,7 @@ class GenericNewspaperBackend(BaseBackend, ICapMessages):
|
|||
return thread
|
||||
|
||||
def iter_threads(self):
|
||||
for article in Newsfeed(self.RSS_FEED, url2id).iter_entries():
|
||||
for article in Newsfeed(self.RSS_FEED, rssid).iter_entries():
|
||||
thread = Thread(article.id)
|
||||
thread.title = article.title
|
||||
thread.date = article.datetime
|
||||
|
|
|
|||
|
|
@ -34,3 +34,6 @@ def url2id(url):
|
|||
regexp = re.compile("http://www.20minutes.fr/(\w+)/([0-9]+)/(.*$)")
|
||||
match = regexp.match(url)
|
||||
return '%s.%d.%s' % (match.group(1), int(match.group(2)), match.group(3))
|
||||
|
||||
def rssid(entry):
|
||||
return url2id(entry.id)
|
||||
|
|
|
|||
|
|
@ -23,11 +23,8 @@ __all__ = ['Entry', 'Newsfeed']
|
|||
|
||||
|
||||
class Entry:
|
||||
def __init__(self, entry, url2id=None):
|
||||
if url2id:
|
||||
self.id = url2id(entry.id)
|
||||
else:
|
||||
self.id = entry.id
|
||||
def __init__(self, entry, rssid_func=None):
|
||||
self.id = entry.id
|
||||
|
||||
if entry.has_key("link"):
|
||||
self.link = entry["link"]
|
||||
|
|
@ -63,16 +60,19 @@ class Entry:
|
|||
else:
|
||||
self.content = None
|
||||
|
||||
if rssid_func:
|
||||
self.id = rssid_func(self)
|
||||
|
||||
class Newsfeed:
|
||||
def __init__(self, url, url2id=None):
|
||||
def __init__(self, url, rssid_func=None):
|
||||
self.feed = feedparser.parse(url)
|
||||
self.url2id = url2id
|
||||
self.rssid_func = rssid_func
|
||||
|
||||
def iter_entries(self):
|
||||
for entry in self.feed['entries']:
|
||||
yield Entry(entry, self.url2id)
|
||||
yield Entry(entry, self.rssid_func)
|
||||
|
||||
def get_entry(self, id):
|
||||
for entry in self.feed['entries']:
|
||||
if entry.id == id:
|
||||
return Entry(entry, self.url2id)
|
||||
return Entry(entry, self.rssid_func)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue