diff --git a/README.md b/README.md index be91048..93e9eb4 100644 --- a/README.md +++ b/README.md @@ -11,17 +11,17 @@ __pip install donationalerts-api -U__ ## πŸ”₯ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ логинимся Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ _access_token_, послС Π² ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ `user` ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ JSON-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация, Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ `donations` Ρ‚ΠΎΠΆΠ΅ хранится информация, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΆΠ΅ другая. И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ `user` -`DonationAlertsApi` - основной класс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DA API, Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ _client_id_, _client_secret_, _redirect_uri_, _scopes_ \ +`DonationAlertsAPI` - основной класс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DA API, Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ _client_id_, _client_secret_, _redirect_uri_, _scopes_ \ `Scopes` - ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ряд ΠΏΡ€Π°Π² Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, всС ΠΏΡ€Π°Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² [ΠΎΡ„. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ](https://www.donationalerts.com/apidoc#authorization__scopes), Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ _ALL_SCOPES_ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ всСх ΠΏΡ€Π°Π² сразу (Scopes.ALL_SCOPES) ```py from flask import Flask, redirect, request -from donationalerts_api import DonationAlertsApi +from donationalerts_api import DonationAlertsAPI from donationalerts_api.modules import Scopes app = Flask(__name__) -api = DonationAlertsApi("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_INDEX]) +api = DonationAlertsAPI("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_INDEX]) @app.route("/", methods=["get"]) @@ -79,11 +79,11 @@ __НовоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 1.0.9 beta__ ```py from flask import Flask, redirect, request # pip install flask[async] -from donationalerts_api.asyncio_api import DonationAlertsApi, Centrifugo +from donationalerts_api.asyncio_api import DonationAlertsAPI, Centrifugo from donationalerts_api.modules import Scopes, Channels app = Flask(__name__) -api = DonationAlertsApi("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_SUBSCRIBE]) +api = DonationAlertsAPI("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_SUBSCRIBE]) @app.route("/", methods=["get"]) @@ -126,6 +126,4 @@ async def handler(event): """ ``` -Как Π²Ρ‹ поняли, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с асинхронном, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° `asyncio_api`. - -__ΠžΠ±Π·ΠΎΡ€ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°:__ *скоро...* \ No newline at end of file +Как Π²Ρ‹ поняли, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с асинхронном, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° `asyncio_api`. \ No newline at end of file diff --git a/donationalerts_api/donationalerts_api.py b/donationalerts_api/donationalerts_api.py index 14a6291..e6d674d 100644 --- a/donationalerts_api/donationalerts_api.py +++ b/donationalerts_api/donationalerts_api.py @@ -49,8 +49,7 @@ class DonationAlertsAPI: "scope": self.scope } - access_token = requests.post(f"{DEFAULT_URL}token", data=payload).json() - self.refresh_token = access_token.get("refresh_token") + obj = requests.post(f"{DEFAULT_URL}token", data=payload).json() return Data( obj["access_token"], diff --git a/examples/example_centrifugo.py b/examples/example_centrifugo.py index 9597cab..39e3a6c 100644 --- a/examples/example_centrifugo.py +++ b/examples/example_centrifugo.py @@ -1,8 +1,10 @@ -from flask import Flask, redirect -from donationalerts_api import DonationAlertsApi, Centrifugo, Scopes, Channels +from flask import Flask, redirect, request + +from donationalerts_api import DonationAlertsAPI, Centrifugo +from donationalerts_api.modules import Scopes, Channels app = Flask(__name__) -api = DonationAlertsApi("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_SUBSCRIBE]) +api = DonationAlertsAPI("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_SUBSCRIBE]) @app.route("/", methods=["get"]) @@ -12,15 +14,15 @@ def index(): @app.route("/login", methods=["get"]) def login(): - code = api.get_code() + code = request.args.get("code") access_token = api.get_access_token(code) - user = api.get_user(access_token) + user = api.user(access_token) + + fugo = Centrifugo(user.socket_connection_token, access_token, user.id) + event = fugo.subscribe(Channels.NEW_DONATION_ALERTS) - fugo = Centrifugo(user["socket_connection_token"], access_token, user["id"]) - fugo.connect() - fugo.subscribe(Channels.NEW_DONATION_ALERTS) + return event.objects - return fugo.listen() if __name__ == "__main__": app.run(debug=True) \ No newline at end of file diff --git a/examples/example_real_time.py b/examples/example_real_time.py index e53ecda..c4e3bb8 100644 --- a/examples/example_real_time.py +++ b/examples/example_real_time.py @@ -2,6 +2,7 @@ from donationalerts_api import Alert alert = Alert("token") + @alert.event() def new_donation(event): print(event) \ No newline at end of file diff --git a/examples/example_sample.py b/examples/example_sample.py index 9b1ba1d..eb1fa7f 100644 --- a/examples/example_sample.py +++ b/examples/example_sample.py @@ -1,8 +1,10 @@ -from flask import Flask, redirect -from donationalerts_api import DonationAlertsApi, Scopes +from flask import Flask, redirect, request + +from donationalerts_api import DonationAlertsAPI +from donationalerts_api.modules import Scopes app = Flask(__name__) -api = DonationAlertsApi("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_INDEX]) +api = DonationAlertsAPI("client id", "client secret", "http://127.0.0.1:5000/login", [Scopes.USER_SHOW, Scopes.DONATION_INDEX]) @app.route("/", methods=["get"]) @@ -12,13 +14,14 @@ def index(): @app.route("/login", methods=["get"]) def login(): - code = api.get_code() + code = request.args.get("code") access_token = api.get_access_token(code) - user = api.get_user(access_token) - donation_list = api.get_donations(access_token) + user = api.user(access_token) + donation_list = api.donations_list(access_token) + + return user.objects - return user if __name__ == "__main__": app.run(debug=True) \ No newline at end of file