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):
|
def do_inspect(self, line):
|
||||||
"""
|
"""
|
||||||
inspect BACKEND_NAME
|
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 len(self.enabled_backends) == 1:
|
||||||
if not backend_name:
|
backend = list(self.enabled_backends)[0]
|
||||||
print 'Please specify a backend name.'
|
else:
|
||||||
return
|
backend_name = line.strip()
|
||||||
backends = set(backend for backend in self.enabled_backends if backend.name == backend_name)
|
if not backend_name:
|
||||||
if not backends:
|
print 'Please specify a backend name.'
|
||||||
print 'No backend found for "%s"' % backend_name
|
return
|
||||||
return
|
backends = set(backend for backend in self.enabled_backends if backend.name == backend_name)
|
||||||
backend = backends.pop()
|
if not backends:
|
||||||
|
print 'No backend found for "%s"' % backend_name
|
||||||
|
return
|
||||||
|
backend = backends.pop()
|
||||||
if not hasattr(backend, '_browser'):
|
if not hasattr(backend, '_browser'):
|
||||||
print 'No browser created for backend "%s" yet. Please invoke a command before.' % backend.name
|
print 'No browser created for backend "%s" yet. Please invoke a command before.' % backend.name
|
||||||
return
|
return
|
||||||
|
|
@ -1070,7 +1077,7 @@ class ReplApplication(Cmd, BaseApplication):
|
||||||
data = browser.parser.tostring(browser.page.document)
|
data = browser.parser.tostring(browser.page.document)
|
||||||
try:
|
try:
|
||||||
from webkit_mechanize_browser.browser import Browser
|
from webkit_mechanize_browser.browser import Browser
|
||||||
from webkit_mechanize_browser.page import Page
|
from weboob.tools.inspect import Page
|
||||||
except ImportError:
|
except ImportError:
|
||||||
print data
|
print data
|
||||||
else:
|
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