Source code for pynuance.credentials

"""Manage Nuance credentials and cookies"""
import json

import requests
from bs4 import BeautifulSoup

from pynuance.libs.nuance_http import nuance_login, _dev_login, _mix_login
from pynuance.libs.error import PyNuanceError
from pynuance.mix import mix_activated


@nuance_login("dev")
[docs]def get_credentials(username=None, password=None, cookies_file=None): # pylint: disable=W0613 """Get credentials from Nuance dev page""" credentials = {"appId": None, "appKey": None, } # Go to sandbox page to get credentials url = "https://developer.nuance.com/public/index.php" # pylint: disable=E0602 result = requests.get(url, params={"task": "credentials"}, cookies=cookies) # pylint: enable=E0602 if result.status_code != 200: raise PyNuanceError("Can not go to {}".format(url)) # parse html page soup = BeautifulSoup(result.text, 'html.parser') # Get app id appid_label_node = soup.find('label', text="App Id") if appid_label_node is None: raise PyNuanceError("Can not go to {}".format(url)) credentials["appId"] = appid_label_node.parent.text.replace("App Id", "").strip() # Get app key appkey_label_node = soup.find('label', text="App Key") credentials["appKey"] = appkey_label_node.parent.find("code").text.strip() return credentials
[docs]def save_cookies(cookies_file, username=None, password=None): """Login Dev and Mix Nuance web sites and save cookies to the disk""" # login to Nuance dev tmp_cookies = _dev_login(username, password) dev_cookies = tmp_cookies.get_dict() # Saving cookies cookies = {"dev": dev_cookies} with open(cookies_file, "w") as fhc: fhc.write(json.dumps(cookies)) # Check if Nuance Mix is activated if mix_activated(None, None, cookies_file) != 0: # login to Nuance Mix tmp_cookies = _mix_login(username, password) mix_cookies = tmp_cookies.get_dict() # Saving cookies cookies = {"dev": dev_cookies, "mix": mix_cookies} with open(cookies_file, "w") as fhc: fhc.write(json.dumps(cookies))
# TODO if not, logit