Skip to main content

No project description provided

Project description

Закладки

ChatLabs Support

ChatLabs Aiogram Support

ChatLabs Aiogram Support - Установка

pip install chatlabs-support[chatlabs_aiogram_support]

Необходимые переменные окружения:

  • BACKEND_SCHEMA
  • BACKEND_HOST
  • BACKEND_PORT

Добавление роутера поддержки в диспетчер:

from aiogram import Dispatcher

from chatlabs_support import chatlabs_aiogram_support as support

dp = Dispatcher()

dp.include_router(support.dialog_router)

Добавление кнопки поддержки в окно:

from aiogram_dialog import Dialog, Window
from aiogram_dialog.widgets.kbd import Start
from aiogram_dialog.widgets.text import Const

from chatlabs_support import chatlabs_aiogram_support as support

Dialog(
    ...,
    Window(
        ...,
        Start(
            text=Const('Поддержка'),
            id='support',
            state=support.main_state,
        ),
        ...,
    ),
    ...,
)

Альтернативный вариант:

from aiogram_dialog import Dialog, Window

from chatlabs_support import chatlabs_aiogram_support as support

Dialog(
    ...,
    Window(
        ...,
        support.SupportStartButton,
        ...,
    ),
    ...,
)

ChatLabs Django Support

ChatLabs Django Support - Установка

pip install chatlabs-support[chatlabs_django_support]

Для привязки тикетов необходимо определить модель пользователя

# myapp/models.py

class MyUser(models.Model):
    telegram_id = models.BigIntegerField(
        primary_key=True,
        unique=True,
    )
    ...

Обратите внимание, что наличие в этой модели поля telegram_id (PK, Unique) - обязательно

# django_project/settings.py

INSTALLED_APPS = [
    'daphne',
    'channels',
    ...,
    'myapp',
    'chatlabs_support.chatlabs_django_support',
]

ASGI_APPLICATION = 'django_project.asgi.application'

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels.layers.InMemoryChannelLayer',
    },
}

SUPPORT_TELEGRAM_USER_MODEL = 'myapp.MyUser'
# django_project/asgi.py

import os

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application

from chatlabs_support.chatlabs_django_support.routing import ws_urlpatterns

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'example_project.settings')

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns)),
})
# django_project/urls.py

urlpatterns = [
    ...,
    path('support/', include('chatlabs_support.chatlabs_django_support.urls')),
]

ChatLabs Django Support - Отправляемые сообщения

Принять тикет в работу:

{
    "type": "ticket.assign",
    "id": 16 // ID тикета
}

Сообщение просмотрено:

{
    "type": "ticket.message.viewed",
    "ticket_id": 16, // ID тикета
    "message_id": 28 // ID сообщения
}

Отправить сообщение:

{
    "type": "ticket.message.new",
    "ticket_id": 16, // ID тикета
    "text": "The is some text" // текст сообщения
}

Тикет открыт (запросить список сообщений):

{
    "type": "ticket.message.list",
    "ticket_id": 16, // ID тикета
}

ChatLabs Django Support - Получаемые сообщения

Создан новый тикет:

{
    "type": "ticket.created",
    "ticket": {
        "id": 21, // ID тикета
        "user": { // Информация о пользователе
            "telegram_id": 4 // telegram_id пользователя
        },
        "support_manager": null, // назначенный менеджер
        "created_at": "2024-12-29T16:10:38.620768Z", // дата создания
        "title": "have a prob" // заголовок тикета
    }
}

Тикет назначен:

{
    "type": "ticket.assigned",
    "id": 16, // ID тикета
    "support_manager": 1, // ID менеджера
}

Сообщение просмотрено:

{
    "type": "ticket.message.viewed",
    "message": {
        "id": 29, // ID сообщения
        "created_at": "2024-12-29T15:21:18.498325Z", // дата создания
        "sender": "user", // отправитель, "user" - пользователь, "supp" - менеджер
        "text": "jhklhjbkbklb", // текст сообщения
        "viewed": true, // сообщение просмотрено
        "ticket": 16 // ID тикета
    }
}

Новое сообщение:

{
    "type": "ticket.message.new",
    "message": {
        "id": 31, // ID сообщения
        "created_at": "2024-12-29T16:08:04.267002Z", // дата создания
        "sender": "supp", // отправитель, "user" - пользователь, "supp" - менеджер
        "text": "some_text", // текст сообщения
        "viewed": true, // сообщение просмотрено
        "ticket": 16 // ID тикета
    }
}

Список сообщений в тикете:

{
    "type": "ticket.message.list",
    "ticket_id": 16, // ID тикета
    "messages": [
        {
            "id": 31, // ID сообщения
            "created_at": "2024-12-29T16:08:04.267002Z", // дата создания
            "sender": "supp", // отправитель, "user" - пользователь, "supp" - менеджер
            "text": "some_text", // текст сообщения
            "viewed": true, // сообщение просмотрено
            "ticket": 16 // ID тикета
        },
        {
            "id": 30, // ID сообщения
            "created_at": "2024-12-29T15:22:01.299698Z", // дата создания
            "sender": "user", // отправитель, "user" - пользователь, "supp" - менеджер
            "text": "jhklhjbkbklb", // текст сообщения
            "viewed": false, // сообщение просмотрено
            "ticket": 16 // ID тикета
        },
    ]
}

Project details


Download files

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

Source Distribution

chatlabs_support-0.1.2.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatlabs_support-0.1.2-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file chatlabs_support-0.1.2.tar.gz.

File metadata

  • Download URL: chatlabs_support-0.1.2.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.11.11 Linux/6.8.0-1017-azure

File hashes

Hashes for chatlabs_support-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b5d393ba7a556b7edb09c755cb479d984c0d6f2cc37a65497f48ae63d0e97276
MD5 ab21dc193fd4c72cc09e68c006b0ad82
BLAKE2b-256 7810508bbf541f0fcf262714ef87e252a965efe1e51bf4e3f6e714cc3795cb8e

See more details on using hashes here.

File details

Details for the file chatlabs_support-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: chatlabs_support-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.11.11 Linux/6.8.0-1017-azure

File hashes

Hashes for chatlabs_support-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0a3e17201bff5e3d2110c569ac082f473721184e27ac214fe797da673377144b
MD5 7661e95941b8aa0a7dbbf131f90ed645
BLAKE2b-256 e42f160f012f08fbe53db106fdf2d608f339ec6735298fec0a9955589c2e2be5

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