sheetcloud.user

 1import webbrowser
 2import logging
 3logger = logging.getLogger('SHEETCLOUD USER')
 4logging.basicConfig(format='\x1b[38;5;224m %(levelname)8s \x1b[0m | \x1b[38;5;39m %(name)s \x1b[0m | %(message)s', level=logging.DEBUG)
 5
 6
 7from typing import *
 8
 9from sheetcloud.conn import service, ENV_SHEETCLOUD_USERNAME, ENV_SHEETCLOUD_LICENSE
10
11
12
13def request_recovery_token(email: str=None) -> None:
14    if email is None:
15        email = ENV_SHEETCLOUD_USERNAME
16    logger.info(f'Requesting password recovery token for account {email}.')
17    _ = service('/users/password/recovery', params={'email': email}, method='post')
18    logging.info('Please check your sheetcloud dashboard spreadsheet. You\'ll find the recovery token on the \'Settings\ worksheet.')
19
20
21def password_reset(recovery_token: str, new_password: str) -> None:
22    _ = service('/users/password/reset', params={'recovery_token': recovery_token, 'new_password': new_password}, method='post')
23    logging.info('Password reset attempted. Please change your environment variables accordingly. Please note that due to security reasons the response does not contain information about the success of the attempt.')
24
25
26def change_password(new_password: str) -> None:
27    response = service('/users/password/change', params={'new_password': new_password}, method='post')
28    if 'password_updated' in response:
29        logging.info(f'Password updated {response["password_updated"]}.')
30
31
32def activate_license_key(key: str) -> None:
33    response = service('/users/license/update', params={'key': key}, method='post')
34    if 'is_valid' in response:
35        logging.info(f'License is valid: {response["is_valid"]}.')
36
37
38def open_sheetcloud_website() -> None:
39    webbrowser.open(f'https://sheetcloud.org')
40
41
42if ENV_SHEETCLOUD_LICENSE is not None:
43    logger.info(f'License found. Attempting to verify. Note: This only has to be done once.')
44    activate_license_key(ENV_SHEETCLOUD_LICENSE)
45
46
47if __name__ == "__main__":
48    print('Test user connection...')
49    # open_sheetcloud_website()
50    # password_reset('jkdhsfjklasjhjkdfh', 'abb')
51    activate_license_key('dskljklasfjd')
52
53    print('Done')
logger = <Logger SHEETCLOUD USER (DEBUG)>
def request_recovery_token(email: str = None) -> None:
14def request_recovery_token(email: str=None) -> None:
15    if email is None:
16        email = ENV_SHEETCLOUD_USERNAME
17    logger.info(f'Requesting password recovery token for account {email}.')
18    _ = service('/users/password/recovery', params={'email': email}, method='post')
19    logging.info('Please check your sheetcloud dashboard spreadsheet. You\'ll find the recovery token on the \'Settings\ worksheet.')
def password_reset(recovery_token: str, new_password: str) -> None:
22def password_reset(recovery_token: str, new_password: str) -> None:
23    _ = service('/users/password/reset', params={'recovery_token': recovery_token, 'new_password': new_password}, method='post')
24    logging.info('Password reset attempted. Please change your environment variables accordingly. Please note that due to security reasons the response does not contain information about the success of the attempt.')
def change_password(new_password: str) -> None:
27def change_password(new_password: str) -> None:
28    response = service('/users/password/change', params={'new_password': new_password}, method='post')
29    if 'password_updated' in response:
30        logging.info(f'Password updated {response["password_updated"]}.')
def activate_license_key(key: str) -> None:
33def activate_license_key(key: str) -> None:
34    response = service('/users/license/update', params={'key': key}, method='post')
35    if 'is_valid' in response:
36        logging.info(f'License is valid: {response["is_valid"]}.')
def open_sheetcloud_website() -> None:
39def open_sheetcloud_website() -> None:
40    webbrowser.open(f'https://sheetcloud.org')