Задача: написать программу для подключения к чату через командную строку. Функции программы:
- Подключается к указанному чат серверу;
- Сохраняет историю переписки;
- Отправляет сообщения в чат.
Для запуска скриптов нужен предустановленный Python версии не ниже 3.7+. Также в программе используются следующие сторонние библиотеки:
- aiofile https://github.com/mosquito/aiofile;
- aioconsole https://github.com/vxgmichel/aioconsole.
Рекомендуется устанавливать зависимости в виртуальном окружении, используя virtualenv, virtualenvwrapper или venv.
- Скопируйте репозиторий в текущий каталог. Воспользуйтесь командой:
$ git clone https://github.com/igorzakhar/async-chat-client.git async_chat_client
После этого программа будет скопирована в каталог async_chat_client
- Создайте и активируйте виртуальное окружение:
$ cd async_chat_client # Переходим в каталог с программой
$ python3 -m venv my_virtual_environment # Создаем виртуальное окружение
$ source my_virtual_environment/bin/activate # Активируем виртуальное окружение
- Установите сторонние библиотеки из файла зависимостей:
$ pip install -r requirements.txt # В качестве альтернативы используйте pip3
$ python3 chat_client_reader.py
Аргументы командной строки:
usage: chat_client_reader.py [-h] [--host HOST] [--port PORT] [--history HISTORY]
-h, --help
- Вызов справки.--host HOST
- Адрес чат-сервера (значение по умолчаниюminechat.dvmn.org
)--port PORT
- TCP порт чат-сервера (значение по умолчанию5000
).--history HISTORY
- Путь к файлу в котором сохраняется история переписки в чате(по умолчанию текущая директория, файлchat.history
).
Скрипт включает в себя регистрацию нового пользователя и авторизацию существующего пользователя.
$ python3 chat_client_reader.py --username YourUsername
Если имя не указано то генерируется чат-сервером и отправляется в ответном сообщении вместе с токеном. Отследить создание нового пользователя можно через режим отладки --debug
. Пример запуска:
$ python3 chat_client_reader.py --debug
DEBUG:root:Установлено соединение.
DEBUG:sender:Hello %username%! Enter your personal hash or leave it empty to create new account.
DEBUG:sender:Sent message: '\n'
DEBUG:sender:Enter preferred nickname below:
DEBUG:sender:Sent message: '\n'
DEBUG:sender:{"nickname": "New user", "account_hash": "..."}
$ python3 chat_client_reader.py --token xxx-xxxx.... --message YourMessage
Если не указан аргумент --message
то запустится текстовый интерфейс c приглашением для ввода и отправки сообщений:
$ python3 chat_client_reader.py --token xxx-xxxx....
>>> Hello world!
>>>
Аргументы командной строки:
usage: chat_client_writer.py [-h] [--host HOST] [--port PORT] [--token TOKEN]
[--debug] [--username USERNAME]
[--message MESSAGE]
-h, --help
- Вызов справки.--host HOST
- Адрес чат-сервера (значение по умолчаниюminechat.dvmn.org
)--port PORT
- TCP порт чат-сервера (значение по умолчанию5050
).--token TOKEN
- Токен зарегистрированного пользователя (выдается при регистрации нового пользователя).--username USERNAME
- Имя пользователя (указывается при регистрации нового пользователя). Если не указано то генерируется чат-сервером.--message MESSAGE
- Собщение отправляемое в чат.--debug
- Включить режим отладки.
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.