# -*- coding: utf-8 -*- # Copyright(C) 2011 Laurent Bachelier # # This file is part of weboob. # # weboob is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # weboob 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . from weboob.tools.browser import BaseBrowser from .pages import PastePage, PostPage __all__ = ['PastebinBrowser'] class PastebinBrowser(BaseBrowser): DOMAIN = 'pastebin.com' ENCODING = 'UTF-8' PAGES = {'http://%s/(?P.+)' % DOMAIN: PastePage, 'http://%s/' % DOMAIN: PostPage} def fill_paste(self, paste): """ Get as much as information possible from the paste page """ self.location(paste.page_url) return self.page.fill_paste(paste) def get_contents(self, _id): """ Get the contents from the raw URL This is the fastest and safest method if you only want the content. Returns unicode. """ return self.readurl('http://%s/raw.php?i=%s' % (self.DOMAIN, _id)).decode(self.ENCODING) def post_paste(self, paste): self.home() self.page.post(paste) paste.id = self.page.get_id() self.fill_paste(paste)