Browse Source

Source Code

main
Fsoky 4 years ago
parent
commit
427c180cc4
  1. 65
      donationalerts_api.py

65
donationalerts_api.py

@ -6,18 +6,29 @@ from websocket import create_connection
class Scopes:
user_show = "oauth-user-show"
USER_SHOW = "oauth-user-show"
donation_subscribe = "oauth-donation-subscribe"
donation_index = "oauth-donation-index"
DONATION_SUBSCRIBE = "oauth-donation-subscribe"
DONATION_INDEX = "oauth-donation-index"
custom_alert_store = "oauth-custom_alert-store"
CUSTOM_ALERT_STORE = "oauth-custom_alert-store"
goal_subscribe = "oauth-goal-subscribe"
poll_subscribe = "oauth-poll-subscribe"
GOAL_SUBSCRIBE = "oauth-goal-subscribe"
POLL_SUBSCRIBE = "oauth-poll-subscribe"
all_scopes = [user_show, donation_subscribe, donation_index, custom_alert_store,
goal_subscribe, poll_subscribe]
ALL_SCOPES = [USER_SHOW, DONATION_INDEX, DONATION_SUBSCRIBE, CUSTOM_ALERT_STORE,
GOAL_SUBSCRIBE, POLL_SUBSCRIBE]
class Channels:
NEW_DONATION_ALERTS = "$alerts:donation_"
DONATION_GOALS_UPDATES = "$goals:goal_"
POLLS_UPDATES = "$polls:poll_"
ALL_CHANNELS = [NEW_DONATION_ALERTS, DONATION_GOALS_UPDATES, POLLS_UPDATES]
class DonationAlertsApi:
@ -52,15 +63,12 @@ class DonationAlertsApi:
self.donations_api = "https://www.donationalerts.com/api/v1/alerts/donations"
self.custom_alerts_api = "https://www.donationalerts.com/api/v1/custom_alert"
def login(self):
return self.login_url
def get_code(self):
return request.args.get("code")
def get_access_token(self, code):
payload = {
"client_id": self.client_id,
@ -74,7 +82,6 @@ class DonationAlertsApi:
access_token = requests.post(url=self.token_url, data=payload).json()
return access_token.get("access_token")
def get_donations(self, access_token):
headers = {
"Authorization": f"Bearer {access_token}",
@ -82,8 +89,7 @@ class DonationAlertsApi:
}
donate_object = requests.get(url=self.donations_api, headers=headers).json()
return donate_object # HERE PROBLEMS!!!
return donate_object
def get_user(self, access_token):
headers = {
@ -94,7 +100,6 @@ class DonationAlertsApi:
return user_object
def send_custom_alert(self, access_token, external_id, headline, message, image_url=None, sound_url=None, is_shown=0):
headers = {
"Authorization": f"Bearer {access_token}",
@ -136,27 +141,31 @@ class Centrifugo:
return self.ws_response
def subscribe(self):
def subscribe(self, channels):
chnls = []
for channel in channels:
chnls.append(f"{channel}{self.user_id}")
headers = {
"Authorization": f"Bearer {self.access_token}",
"Content-Type": "application/json"
}
data = {
"channels": [f"$alerts:donation_{self.user_id}"],
"channels": chnls,
"client": self.ws_response["result"]["client"]
}
response = requests.post(url="https://www.donationalerts.com/api/v1/centrifuge/subscribe", data=json.dumps(data), headers=headers).json()
self.ws.send(json.dumps(
{
"params": {
"channel": f"$alerts:donation_{self.user_id}",
"token": response["channels"][0]["token"]
},
"method": 1,
"id": self.user_id
}
))
for ch in response["channels"]:
self.ws.send(json.dumps(
{
"params": {
"channel": ch["channel"],
"token": ch["token"]
},
"method": 1,
"id": self.user_id
}
))
return json.loads(self.ws.recv())
Loading…
Cancel
Save