Skip to content

Commit

Permalink
config for heroku
Browse files Browse the repository at this point in the history
  • Loading branch information
tylerdave committed Jul 19, 2020
1 parent fb6f535 commit 50eaa1f
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 42 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,5 @@ dmypy.json

# Pyre type checker
.pyre/

staticfiles/
2 changes: 2 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ black = "==19.10b0"
django = "*"
requests-oauthlib = "*"
discord-py = "*"
django-heroku = "*"
psycopg2 = "*"

[requires]
python_version = "3.8"
43 changes: 42 additions & 1 deletion Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 29 additions & 1 deletion discoreg/discoreg/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"django.contrib.messages",
"django.contrib.sites",
"django.contrib.staticfiles",
"registrations"
"registrations",
]

MIDDLEWARE = [
Expand All @@ -54,6 +54,12 @@
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]

MIDDLEWARE_CLASSES = [
'whitenoise.middleware.WhiteNoiseMiddleware',
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

ROOT_URLCONF = "discoreg.urls"

TEMPLATES = [
Expand Down Expand Up @@ -128,3 +134,25 @@
# SOCIALACCOUNT_AUTO_SIGNUP = True
# ACCOUNT_AUTHENTICATION_METHOD = "email"
# ACCOUNT_EMAIL_REQUIRED = True


DISCORD_REDIRECT_URI = "https://tylerdave.ngrok.io/registrations/callback"
DISCORD_CLIENT_ID = os.environ["DISCORD_CLIENT_ID"]
DISCORD_CLIENT_SECRET = os.environ["DISCORD_CLIENT_SECRET"]
DISCORD_API_BASE_URL = "https://discord.com/api"
DISCORD_AUTHORIZATION_BASE_URL = f"{DISCORD_API_BASE_URL}/oauth2/authorize"
DISCORD_TOKEN_URL = f"{DISCORD_API_BASE_URL}/oauth2/token"
DISCORD_SCOPES = [
"identify",
"email",
# "guilds",
"guilds.join",
]
DISCORD_GUILD_ID = os.environ["DISCORD_GUILD_ID"]
DISCORD_BOT_TOKEN = os.environ["DISCORD_BOT_TOKEN"]
TITO_WEBHOOK_TOKEN = os.environ["TITO_WEBHOOK_TOKEN"]


import django_heroku

django_heroku.settings(locals())
72 changes: 33 additions & 39 deletions discoreg/registrations/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,22 @@
import requests
from django.urls import resolve
from django.http import HttpResponse
from django.conf import settings
from django.shortcuts import redirect, render
from requests_oauthlib import OAuth2Session

from .tito import tito_webhook

REDIRECT_URI = "https://tylerdave.ngrok.io/registrations/callback"
DISCORD_CLIENT_ID = os.environ["DISCORD_CLIENT_ID"]
DISCORD_CLIENT_SECRET = os.environ["DISCORD_CLIENT_SECRET"]
DISCORD_API_BASE_URL = "https://discord.com/api"
DISCORD_AUTHORIZATION_BASE_URL = f"{DISCORD_API_BASE_URL}/oauth2/authorize"
DISCORD_TOKEN_URL = f"{DISCORD_API_BASE_URL}/oauth2/token"
DISCORD_SCOPES = [
"identify",
"email",
"guilds",
"guilds.join",
# "connections",
]
DISCORD_GUILD_ID = "715432774366003210"
DISCORD_BOT_TOKEN = os.environ["DISCORD_BOT_TOKEN"]


# if 'http://' in REDIRECT_URI:
# os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = 'true'
DISCORD_API_BASE_URL = settings.DISCORD_API_BASE_URL
DISCORD_AUTHORIZATION_BASE_URL = settings.DISCORD_AUTHORIZATION_BASE_URL
DISCORD_BOT_TOKEN = settings.DISCORD_BOT_TOKEN
DISCORD_CLIENT_ID = settings.DISCORD_CLIENT_ID
DISCORD_CLIENT_SECRET = settings.DISCORD_CLIENT_SECRET
DISCORD_GUILD_ID = settings.DISCORD_GUILD_ID
DISCORD_REDIRECT_URI = settings.DISCORD_REDIRECT_URI
DISCORD_SCOPES = settings.DISCORD_SCOPES
DISCORD_TOKEN_URL = settings.DISCORD_TOKEN_URL


def make_session(token=None, state=None, scope=None):
Expand All @@ -37,7 +29,7 @@ def make_session(token=None, state=None, scope=None):
token=token,
state=state,
scope=scope,
redirect_uri=REDIRECT_URI,
redirect_uri=DISCORD_REDIRECT_URI,
auto_refresh_kwargs={
"client_id": DISCORD_CLIENT_ID,
"client_secret": DISCORD_CLIENT_SECRET,
Expand Down Expand Up @@ -66,33 +58,35 @@ def callback(request):
auth_session = make_session(token=token)
user = auth_session.get(f"{DISCORD_API_BASE_URL}/users/@me").json()
guilds = auth_session.get(f"{DISCORD_API_BASE_URL}/users/@me/guilds").json()
# joined = auth_session.put(f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/members/{user['id']}").json()
#roles = auth_session.get(f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/roles").json()

# joined = auth_session.put(f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/members/{user['id']}").json()
# roles = auth_session.get(f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/roles").json()
auth_headers = {
'Authorization': f"Bot {DISCORD_BOT_TOKEN}",
"Authorization": f"Bot {DISCORD_BOT_TOKEN}",
}
join_url = f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/members/{user['id']}"

joined_response= requests.put(join_url, json={'access_token': token['access_token']}, headers=auth_headers)
joined_data = joined_response.content
#guilds2 = None #auth_session.get(f"{DISCORD_API_BASE_URL}/users/@me/guilds").json()
# = discord_session.get(f"{DISCORD_API_BASE_URL}/users/@me").json()
#
roles = requests.get(f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/roles", headers=auth_headers).json()

ATTENDEE_ROLE="731868513068646460"
joined_response = requests.put(
join_url, json={"access_token": token["access_token"]}, headers=auth_headers
)
joined_data = joined_response.content
# guilds2 = None #auth_session.get(f"{DISCORD_API_BASE_URL}/users/@me/guilds").json()
# = discord_session.get(f"{DISCORD_API_BASE_URL}/users/@me").json()
#
roles = requests.get(
f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/roles", headers=auth_headers
).json()

ATTENDEE_ROLE = "731868513068646460"
role_url = f"{DISCORD_API_BASE_URL}/guilds/{DISCORD_GUILD_ID}/members/{user['id']}/roles/{ATTENDEE_ROLE}"
role_response= requests.put(role_url, headers=auth_headers, json={})
role_response = requests.put(role_url, headers=auth_headers, json={})

role_data = role_response.content

app_url = f"{DISCORD_API_BASE_URL}/applications/@me"
app_response = requests.get(app_url, headers=auth_headers)



details={
details = {
# "token": token,
# "access_token": token["access_token"],
# "user_id": user["id"],
Expand All @@ -107,17 +101,17 @@ def callback(request):
# "app_response": app_response.json(),
}
# details= None

context = {
"user": user,
"email": user.get('email'),
"email": user.get("email"),
"servers": guilds,
"joined": joined_data,
"details": details,
}
return render(request, "registrations/link.html", context)


def link(request):
discord_session = make_session()
authorization_url, state = discord_session.authorization_url(
Expand Down
3 changes: 2 additions & 1 deletion discoreg/registrations/views/tito.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
import os

from django.http import HttpResponse
from django.conf import settings
from django.views.decorators.csrf import csrf_exempt

logger = logging.getLogger(__name__)

TITO_WEBHOOK_TOKEN = os.environ.get('TITO_WEBHOOK_TOKEN')
TITO_WEBHOOK_TOKEN = settings.TITO_WEBHOOK_TOKEN

@csrf_exempt
def tito_webhook(request):
Expand Down

0 comments on commit 50eaa1f

Please sign in to comment.