

        DBUS ИНТЕРФЕС

INTERFACE = 'org.freedesktop.ITmagesEngine'
PATH = '/org/freedesktop/ITmagesEngine'

Ключи словаря, передаваемого в качестве аргумента и соответствующий
сигнатуре "a{sv}":

user        - имя зарегистрированного на хостинге пользователя
passwd      - пароль от аккаунта пользователя
filename    - имя загружаемого файла.
async       - Указывает режим работы. Если True, то результат можно
              будет получить по обратному вызову.
verbose     - Указывает, будет ли писаться лог работы с сетью
useragent   - Оопционально, если нужно указать свой юзерагент
id          - ID изображения, который можно получить с хостинга.
key         - Аналогично ID
url         - Опционально, если нужно указать специфичный URL
proxytype   - Тип прокси. Целое число. 0 - http, 4 - socks4, 5 - socks5
proxynode   - Адрес проксисервера. (string)
proxyuser   - Логин для авторизации на проксисервере
proxypass   - Пароль для авторизации на проксисервере
autoauth    - Если истина, то демон будет пытаться автоматически
              авторизоваться. Улючи user и passwd должны присутствовать.
              Актуально только для метода upload.

Доступные методы через Shared:
check               - Проверяет состояние авторизации.
                      Необходимые ключи: user, passwd
check_connection    - Проверяет состояние соединения с сервером
                      Если есть прокси, то ключи только для работы с прокси
login               - Производит авторизацию на хостинге
                      Необходимые ключи: user, passwd
logout              - Завершает сессию на хостинге
                      Необходимые ключи: user, passwd
upload              - Производит загрузку изображения на хостинг
                      Необходимые ключи: filename. Если нежна авторизация, то
                      user, passwd
getpictures         - Получает список с информацией обо всех загруженных
                      в аккаунт изображениях.
                      Ннеобходимые ключи: user, passwd
quiting             - Завершение работы демона

Все методы возвращают словарь вида "status: bool, reason: string"
Методы upload и getpictures добавляют ключи об изображении.

Доступные методы в интерфейсе:

    - Shared ( method, kwargs )
      - method : имя метода, который будет использован. Тип string
      - kwargs : контейнер, содержащий "ключ (string) : значение (variant)",
                 соответвующий сигнатуре "a{sv}"
        Возвращаемое значение -- словарь, соответствующий сигнатуре "a{sv}"
        и содержащий ключи status (bool), reason (string), info (string).
        В случае, если "method" == "upload", "getpictures", то содержит
        информацию, полученную с сервера. 

    - AddNewItem ( filename )
      - filename : Имя добавляемого файла.
                   Добавляет файл в список и ставит его в очередь.
                   Так как очередь пока отсутствует, то этот метод
                   несколько бесполезен. При загрузке методом upload
                   изображение автоматически добавляется в ту же очередь.
    - ListMethodsGet () Возвращает список доступныз черещ Shared методов

Сигналы:
    progress_event ( action, name, dt, dr, ut, ur )
        action - выполняемый метод
        name - имя загружаемого файла или имя потока
        dt, dr - Вещественные значения размеров скачивания
        ut, ur - Вещественные значения размеров отдачи

    action_started ( action )
        Сигнал излучается при старте одного из методов работы с сетью
        action - имя метода (string)

    action_complete ( action, values )
        Сигнал излучается при завершении метода, работающего с сетью
        action - имя метода (string)
        values - словарь со статусом, ответом и доп инфой

    item_status_changed ( filename, old_status, new_status )
        Излучается, когда было изменено поле status для указанного файла.


    ДОСТУП ЧЕРЕЗ СОКЕТ

Все сообщения для отправки и для приема должны иметь вид:
    <?xml version='1.0' encoding='UTF-8'?>
    <message>
      <method name="probe1">
        <kwarg type="dict" name="">
          <kwarg type="string" name="action">probe1</kwarg>
          <kwarg type="xml" name="info">
          <!-- XML вставка, котороая должна использоваться просто как текст -->
            <obj>
              <size>123456</size>
              <server>storage5</server>
              <id>09876.0</id>
              <key>asdfgh</key>
            </obj>
          </kwarg>
          <kwarg type="list" name="lst">
            <arg type="string">aa</arg>
            <arg type="string">bb</arg>
          </kwarg>
          <kwarg type="int" name="id">2222</kwarg>
          <kwarg type="int" name="key">1111</kwarg>
        </kwarg>
      </method>
    </message>

В качестве имени Для тэга method допустимые значения в списке для DBus
В качестве типов, допустимо использовать Python типы.
Текст, отличный от ascii должен быть квотирован
Для проверки сокета можно использовать метод ping. В ответ прийдет PID ядра
