sphinx-quickstart on Thu Feb 4 20:43:19 2021. You can adapt this file completely to your liking, but it should at least contain the root toctree directive.

Welcome to Webinar Streamkit’s documentation!

Документация пользователя

Регистрация

Нажмите на главном экране на кнопку “Регистрация” справа сверху. Далее заполните поля: “Имя пользователя”, “Адрес электронной почты”, “Пароль” и “Подтверждение пароля”. При успешной регистрации появится сообщение об успешной авторизации

Авторизация

Нажмите на главном экране на кнопку “Войти” справа сверху. Далее заполните поля: “Логин” и “Пароль”. При успешной авторизации появится сообщение об успешной авторизации

Авторизация аккаунта вебинара

Нажмите на главном экране на кнопку “Профиль” справа сверху. Далее нажмите на кнопку “Данные Webinar”. Там заполните данные аккаунта Webinar. После успешного ввода данных аккаунта Webinar появится сообщение об успешном входе в аккаунт, и появится сообщение “Аккаунт авторизован”, распологающееся под формой ввода данных для авторизации на Webinar

Просмотр списка вебинаров

Нажмите на главном экране на кнопку “Расписание вебинаров” слева сверху. Откроется страница со списком вебинаров, которые были созданы пользоватлем, данные которого были указаны в настройках профиля. У каждого вебинара есть информация о нём. Так будет легче найти нужный вебинар

Warning

Будет работать только в том случае, если выполнен вход в аккаунт Webinar через наш сервис. Если появляется сообщение “Webinar: ERROR_WRONG_CREDENTIALS”, то в настройках профиля не был указан аккаунт Webinar

Работа с вебинаром

На странице вебинаров выберите вебинар и нажмите на кнопку “Перейти”. Откроется страница вебинара. На ней будет две кнопки: “Панель управления” и “Перейти к вебинару”. При нажатии на кнопку “Перейти к вебинару” открывается вебинар в новой вкладке. При нажатии на кнопку “Панель управления” открывается панель управления вебинаром в новом окне.

Warning

Будет работать только в том случае, если выполнен вход в аккаунт Webinar через наш сервис.

Панель управления вебинаром

На панели управления есть несколько инструментов:

  • Запустить (Запустить вебинар. Исчезает после начала вебинара)

  • Завершить (Завершить вебинар. Появляется после начала вебинара)

  • Включить премодерацию (Включает модерацию сообщений)

  • Сообщения (Здесь расположен чат. Здесь находятся только одобренные сообщения)

  • Модерация (Здесь находятся только сообщения, ожидающие подтверждения)

  • Размер шрифта (Ползунок, меняющий размер шрифта виджета)

Note

Если вы хотите включить премодерацию, то при нажати на кнопку “Включить премодерацию” должно пройти некоторое время, чтобы изменения успели войти в силу. Эта операция занимает 5-10 секунд

Warning

Будет работать только в том случае, если есть как минимум один вебинар на аккаунте и выполнен вход в аккаунт Webinar через наш сервис.

Сообщения

На страницу с сообщениями будут выводиться сообщения, одобренные модератором. Сообщения можно и удалить, нажав на кнопку с красным крестом в верхнем правом углу в блоке с сообщением.

Warning

Будет работать только в том случае, если есть как минимум один вебинар на аккаунте и выполнен вход в аккаунт Webinar через наш сервис.

Модерация

На страницу модерации будут выводиться сообщения, еще не одобренные модератором. Сообщения можно удалить, нажав на кнопку с красным крестом в верхнем правом углу в блоке с сообщением. Также сообщения можно одобрить. Для этого нажмите на кнопку с зеленой галочкой.

Warning

Будет работать только в том случае, если есть как минимум один вебинар на аккаунте и выполнен вход в аккаунт Webinar через наш сервис.

Документация разработчика

Getting Started

Технологический стек:

  • Python 3

  • Django 3

  • Redis 6

Quickstart

Запускаем команды в таком порядке

sudo apt install make
pip install --upgrade pip
pip install -r requirements.txt
docker run -p 6379:6379 -d redis
./manage.py migrate
./manage.py shell -c "from django.contrib.auth import get_user_model; get_user_model().objects.create_superuser('vasya', '1@abc.net', 'promprog')"
./manage.py runserver

“./” можно заменить на “python”

main/models.py
class main.models.DiscordHistory(*args, **kwargs)[source]

