Package: pydomosed
PyDomosed - API-wrapper для мини-приложений Домосед и ГонкиДомосед (приложение закрыто):Документация APIМини-приложениеГонки:Документация APIМини-приложениеСодержание:Содержание (вы находитесь здесь)Базовое использованиеУстановкаЗапросы к APIПодписка на переводыБазовое использованиеЧтобы использовать API, необходимо создать объект сессии (Session)
На примере ниже создаётся event loop () и создаётся сессия и выводится ответ методаmerchants.getInfo.merchants.getInfoздесь и далее приведен для примера.frompydomosedimportSessionimportasynciotoken="youraccesstoken"asyncdefmain():asyncwithSession(token)asdomosed:info=awaitdomosed.merchants.getInfo()# Возвращает объект Responseprint(info)asyncio.run(main())Использование API ГонокЧтобы использовать API Гонок, заменитеSession.base_urlнаSession.api_urls["race"]:frompydomosedimportSessionimportasynciotoken="youraccesstoken"Session.base_url=Session.api_urls["race"]asyncdefmain():asyncwithSession(token)asraceapi:info=awaitraceapi.merchants.get()# Возвращает объект Responseprint(info)asyncio.run(main())УстановкаСклонируйте репозиторий и запуститеsetup.pyили воспользуйтесь pip:pip install pydomosedЗапросы к APIВсе запросы осуществляются через объект сессии. Для удобства и читабельности вашего кода, можно использовать несколько равнозначных способов выполнить запрос:(sessionв данных примерах - объект классаpydomosed.base.Session)awaitsession.request("merchants.getInfo",**params)awaitsession("merchants.getInfo",**params)awaitsession.merchants.getInfo(**params)Эти способы не различаются внутренне (во всех случаях используетсяsession.request) и возвращают объектResponse.pydomosed.base.ResponseКласс, предназначенный для хранения информации об ответе. Возвращается при любом запросе к API и содержит следующие атрибуты:data: Словарь ответа, каким его вернул APIsuccess: True или False, в зависимости от успешности запросаmsg: содержимое.data["response"]["msg"], если запрос был успешен, иначеNone(неактуально для приложения Гонки)error_msg: сообщение об ошибке, если запрос не был успешен, иначеNoneerror_code: код ошибки, если запрос не был успешен, иначеNonerequest_info: словарь:{"method":"merchants.getInfo","params":{"access_token":"some_token",...},"base_url":"URL, использовавшийся в запросе"}Подписка на переводыДля подписки на переводы необходимо импортировать классpydomosed.hooks.Hook.Расширим пример выше, чтобы выводить все события переводов.frompydomosedimportSession,Hookimportasynciotoken="youraccesstoken"asyncdefmain():asyncwithSession(token)asdomosed:domohook=Hook(domosed,url="http://your.doma.in",port=8080)awaitdomohook.start(# Задаём функцию, которая будет вызываться на каждое событие. Здесь - вывод всех событий в консоль.callback=lambdadata:print(data))info=awaitdomosed.merchants.getInfo()# Возвращает объект Responseprint(info)asyncio.run(main())Использование подписки для ГонокЧтобы использовать подписку на переводы c API Гонок, заменитеHook.methodна"webhooks.create":frompydomosedimportSession,Hookimportasynciotoken="youraccesstoken"Session.base_url=Session.api_urls["race"]Hook.method="webhooks.create"asyncdefmain():asyncwithSession(token)asraceapi:racehook=Hook(domosed,url="http://your.doma.in",port=8080)awaitracehook.start(# Задаём функцию, которая будет вызываться на каждое событие. Здесь - вывод всех событий в консоль.callback=lambdadata:print(data))info=awaitraceapi.merchants.get()# Возвращает объект Responseprint(info)asyncio.run(main())Классpydomosed.hooks.Hookпринимает три обязательных параметра:session: объект сессииurl: URL вашего сервераport: портПодписка запускается с помощьюawait hook.start(callback), гдеcallback- функция, в которую первым аргументом передаются события по мере поступления.
Если необходимо остановить подписку до завершения работы всего приложения, можно использовать методhook.stop()