Nextcloud Talk Bot: User
The NextcloudUser class represents a Nextcloud user and provides functionality to fetch user data and test user login by interacting with the Nextcloud API.
Initialization
To create an instance of the NextcloudUser class, you will need the following information:
- base_url: The base URL for the Nextcloud server.
- username: The username for the Nextcloud user account.
- password: The password for the Nextcloud user account.
Methods
_send_request(self, endpoint)
This method sends a request to the Nextcloud API and returns the response.
Arguments:
endpoint (str): The API endpoint to send the request to.
Returns:
dict: A dictionary containing the response data if the request is successful, raises an exception otherwise.
test_user_login(self)
This method tests user login by attempting to retrieve user data from Nextcloud using the provided credentials.
Returns:
dict: A dictionary containing the user's data if the login is successful, an error message otherwise.
get_preferred_language(self)
This method gets the user's preferred language from the Nextcloud server.
Returns:
str: The preferred language if the request is successful, raises an exception otherwise.
get_quota(self)
This method gets the user's quota information from the Nextcloud server.
Returns:
dict: A dictionary containing the user's quota information if the request is successful, raises an exception otherwise.
Example
# create an instance of the NextcloudUser class, test user login, get the user's preferred language, and fetch their quota information
from nextcloud_user import NextcloudUser
base_url = "https://your-nextcloud-instance.com"
user = "your-username"
password = "your-password"
nc_user = NextcloudUser(base_url, user, password)
login_response = nc_user.test_user_login()
if "ocs" in login_response and "data" in login_response["ocs"]:
print("Login successful!")
preferred_language = nc_user.get_preferred_language()
print(f"Preferred language: {preferred_language}")
quota = nc_user.get_quota()
print(f"Quota: {quota}")
else:
print("Login failed!")