Модель, содержащая информацию для discord-бота

Parameters
  • event_id – ID вебинара

  • message_ids – Список ID отправленных ботом сообщений

  • webhooks – Список webhook для трансляции в discord

  • active – Флаг, указывающий, транслировать ли сообщения или нет

exception DoesNotExist
exception MultipleObjectsReturned
update_settings(*args, **kwargs)[source]

Обновление настроек

class main.models.User(*args, **kwargs)[source]

Модель пользователя

Parameters
  • webinar_session – ForeignKey на модель сессии

  • fontsize – Размер шрифта виджетов

exception DoesNotExist
exception MultipleObjectsReturned
save(*args, **kwargs)[source]

Сохранение пользователя

Return type

None

update_fontsize(*args, **kwargs)[source]

Обновление размера шрифта у пользователя

Return type

None

class main.models.WebinarSession(id, user_id, email, password, cookie, last_login)[source]
exception DoesNotExist
exception MultipleObjectsReturned
accept_message(session_id, **kwargs)[source]

Принятие сообщений

delete_message(session_id, **kwargs)[source]

Удаление сообщений

get_chat(session_id)[source]

Получение чата

Returns

Чат из вебинара

Получение Cookie пользователя :type cookie_name: str :param cookie_name: :rtype: Cookie :return: Cookie

get_event(event_id)[source]

Получение вебинара (события)

Parameters

event_id (int) – id события

Returns

Объект события

get_schedule()[source]

Получение расписания вебинаров

Returns

Расписание вебинаров

get_user()[source]

Получение пользователя

Returns

Объект пользователя webinar

is_correct_data(check_email, check_password)[source]

Проверка на наличие аккаунта на webinar

Parameters
  • check_email (str) – email пользователя

  • check_password (str) – пароль пользователя

Return type

bool

Returns

Существует пользователь или нет

is_login_required()[source]

Проверка на необходимость повторного входа в аккаунт webinar

Return type

bool

login()[source]

Вход в аккаунт webinar через наш сервис

Return type

Optional[Error]

logout()[source]

Удаление данных для авторизации на Webinar

Return type

None

start(session_id, **kwargs)[source]

Начать вебинар

Parameters

session_id (int) – id сессии

stop(session_id, **kwargs)[source]

Закончить вебинар

Parameters

session_id (int) – id сессии

update_settings(session_id, **kwargs)[source]

Обновление настроек

main/views.py
class main.views.AwaitingMessagesView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.ChatView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.ControlView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.EventView(**kwargs)[source]

View-класс вебинара

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.ExtendedLoginView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

post(request, *args, **kwargs)[source]

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

Return type

HttpResponse

class main.views.ExtendedRegistrationView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

post(request, *args, **kwargs)[source]

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

Return type

HttpResponse

class main.views.IndexView(**kwargs)[source]

View-класс главной страницы

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

get(request)[source]

View-функция главной страницы (GET)

Parameters

request (HttpRequest) – Детали запроса

Returns

Объект ответа сервера

Return type

class

django.http.HttpResponse

class main.views.ProfileView(**kwargs)[source]

View-класс профиля

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.ScheduleView(**kwargs)[source]

View-класс списка вебинаров

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.WebinarCredentialsDeleteView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

class main.views.WebinarCredentialsUpdateView(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

set_messages(request)[source]

Метод для добавления сообщений при авторизации на webinar через наш сервис :type request: HttpRequest :param request: :return:

main/forms.py
class main.forms.ExtendedRegistrationForm(*args, **kwargs)[source]
class main.forms.WebhooksForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]
class main.forms.WebinarCredentialsForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
main/webinar.py
class main.webinar.BaseRouter(value)[source]

An enumeration.

class main.webinar.Converter(object, attrs, data)[source]

класс-конвертер

конструктор класса

Parameters
  • object (Any) – объект

  • data (Dict[str, Any]) – данные

  • attrs (List[str]) – аттрибуты, аргументы

__init__(object, attrs, data)[source]

конструктор класса

Parameters
  • object (Any) – объект

  • data (Dict[str, Any]) – данные

  • attrs (List[str]) – аттрибуты, аргументы

convert()[source]

сама функция конвертирования

Return type

Any

class main.webinar.EventRouter(value)[source]

An enumeration.

class main.webinar.MessageRouter(value)[source]

An enumeration.

class main.webinar.UserRouter(value)[source]

An enumeration.

class main.webinar.Webinar[source]

