Metadata-Version: 2.1
Name: aura-api
Version: 1.0.2
Summary: Python API for Yandex.Aura
Home-page: https://github.com/skorpionikus/aura-api
Author: mickxolotl
Author-email: mickxolotl@yandex.ru
License: GPL3
Description: # aura-api
        
        Python API для Яндекс.Аура
        
        **В разработке**
        
        
        ## Установка
        Требуется Python 3, тестировалось на Python 3.7
        
        * Установка с помощью pip
        ```bash
        pip3 install aura-api
        ```
        
        * Установка из исходников
        ```bash
        git clone https://github.com/mickxolotl/aura-api.git
        cd aura-api
        python3 setup.py install
        ```
        
        ## Использование
        
        Примеры использования можно найти в каталоге [examples](https://github.com/mickxolotl/aura-api/tree/master/examples)
        
        ```python
        import aura
        
        api = aura.API(aura.AuthSession('LOGIN', 'PASSWORD'))
        ```
        
        Заменив строки на свои логин и пароль, выполните код.
        Теперь можно обращаться к методам АПИ ауры.
        Например, обращения к методу `/api/user/interests/` или `/api/post/info/<post_id>/` выполняются соответственно
        ```python
        api.user.interests()
        # и
        api.post.info[post_id]()
        ```
        
        Параметры запроса можно указать в аргументах
        ```python
        api.post.edit[post_id](text='Отредактированный текст', background=19)
        ```
        
        Результатом выполнения запроса может быть:
        * "OK" при изменении данных;
        * id сущности при ее создании;
        * объект `Dummy` при получении данных.
        
        Работать с `Dummy` можно несколькими способами:
        ```python
        obj.text
        obj['text']
        obj.get('text', 'DEFAULT')
        
        if 'text' in obj: pass
        # для проверки наличия значения 'text' в объекте
        ```
        
        ## Нюансы
        
        #### Метод HTTP запроса
        Для запросов с получением данных используется HTTP метод `GET`, а при изменении данных на сервере `POST`.
        
        В случае, если метод был выбран неверно, попытка повторится с другим методом, 
        а в логе будет сообщение `Invalid HTTP method...` с корректным методом.
        Его можно указать при обращении к методу:
        ```python
        api.some.method('GET')
        # или
        api.some.method(_http_method='GET')
        ```
        
        #### Способ авторизации
        При инициализации объекта `AuthSession` каждый раз отправляется несколько запросов
        на `passport.yandex.ru` для авторизации.
        
        Возможно, частые авторизации могут показаться подозрительными и повлечь за собой
        наложение ограничений на аккаунт.
        
        Данные для использования `CookieSession` можно получить, вызвав метод `get_cookie_session_args` 
        объекта класса `AuthSession`:
        
        ```python
        session = aura.AuthSession('LOGIN', 'PASSWORD')
        cookies = session.get_cookie_session_args()
        print(cookies)  # сохранить для последующего использования
        cookie_session = aura.CookieSession(**cookies)
        ```
        
        ## Настройка
        Настройки содержатся в объекте `aura.config.config` и могут быть 
        изменены напрямую или с помощью `aura.configure` до инициализации прочих объектов
        ```python
        aura.config.config.USER_AGENT = 'Mozilla/5.0 ...'
        aura.configure(USER_AGENT='Mozilla/5.0 ...', API_DELAY=0)
        ```
        * USER_AGENT - отправляемый в каждом запросе заголовок, должен соответствовать USER_AGENT 
        мобильного устройства и отвечать некоторым другим условиям
        * DEFAULT_APP_VERSION - отправляемая в каждом запросе версия используемого приложения 
        * HTTP_TIMEOUT - лимит ожидания ответа
        * API_DELAY - задержка между повторными запросами
        * HTTP_METHOD_CORRECTION - при ошибке Invalid action пробовать с альтернативным HTTP методом,
         за исключением случаев, когда метод указан вручную
        
        ## Доступные методы
        В открытом доступе нет всех доступных методов и их аргументов.
        Здесь со временем будут появляться основные методы и аргументы с описанием 
        (но особо на это рассчитывать не стоит).
        
        Изучать необходимые вам методы можно выполняя действия и наблюдая за тем, какие HTTP запросы 
        отправляются.
        
        Возможные варианты:
        1. Заменяя USER AGENT в браузере отслеживать пакеты при работе с аурой во вкладке "Network" инструментов разработчика
        (F12 на многих браузерах)
        2. Перенаправляя пакеты с мобильного устройства на ПК используя для их анализа Charles или Fiddler или используя
        аналогичные инструменты на мобильном устройстве
        
        Так же возможно выудить что-то из [main.js](https://yandex.ru/aura/static/js/main.8863655d.js) (для перехода 
        необходим мобильный USER AGENT)
        
Keywords: yandex aura api
Platform: UNKNOWN
Description-Content-Type: text/markdown
