enhance inspect, use browser.location then browser.open as fallback
This commit is contained in:
parent
f41d5157c1
commit
bf5741759a
2 changed files with 46 additions and 10 deletions
|
|
@ -1053,16 +1053,23 @@ class ReplApplication(Cmd, BaseApplication):
|
|||
def do_inspect(self, line):
|
||||
"""
|
||||
inspect BACKEND_NAME
|
||||
|
||||
Display the HTML string of the current page of the specified backend's browser.
|
||||
|
||||
If webkit_mechanize_browser Python module is installed, HTML is displayed in a WebKit GUI.
|
||||
"""
|
||||
backend_name = line.strip()
|
||||
if not backend_name:
|
||||
print 'Please specify a backend name.'
|
||||
return
|
||||
backends = set(backend for backend in self.enabled_backends if backend.name == backend_name)
|
||||
if not backends:
|
||||
print 'No backend found for "%s"' % backend_name
|
||||
return
|
||||
backend = backends.pop()
|
||||
if len(self.enabled_backends) == 1:
|
||||
backend = list(self.enabled_backends)[0]
|
||||
else:
|
||||
backend_name = line.strip()
|
||||
if not backend_name:
|
||||
print 'Please specify a backend name.'
|
||||
return
|
||||
backends = set(backend for backend in self.enabled_backends if backend.name == backend_name)
|
||||
if not backends:
|
||||
print 'No backend found for "%s"' % backend_name
|
||||
return
|
||||
backend = backends.pop()
|
||||
if not hasattr(backend, '_browser'):
|
||||
print 'No browser created for backend "%s" yet. Please invoke a command before.' % backend.name
|
||||
return
|
||||
|
|
@ -1070,7 +1077,7 @@ class ReplApplication(Cmd, BaseApplication):
|
|||
data = browser.parser.tostring(browser.page.document)
|
||||
try:
|
||||
from webkit_mechanize_browser.browser import Browser
|
||||
from webkit_mechanize_browser.page import Page
|
||||
from weboob.tools.inspect import Page
|
||||
except ImportError:
|
||||
print data
|
||||
else:
|
||||
|
|
|
|||
29
weboob/tools/inspect.py
Normal file
29
weboob/tools/inspect.py
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright(C) 2010 Christophe Benz
|
||||
#
|
||||
# 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.
|
||||
|
||||
|
||||
import webkit_mechanize_browser.page
|
||||
|
||||
|
||||
class Page(webkit_mechanize_browser.page.Page):
|
||||
def load_uri(self, uri):
|
||||
self.core.location(uri)
|
||||
if self.core.page:
|
||||
data = self.core.parser.tostring(self.core.page.document)
|
||||
self.view.load_html_string(data, uri)
|
||||
else:
|
||||
webkit_mechanize_browser.page.Page.load_uri(self, uri)
|
||||
Loading…
Add table
Add a link
Reference in a new issue