Skip to main content

listenclosely

CI:

https://img.shields.io/travis/jlmadurga/listenclosely.svg Coverage Requirements Status

PyPI:

https://img.shields.io/pypi/v/listenclosely.svg

Docs:

Documentation Status

Listenclosely is a django-app that works as a middleman to connect instant messaging clients. Think on a Call Center/Customer Service using using instant messaging… exactly what it does.

  • It is simple, connects Askers with online Agents until the Chat is considered as terminated and the Agent is released to attend other Asker chats.

  • It is flexible, so you can define your own strategies to assign Agents to Askers and your own messaging backend services.

Messaging Services integrated:

Documentation

The full documentation is at https://listenclosely.readthedocs.org.

https://raw.github.com/jlmadurga/listenclosely/master/docs/imgs/diagram.png
  • Asker1 is chatting with the Busy Agent

  • Asker2 try to chat but no free Agent was free so is waiting with a Pending chat to be attended by an agent

  • Asker3 is opening a chat and Online Agent will be assigned to the chat

Quickstart

Install listenclosely:

pip install listenclosely

Then use it in a project:

import listenclosely

Add it to django apps and migrate:

INSTALLED_APPS = [
        ...
'listenclosely',
...
]
python manage.py migrate

Select, install and configure service backend

LISTENCLOSELY_MESSAGE_SERVICE_BACKEND = "listenclosely_telegram.service.TelegramMessageServiceBackend"

Define your agent strategy or define your own:

LISTENCLOSELY_AGENT_STRATEGY = 'listenclosely.strategies.first_free.FirstFreeAgentStrategy'

Add step to your celery app:

from listenclosely.celery import ListenCloselyAppStep
app.steps['worker'].add(ListenCloselyAppStep)

Start your celery app usign gevent:

celery --app=demo_app.celery:app worker -P gevent

Call listen task or define a celery scheduler to execute:

from listenclosely import tasks
tasks.listen.delay()

Features

  • Connects Askers and Agents in chats to establish a Chat

  • Strategies to find Agent to attend new Asker chat. Define your own strategies

  • Messaging Service Backend: Define your own messaging service backend implementations.

  • Cron tasks for attending pending chats and to terminate obsolete chats to release Agents

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements/test.txt
(myenv) $ make test

History

0.1.0 (2016-01-14)

  • First release on PyPI.

Metadata

Release files for listenclosely 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for listenclosely 0.1.2
File Size Uploaded Provenance
listenclosely-0.1.2.tar.gz 12.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for listenclosely 0.1.2
File Interpreter ABI Platform
listenclosely-0.1.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 27.3 kB

Release files / listenclosely-0.1.2.tar.gz

Download URL listenclosely-0.1.2.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8e35fdd08f40e1e1ec708585887259e982a4afe219dbedc7035fdaffa9cfbb83
BLAKE2b-256 checksum
How to use checksums
1391e5d05f78a2493310462c33affab9e80d9beef84bf3d6ff0331d88e30c5ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / listenclosely-0.1.2-py2.py3-none-any.whl

Download URL listenclosely-0.1.2-py2.py3-none-any.whl
Size 15.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
ad8834ebaf32a2f7cf4424f173a49e1a6286c3a54a4ef930a70d802be1425841
BLAKE2b-256 checksum
How to use checksums
c6bb5c1e2584a483c5447c9612a20b9f112339718a40f349aa5afb859bb04f5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for listenclosely 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page