ZeonAPI
Набор инструментов для работы с облачной АТС Zeon.
Сейчас это ранняя альфа. У меня нормально загружает и разбирает сообщения с ЯндексПочты по протоколу POP3.
API АТС ZEON несколько больше того, что реализовано в моей библиотеке на данный момент, но будет поддерживаться полностью. Фактически, получение записей разговором из почтового ящика должно быть разовой операцией: при запуске АТС включили в настройках пересылку на почту и записи не теряются. Когда интеграция с КИС реализована, эти записи можно подгрузить. А дальше уже получать записи посредством стандартного API.
Установка
$ pip3 install zeonapi
Python 2.x не поддерживается
Разбор почтовых сообщений с записями разговоров
Пример использования
from zeonapi.mailparserimap import MailParserPOP
from zeonapi.dbdrivers import DbDriverMongo
if __name__ == '__main__':
mail_parser = MailParserPOP('pop.yandex.ru', 'email@yandex.ru', 'password', True)
mail_parser.set_out_folder('/home/ivan/myprojects/python/zeon-crm/records/')
mail_parser.db_driver = DbDriverMongo('mongodb://localhost:27017/', 'records', 'calls')
mail_parser.get_messages(-1, 'Sorting|_Records')
MailParser
Существуют два класса для солучения почты: MailParserPOP и MailParserIMAP. Предпочтительнее использовать протокол POP3, поскольку он загружает заголовки и проверяет, существует ли запись в локальной БД. А загружает сообщение полностью, только если его нет.
В настоящее время MailParserIMAP в достаточной степени не оттестирован.
Конструктор класса:
class MailParser:
def __init__(self, mail_server, mail_user, mail_password, mail_ssl=True):
"""
:param mail_server: адрес IMAP4/POP3-сервера
:param mail_user: имя пользователя
:param mail_password: пароль
:param mail_ssl: использовать SSL (по умолчанию) или нет
"""
mail_parser.set_out_folder
Установить каталог для сохранения записей разговоров
mail_parser.db_driver
Установить драйвер БД, в которой будут сохраняться данные о звонках. Сейчас написан только драйвер для MongoDB. Можно написать свой.
mail_parser.get_messages
Загрузить сообщения с сервера. Первый параметр - количество загружаемых сообщений, -1 - все. Второй параметр имя папки из которой загружать сообщения. В настоящее время возможность загружать только новые сообщения не реализована.
DbDriverMongo
Конструктор класса
class DbDriverMongo:
def __init__(self, db_uri, db_name, db_collection):
"""
:param db_uri: Строка подключения к БД
:param db_name: Имя БД
:param db_collection: Имя коллекции для сохранения данных о звонках
"""