Страница 3 из 4

Добавлено: Ср, 19 сентября 2018, 12:00:14
dyvniy
19 сентября
Планы:
Разобраться с нэймспэйсами и прочими проблемами XML.
Чтобы маковский аутлук понимал сгенерированный ответ про иерархию папок.
Получилось:
Прочитать статьи про xmlns
https://www.artlebedev.ru/technogrette/xslt/xmlns-1/
https://www.artlebedev.ru/technogrette/xslt/xmlns-2/
Создать кучу коммитов во вложении.
И понять, что я не совсем в правильном направлении двигался.
Надо притворяться сервером так, чтобы маковский аутлук понимал.
Пакет за пакетом.
А не совершенствовать инфаструктуру,
которая может и не пригодиться.
Всё равно рабочий код будет на С++.
На питоне только прототип.

Добавлено: Чт, 20 сентября 2018, 10:34:00
dyvniy
20 сентября
Планы:
Проверить, подключится ли мак по https. Это не долго.
Починить генерируемый GetFolder, чтоб работал не хуже ответа файлом.
Получилось:
Впервые полностью выполнил планы на день)
Да, по https мой сервер всё равно не работает, может ключ кривой, но разбираться некогда.
GetFolder не работал потому что я забыл добавить элемент в иерархию! Нэймспейсы были не причём.
Теперь надо сделать сохранение дерева папок в базе данных + историю.
Папки могут иметь любую (?) степень вложенности, потому что указывается айдишник родительской для всех кроме корневой.

Код: Выделить всё

#ET
import xml.etree.ElementTree as ET
= ET.parse('desktop/folders_ret.xml').getroot()
print(
x.find('{http://schemas.xmlsoap.org/soap/envelope/}Body'))
print(
x[1])
for el in x.iter('{http://schemas.xmlsoap.org/soap/envelope/}Body'):
    print(el

Добавлено: Пт, 21 сентября 2018, 17:32:52
dyvniy
21 сентября
Планы:
Добавлять функциональность с постоянными проверками в маковском аутлуке.
Захардкодить все его запросы, чтобы потом их постепенно разбирать.
Потом приступить к добавлению адекватных реализаций вида "добавить-изменить-удалить"
С хранением данных в базе.
Получилось:
Запросы захардкожены, аутлук больше не падает.
Данные надо хорошенько структурировать, прежде чем сохранять в базу.

Добавлено: Пн, 24 сентября 2018, 08:35:14
dyvniy
24 сентября
Планы:
Надо сделать папки с историей.
Не уверен что успею сегодня, но пока это единственный вариант для демо.
Будет всего две таблицы, по одной для папок и для истории.
Истории хватит 4х полей: айди, юзер, время, айди64
У папок 4 обязательных (айди, тип папки, айди64папки, айди64парента) и параметры папок, всех я пока не знаю.
Получилось:
All change keys stored in table "history".
Данные о папках сохраняются в базу и читаются из неё.
Маковский аутлук понимает папки, прочитанные из базы.

Добавлено: Вт, 25 сентября 2018, 11:57:52
dyvniy
25 сентября
Планы:
Сегодня день документации.
Надо прочесть как можно больше про EWS.
Движение наугад изжило себя, надо использовать всю имеющуюся теорию.
Наиболее важны две ветки:
https://docs.microsoft.com/en-us/exchange/client- ... e/ews-xml-elements-in-exchange
https://docs.microsoft.com/en-us/exchange/client- ... nce/ews-operations-in-exchange
error codes
https://docs.microsoft.com/en-us/exchange/client- ... service-reference/responsecode
Получилось:
Прочесть столько-то статей.
Понять как всё работает на первые 90% (надеюсь))
Узнаем в конце дня.
Прочитал меньше половины того, что хотел. Завтра продолжу.

Добавлено: Ср, 26 сентября 2018, 11:38:11
dyvniy
26 сентября
Планы:
Продолжить чтения документации.
Я уже понял, что Мне нужно как минимум два счётчика: история и промокашка.
Они оба хранятся в виде base64 little endian. Оба для начала будут простым int числом.
Какой-то из них в эксчендже содержит GUID, но я надеюсь что клиенты этого не требуют.
Получилось:
Нужно ещё понимать айди итэма и его ключ изменений.
Думаю для начала сделать айди из номера строки в таблице итэмов, закодировав его в base64.
А ключ изменений будет равен моменту истории, когда это произошло.
Итого новых таблиц пока не надо.
Тут рассказано про несколько форматов одного и того же Id, только формул его создания пока не видно
https://docs.microsoft.com/en-us/exchange/client- ... -reference/convertid-operation
Типы, только они для шарпа с бэйсиком. Неужели придётся лезть в их код ((
https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data(v=exchg.80).aspx