add BrowserToBeContinued exception and handle it
This commit is contained in:
parent
81503a88e8
commit
3a05b29bc3
2 changed files with 14 additions and 1 deletions
|
|
@ -17,6 +17,7 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from weboob.tools.value import Value
|
||||
|
||||
class BrowserIncorrectPassword(Exception):
|
||||
pass
|
||||
|
|
@ -38,6 +39,13 @@ class BrowserUnavailable(Exception):
|
|||
pass
|
||||
|
||||
|
||||
class BrowserToBeContinued(BrowserUnavailable):
|
||||
def __init__(self, *args):
|
||||
self.fields = []
|
||||
for arg in args:
|
||||
self.fields.append(Value(label=arg))
|
||||
|
||||
|
||||
class BrowserHTTPNotFound(BrowserUnavailable):
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ from weboob.capabilities.account import CapAccount, Account, AccountRegisterErro
|
|||
from weboob.core.backendscfg import BackendAlreadyExists
|
||||
from weboob.core.modules import ModuleLoadError
|
||||
from weboob.core.repositories import ModuleInstallError, IProgress
|
||||
from weboob.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError
|
||||
from weboob.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError, BrowserToBeContinued
|
||||
from weboob.tools.value import Value, ValueBool, ValueFloat, ValueInt, ValueBackendPassword
|
||||
from weboob.tools.misc import to_unicode
|
||||
from weboob.tools.ordereddict import OrderedDict
|
||||
|
|
@ -560,6 +560,11 @@ class ConsoleApplication(Application):
|
|||
print(u'FATAL(%s): ' % backend.name + self.BOLD + '/!\ SERVER CERTIFICATE IS INVALID /!\\' + self.NC, file=self.stderr)
|
||||
elif isinstance(error, BrowserForbidden):
|
||||
print(u'Error(%s): %s' % (backend.name, msg or 'Forbidden'), file=self.stderr)
|
||||
elif isinstance(error, BrowserToBeContinued):
|
||||
for field in error.fields:
|
||||
v = self.ask(field)
|
||||
if v:
|
||||
backend.config[field.label].set(v)
|
||||
elif isinstance(error, BrowserUnavailable):
|
||||
msg = unicode(error)
|
||||
if not msg:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue