2018.10 второй месяц испытательного срока

Описание: Доработка почтового сервера. Внедрение EWS и, возможно, MAPI, которое бинарно.

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#1 dyvniy » Пн, 1 октября 2018, 10:52:55

Зарезервировано для итогов.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#2 dyvniy » Пн, 1 октября 2018, 11:28:40

01 октября

Планы:
Понять как формируются и отправляются пакеты в exchangelib.
Чтобы использовать этот же механизм при написании сервера.
В идеале - использовать те же классы.
Ведь каждый умеет как читать себя из XML, таки экспортироваться в него.

Получилось:
Мне всё больше кажется, что идея использовать exchangelib для написания сервера хороша.
Кроме изучения библиотеки пробовал отлаживать запуск клиентской части.
Там используется пара десятков потоков, так что есть некоторая сложность.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#3 dyvniy » Вт, 2 октября 2018, 11:15:02

02 октября

Планы:
Изучить лог отладки клиентской библиотеки.
Понять как сохранять объекты в базу. Думаю так же рекурсивно, как я сохранял XML.
Только придётся учитывать типы данных - наследников от EWSElement.
Когда объекты будут сохраняться в базу и читаться из неё, их можно будет активно использовать.
Так же возможно придётся дописать несколько функции чтения объекта из XML и запись его туда же,
которые были не нужны в чисто клиентской библиотеке, зато в серверной будут полезны.

Получилось:
Сделать основу для нового сервера, научить его возвращать types.xsd по запросу,
а на все посты в Exchange.asmx возвращать варнинг unsupported )))
конечно можно заставить его возвращать готовые XML из файлов, но лучше сразу научиться их формировать.
Формированием XML завтра и займусь.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#4 dyvniy » Ср, 3 октября 2018, 11:34:09

03 октября

Планы:
Записать в базу содержимое объектов EWSElement при запуске клиентской части.
Понять как читать эти данные, разбирать XML запрос и формировать ответ при работе серверной.

Получилось:
Проникнуть глубже в структуру библиотеки.
Изучить нескольких наследников EWSElement и Field, включая их чтение и запись в XML.
Узнал о модуле shelve, создающем потокобезопасный аналог словаря во временном файле.
Но такое ощущение, что ни элементы ни поля в нормальную базу данных не впихнуть.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#5 dyvniy » Чт, 4 октября 2018, 12:48:40

04 октября

Планы:
Писать в базу пока рано.
Нужно найти место, где формируются и парсятся XML пакеты.

Получилось:
Место найдено services.py:132: def _get_responce_xml(self, payload)
Туда приходит дерево запросов, там оно превращается в бинарные данные и отсылается.
Там же ответ парсится и возвращается массив деревьев с полученными данными.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#6 dyvniy » Пт, 5 октября 2018, 10:35:41

05 октября

Планы:
Попробовать сохранить в шелв дерево, извлечь оттуда и сравнить.
Если результаты идентичны - сохранить все папки и все итэмы в шелв,
чтобы потом извлекать их оттуда в сервере.
Если различны - сохранять в шелв дерево в виде текста.
План на понедельник - сделать историю и промокашки,
чтобы запросы обновления не ругались.

Получилось:
В шелв XML не сохраняются, но их легко в строку преобразовывать.
Ключом тоже можно использовать одни строки,
но массивы строк в строку и обратно преобразуются без проблем.
Вообще надо заканчивать с неполной реализацией,
надо все уникальные параметры парсить и хранить. Лучше в базе, а не в шелве.

К тому же в базе можно хранить XML в виде текста.
Не нужно парсить все параметры итемов - можно выдавать все, не важно сколько их запросили))
Изображение


Название раздела: StalkerSoft
Описание: Доработка почтового сервера. Внедрение EWS и, возможно, MAPI, которое бинарно.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: Ещё смайлики…
   

Вернуться в «StalkerSoft»

Кто сейчас на форуме (по активности за 15 минут)

Сейчас этот раздел просматривают: 5 гостей