# -*- coding: utf-8 -*- """ Copyright(C) 2010 Romain Bignon This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """ from cStringIO import StringIO from weboob.tools.browser import Browser from .pages.index import IndexPage, LoginPage from .pages.news import ContentPage from .tools import id2url from weboob.tools.parser import StandardParser # Parser class DLFParser(StandardParser): def parse(self, data, encoding): s = data.read() s = s.replace('<<', '<') data = StringIO(s) return StandardParser.parse(self, data, encoding) # Browser class DLFP(Browser): DOMAIN = 'linuxfr.org' PROTOCOL = 'https' PAGES = {'https://linuxfr.org/': IndexPage, 'https://linuxfr.org/pub/': IndexPage, 'https://linuxfr.org/my/': IndexPage, 'https://linuxfr.org/login.html': LoginPage, 'https://linuxfr.org/.*/\d+.html': ContentPage } def __init__(self, *args, **kwargs): kwargs['parser'] = DLFParser Browser.__init__(self, *args, **kwargs) def home(self): return self.location('https://linuxfr.org') def get_content(self, _id): self.location(id2url(_id)) return self.page.get_article() def login(self): self.location('/login.html', 'login=%s&passwd=%s&isauto=1' % (self.username, self.password)) def is_logged(self): return (self.page and self.page.is_logged())