Get comments only in case of rss-comments changes
This commit is contained in:
parent
1e4851296c
commit
d12877fe55
3 changed files with 21 additions and 2 deletions
|
|
@ -86,6 +86,7 @@ class DLFPBackend(BaseBackend, ICapMessages, ICapMessagesPost, ICapContent):
|
|||
continue
|
||||
thread = Thread(article.id)
|
||||
thread.title = article.title
|
||||
thread._rsscomment = article.rsscomment
|
||||
if article.datetime:
|
||||
thread.date = article.datetime
|
||||
yield thread
|
||||
|
|
@ -97,6 +98,12 @@ class DLFPBackend(BaseBackend, ICapMessages, ICapMessagesPost, ICapContent):
|
|||
else:
|
||||
thread = None
|
||||
|
||||
oldhash = self.storage.get('hash', id, default="")
|
||||
newhash = self.browser.get_hash(thread._rsscomment)
|
||||
if not getseen and oldhash == newhash:
|
||||
return None
|
||||
self.storage.set('hash', id, newhash)
|
||||
self.storage.save()
|
||||
with self.browser:
|
||||
content = self.browser.get_content(id)
|
||||
|
||||
|
|
@ -138,7 +145,7 @@ class DLFPBackend(BaseBackend, ICapMessages, ICapMessagesPost, ICapContent):
|
|||
flags = Message.IS_HTML
|
||||
if not com.id in self.storage.get('seen', parent.thread.id, 'comments', default=[]):
|
||||
flags |= Message.IS_UNREAD
|
||||
|
||||
|
||||
if getseen or flags & Message.IS_UNREAD:
|
||||
com.parse()
|
||||
message = Message(thread=parent.thread,
|
||||
|
|
|
|||
|
|
@ -20,12 +20,14 @@
|
|||
|
||||
import urllib
|
||||
import re
|
||||
import hashlib
|
||||
import lxml
|
||||
|
||||
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound, BrowserHTTPError, BrowserIncorrectPassword, BrokenPageError
|
||||
from weboob.capabilities.messages import CantSendMessage
|
||||
|
||||
from .pages.index import IndexPage, LoginPage
|
||||
from .pages.news import ContentPage, NewCommentPage, NodePage, CommentPage, NewTagPage
|
||||
from .pages.news import ContentPage, NewCommentPage, NodePage, CommentPage, NewTagPage, RSSComment
|
||||
from .pages.board import BoardIndexPage
|
||||
from .pages.wiki import WikiEditPage
|
||||
from .tools import id2url, url2id
|
||||
|
|
@ -50,6 +52,7 @@ class DLFP(BaseBrowser):
|
|||
'https?://[^/]*linuxfr\.org/nodes/(\d+)/comments': NodePage,
|
||||
'https?://[^/]*linuxfr\.org/nodes/(\d+)/tags/nouveau': NewTagPage,
|
||||
'https?://[^/]*linuxfr\.org/board/index.xml': BoardIndexPage,
|
||||
'https?://[^/]*linuxfr\.org/nodes/(\d+)/comments.atom': RSSComment,
|
||||
}
|
||||
|
||||
last_board_msg_id = None
|
||||
|
|
@ -128,6 +131,11 @@ class DLFP(BaseBrowser):
|
|||
elif self.is_on_page(ContentPage):
|
||||
return self.page.get_article().body
|
||||
|
||||
def get_hash(self, url):
|
||||
self.location(url)
|
||||
myhash = hashlib.md5(lxml.etree.tostring(self.page.document)).hexdigest()
|
||||
return myhash
|
||||
|
||||
def get_content(self, _id):
|
||||
url, _id = self.parse_id(_id)
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@ from ..tools import url2id
|
|||
|
||||
from .index import DLFPPage
|
||||
|
||||
class RSSComment(DLFPPage):
|
||||
def on_loaded(self):
|
||||
pass
|
||||
|
||||
class Content(object):
|
||||
TAGGABLE = False
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue