{"id":20975486,"url":"https://github.com/fsoky/donationalertsapi","last_synced_at":"2025-07-23T09:05:34.990Z","repository":{"id":42504962,"uuid":"352991351","full_name":"Fsoky/DonationAlertsAPI","owner":"Fsoky","description":"Модуль для работы с Donation Alerts API","archived":false,"fork":false,"pushed_at":"2023-11-17T17:30:03.000Z","size":401,"stargazers_count":30,"open_issues_count":2,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-21T07:31:42.107Z","etag":null,"topics":["api","donationalerts","flask","fsoky","python"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=ln7fvwdy5zo","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fsoky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-30T12:22:44.000Z","updated_at":"2025-07-13T22:37:01.000Z","dependencies_parsed_at":"2023-02-19T00:15:21.424Z","dependency_job_id":"81f34ec4-4f8d-4e1f-80a2-7c870ac97dff","html_url":"https://github.com/Fsoky/DonationAlertsAPI","commit_stats":{"total_commits":70,"total_committers":3,"mean_commits":"23.333333333333332","dds":"0.44285714285714284","last_synced_commit":"52a43a8b3666aec31be6aea2623fa061324a19d7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fsoky/DonationAlertsAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fsoky%2FDonationAlertsAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fsoky%2FDonationAlertsAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fsoky%2FDonationAlertsAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fsoky%2FDonationAlertsAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fsoky","download_url":"https://codeload.github.com/Fsoky/DonationAlertsAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fsoky%2FDonationAlertsAPI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266649141,"owners_count":23962178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","donationalerts","flask","fsoky","python"],"created_at":"2024-11-19T04:45:10.809Z","updated_at":"2025-07-23T09:05:34.943Z","avatar_url":"https://github.com/Fsoky.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://imgur.com/vfJl0Jo\"\u003e\u003cimg src=\"https://i.imgur.com/vfJl0Jo.png\" title=\"source: imgur.com\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://git.io/typing-svg\"\u003e\u003cimg src=\"https://readme-typing-svg.demolab.com?font=Fira+Code\u0026size=30\u0026pause=1000\u0026color=F57D07\u0026center=true\u0026vCenter=true\u0026random=false\u0026width=435\u0026lines=Donation;Alerts;API\" alt=\"Typing SVG\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# О платформе DonationAlerts\n**DonationAlerts** - онлайн-платформа для сбора пожертвований от зрителей в реальном времени. Часто используется стримерами и блогерами во время трансляций. Платформа предоставляет сервис для приема электронных пожертвований, уведомления о которых появляются в реальном времени. С помощью DonationAlerts создатели контента могут интегрировать различные платежные системы и настраивать персонализированные сообщения для поддерживающих.\n\n# Об API\n**API DonationAlerts** - это программный интерфейс приложения, который позволяет разработчикам взаимодействовать с функциональностью **DonationAlerts**. С его помощью можно автоматизировать процессы сбора информации о пожертвованиях, управления уведомлениями, и, возможно, другими аспектами, связанными с платформой.\n\n\u003e [!NOTE]\n\u003e _Для работы с **API** понадобится:_ \\\n\u003e [Создать свое приложение Donation Alerts](https://www.donationalerts.com/application/clients) \\\n\u003e [Официальная документация Donation Alerts API](https://www.donationalerts.com/apidoc)\n\n\u003e [!WARNING]\n\u003e **Новая версия модуля на стадии разработки**\n\n\n## Установка\n- Установка, используя пакетный менеджер pip\n```\n$ pip install DonationAlertsAPI\n```\n- Установка с GitHub *(требуется [git](https://git-scm.com/downloads))*\n```\n$ git clone https://github.com/Fsoky/DonationAlertsAPI\n$ cd DonationAlertsAPI\n$ python setup.py install\n```\n- Или\n```\n$ pip install git+https://github.com/Fsoky/DonationAlertsAPI\n```\n\n## Пример использования\n\n\u003e[!TIP]\n\u003eЕсли желаете работать _асинхронно_, импортируйте класс **AIODonationAlertsAPI**, методы работы аналогичны.\n\nВ данном коде реализован пример простого веб-приложения на Flask, которое обеспечивает авторизацию через DonationAlerts API и получение информации о пользователе. Давайте разберем, что происходит шаг за шагом:\n\n#### Импорт библиотек:\n\n```python\nfrom flask import Flask, redirect, request\nfrom donationalerts import DonationAlertsAPI, Scope\n```\nВ этом блоке происходит импорт необходимых модулей. Flask используется для создания веб-приложения, а DonationAlertsAPI и Scope - для работы с DonationAlerts API и указания необходимых разрешений (scopes).\n\n#### Настройка приложения и API:\n\n```python\napp = Flask(__name__)\napi = DonationAlertsAPI(\n    \"CLIENT_ID\",\n    \"CLIENT_SECRET\",\n    \"http://127.0.0.1:5000/login\",\n    [\n        Scope.OAUTH_USER_SHOW,\n        Scope.OAUTH_DONATION_INDEX\n    ]\n)\n```\nЗдесь создается экземпляр Flask-приложения (app) и объекта DonationAlertsAPI с указанием идентификатора клиента (CLIENT_ID), секрета клиента (CLIENT_SECRET), URI перенаправления после авторизации (http://127.0.0.1:5000/login) и списком разрешений (scopes).\n\n#### Маршрут для инициации авторизации:\n\n```python\n@app.route(\"/\")\ndef index():\n    return redirect(api.authorize.login())\n```\nПри переходе на корневой URL приложения происходит перенаправление на URL авторизации DonationAlerts с использованием api.authorize.login().\n\n#### Маршрут для обработки ответа после авторизации:\n\n```python\n@app.route(\"/login\")\ndef login():\n    code = request.args.get(\"code\")\n    access_token = api.authorize.get_access_token(code)\n\n    user = api.user.get(access_token.access_token)\n    return user.to_dict()\n```\nПосле того, как пользователь разрешил доступ, происходит перенаправление на указанный URI (http://127.0.0.1:5000/login). Затем извлекается код доступа (code), который используется для получения токена доступа. С помощью токена доступа запрашивается информация о пользователе, и возвращается словарь с данными пользователя.\n\n#### Запуск приложения:\n\n```python\nif __name__ == \"__main__\":\n    app.run(debug=True)\n```\nПриложение запускается, если оно запускается напрямую, а не импортируется в другой скрипт.\n\nЭтот код создает простое веб-приложение, которое позволяет пользователям авторизоваться через DonationAlerts, после чего выводится информация о пользователе. Важно убедиться, что идентификатор клиента и секрет клиента правильно указаны, и что URI перенаправления соответствует настройкам вашего приложения в DonationAlerts.\n\n#### Полный код:\n```python\nfrom flask import Flask, redirect, request\nfrom donationalerts import DonationAlertsAPI, Scope\n\napp = Flask(__name__)\napi = DonationAlertsAPI(\n    \"CLIENT_ID\",\n    \"CLIENT_SECRET\",\n    \"http://127.0.0.1:5000/login\",\n    [\n        Scope.OAUTH_USER_SHOW,\n        Scope.OAUTH_DONATION_INDEX\n    ]\n)\n\n\n@app.get(\"/\")\ndef index():\n    return redirect(api.authorize.login())\n\n\n@app.get(\"/login\")\ndef login():\n    code = request.args.get(\"code\")\n    access_token = api.authorize.get_access_token(code)\n\n    user = api.user.get(access_token.access_token)\n    return user.to_dict()\n\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsoky%2Fdonationalertsapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsoky%2Fdonationalertsapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsoky%2Fdonationalertsapi/lists"}