класс вебинара

class Chat(messages, settings)[source]

класс чата

Конструктор класса чата

__init__(messages, settings)[source]

Конструктор класса чата

class Event(user_id, data)[source]

класс события вединара

Parameters

attrs – аттрибуты события вединара

Конструктор класса события вединара

__init__(user_id, data)[source]

Конструктор класса события вединара

class Message(data)[source]

класс сообщения

Parameters

attrs – аттрибуты сообщения

Конструктор класса сообщения

__init__(data)[source]

Конструктор класса сообщения

serialize()[source]

сериализация сообщения

Return type

Dict

class Organization(data)[source]

класс организации

Parameters

attrs – аттрибуты организации

Конструктор класса организации

__init__(data)[source]

Конструктор класса организации

class User(data={}, is_authenticated=False)[source]

класс пользователя

Parameters

attrs – аттрибуты пользователя

конструктор класса

Parameters
  • is_authenticated (bool) – флаг аутентификации пользователя

  • memberships – членства пользователя (принадлежность организациям/группам)

__init__(data={}, is_authenticated=False)[source]

конструктор класса

Parameters
  • is_authenticated (bool) – флаг аутентификации пользователя

  • memberships – членства пользователя (принадлежность организациям/группам)

main/consumers.py

Consumers для работы с сокетами

class main.consumers.AwaitingMessagesConsumer(*args, **kwargs)[source]

Конструктор класса

__init__(*args, **kwargs)[source]

Конструктор класса

async connect()[source]

Метод, срабатывающий после подключения по websockets

Return type

None

class main.consumers.BaseConsumer(*args, **kwargs)[source]
async connect()[source]

Метод, срабатывающий после подключения по websockets

Return type

None

async disconnect(close_code)[source]

Called when a WebSocket connection is closed.

Return type

None

async receive(text_data)[source]

Метод принятия сообщений по websockets

Return type

None

class main.consumers.ChatConsumer(*args, **kwargs)[source]

Конструктор класса

__init__(*args, **kwargs)[source]

Конструктор класса

async connect()[source]

Метод, срабатывающий после подключения по websockets

Return type

None

class main.consumers.ChatMode(value)[source]

An enumeration.

class main.consumers.ControlConsumer(*args, **kwargs)[source]

Конструктор класса

__init__(*args, **kwargs)[source]

Конструктор класса

async connect()[source]

Метод, срабатывающий после подключения по websockets

Return type

None

async disconnect(close_code)[source]

Called when a WebSocket connection is closed.

Return type

None

class main.consumers.Timer(timeout, callback, *args, **kwargs)[source]

Класс таймера

Конструктоор :type timeout: float :param timeout: Сколько секунд между действиями :type callback: Callable :param callback: Функция, которая будет вызываться каждые timeout секунд

__init__(timeout, callback, *args, **kwargs)[source]

Конструктоор :type timeout: float :param timeout: Сколько секунд между действиями :type callback: Callable :param callback: Функция, которая будет вызываться каждые timeout секунд

cancel()[source]

Функция отключения таймера

main.consumers.get_event_settings(webinar_session, event_id)[source]

Получение настроек о событии

Return type

Chat

async main.consumers.send_chat(consumer)[source]

Метод отправки чата

Return type

None

main/apps.py
class main.apps.MainConfig(app_name, app_module)[source]
main/admin.py
main/templates
main/templates/base
base.html

файл, объединяющий основные фрагменты html макета

main/templates/components
main/templates/components/base
main/templates/components/profile
information.html

Фрагмент макета информации о пользователе

password.html

Фрагмент макета формы смены данных пользователя

webinar.html

Фрагмент макета формы ввода данных сервиса вебинаров пользователя

main/templates/components/widget
awaiting.html

Фрагмент объединяющего макета ожидающего модерации сообщения

moderated.html

Фрагмент объединяющего макета модерированного сообщения

messages/awaiting.html

Фрагмент макета ожидающего модерации сообщения

messages/message.html

Фрагмент макета сообщения

messages/moderated.html

Фрагмент макета модерированного сообщения

main/templates/pages
event.html

Страница события. На ней можно посмотреть информацию о событии

index.html

Главная страница приложения

profile.html

Страница профиля

schedule.html

Страница списка вебинаров

widget.html

Страница виджета

main/templates/registration
login.html

Страница входа в аккаунт

signup.html

Страница регистрации

Indices and tables