Skip to main content

Useful tools and utilities to assist in managing a Khoros Community (formerly Lithium) environment.

Project description

Khoros Community Python Library

The khoros library acts as a Python software development kit (SDK) to administer and manage Khoros Community (formerly Lithium) online community platforms.

Latest Stable Release PyPI
Build Status GitHub Workflow Status
Supported Versions PyPI - Python Version
Documentation Documentation Status
License License (GitHub)
Issues GitHub open issues
GitHub closed issues
Pull Requests GitHub pull open requests
GitHub closed pull requests

Installation

The package can be installed via pip using the syntax below.

pip install khoros

You may also clone the repository and install from source using below.

git clone git://github.com/jeffshurtliff/khoros.git
cd khoros/
python setup.py install

Change Log

The change log can be found in the documentation.

Usage

This section provides basic usage instructions for the package.

Importing the package

Rather than importing the base package, it is recommended that you import the primary Khoros class using the syntax below.

from khoros import Khoros

This recommendation is because the best practice is to use the name khoros when naming your object instance.

Initializing a Khoros object instance

The primary Khoros object serves many purposes, the most important being to establish a connection to the Khoros Community environment with which you intend to interact. As such, when initializing an instance of the Khoros object, you will need to pass it the community URL, the credentials it will use and related information so that the connection can be established.

The Khoros object can be initiated in two different ways:

  • Passing the information directly into the object
  • Leveraging a "helper" configuration file

Passing the information directly into the object

The community and connection information can be passed directly into the Khoros object when initializing it, as demonstrated in the example below.

khoros = Khoros(
    community_url='https://community.example.com', 
    session_auth={'username': USERNAME, 'password': PASSWD}
)

Alternatively, configuration settings can be passed at once using the options argument in the Khoros class, as shown below.

my_settings = {
    'community_url': 'https://community.example.com',
    'community_name': 'mycommunity',
    'auth_type': 'session_auth',
    'session_auth': {
        'username': USERNAME,
        'password': PASSWD
    }
}

Leveraging a "helper" configuration file

As an alternative to passing the connection information to the Khoros class in the ways demonstrated above, a "helper" configuration file in yaml or json format can be leveraged instead and passed to the Khoros class when initializing the object.

This is an example of how the configuration file would be written:

# Helper configuration file for the khoros package

# Define how to obtain the connection information
connection:
    community_url: https://community.example.com/
    tenant_id: example12345

    # Define the default authentication type to use
    default_auth_type: session_auth

    # Define the OAuth 2.0 credentials
    oauth2:
        client_id: FLFeNYob7XXXXXXXXXXXXXXXXXXXXZcWQEQHR5T6bo=
        client_secret: 1n0AIXXXXXXXXXXXXXXXXXXXX1udOtNaYnfJCeOszYw=
        redirect_url: http://redirect.community.example.com/getAccessToken

    # Define the session key authorization information
    session_auth:
        username: serviceaccount
        password: Ch@ng3ME!

# Define the preferred format for API responses
prefer_json: yes

The file can then be referenced using the helper argument when initializing the object instance, as shown below.

HELPER_FILE = "/path/to/helper.yml"
khoros = Khoros(helper=HELPER_FILE)

Interacting with the Community APIs

Once the Khoros object instance has been initialized, it can be leveraged to interact with a Khoros Community environment in many ways, which will be fully documented shortly in the documentation. The example below demonstrates how a search can be performed using LiQL to return information from the environment in JSON format.

response_json = khoros.search(
    select_fields=('id', 'view_href'),
    from_source='messages',
    where_filter=('style', 'tkb'),
    order_by='last_post_time',
    limit=5
)

Documentation

The documentation is located here: https://khoros.readthedocs.io/en/latest/

License

MIT License

Reporting Issues

Issues can be reported within the GitHub repository.

Disclaimer

This package is considered unofficial and is in no way endorsed or supported by Khoros, LLC.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

khoros-2.2.0.tar.gz (51.7 kB view details)

Uploaded Source

File details

Details for the file khoros-2.2.0.tar.gz.

File metadata

  • Download URL: khoros-2.2.0.tar.gz
  • Upload date:
  • Size: 51.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for khoros-2.2.0.tar.gz
Algorithm Hash digest
SHA256 efeadb335cf4ee871a2c64f25573ef6345a04cbd08a72174193faaff69065c0c
MD5 de24b7906ba5b717a5bf2521feef97b9
BLAKE2b-256 5b9b9f2718fcbeefa3546ea0f223ec06226d4e875950fd0aa8e7623bf52c8e13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page