diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..037fcb6f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "C:\\Users\\Junior\\.virtualenvs\\LambdaMUD-Project-I3DRvpUY\\Scripts\\python.exe" +} \ No newline at end of file diff --git a/adv_project/settings.py b/adv_project/settings.py index 054c2b1b..f6d3f9aa 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -12,6 +12,7 @@ import os from decouple import config +import dj_database_url # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -26,7 +27,9 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = config('DEBUG', cast=bool) -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = [config("ALLOWED_HOSTS")] + +DATABASE_URL = config("DATABASE_URL") # Application definition @@ -55,6 +58,8 @@ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', + 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', @@ -96,6 +101,9 @@ } } +db_from_env = dj_database_url.config(conn_max_age=500) +DATABASES['default'].update(db_from_env) + # Password validation # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators @@ -148,6 +156,8 @@ # https://docs.djangoproject.com/en/2.1/howto/static-files/ STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(BASE_DIR, 'static') +STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' import django_heroku django_heroku.settings(locals()) diff --git a/adventure/api.py b/adventure/api.py index 1663710f..71b4026c 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -64,4 +64,10 @@ def move(request): @api_view(["POST"]) def say(request): # IMPLEMENT - return JsonResponse({'error':"Not yet implemented"}, safe=True, status=500) + player = request.user.player + player_id = request.user.player.id + room = player.room() + currentPlayerUUIDs = room.playerUUIDs(player_id) + for p_uuid in currentPlayerUUIDs: + pusher.trigger(f'p-channel-{p_uuid}', u'broadcast', {'message': f'<{player.user.username}> says "{message}"'}) + return JsonResponse({'status': "Message sent" }, safe=True) diff --git a/adventure/migrations/0001_initial.py b/adventure/migrations/0001_initial.py new file mode 100644 index 00000000..2a42a12e --- /dev/null +++ b/adventure/migrations/0001_initial.py @@ -0,0 +1,39 @@ +# Generated by Django 2.1.1 on 2018-12-10 20:19 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Player', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('currentRoom', models.IntegerField(default=0)), + ('uuid', models.UUIDField(default=uuid.uuid4, unique=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Room', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(default='DEFAULT TITLE', max_length=50)), + ('description', models.CharField(default='DEFAULT DESCRIPTION', max_length=500)), + ('n_to', models.IntegerField(default=0)), + ('s_to', models.IntegerField(default=0)), + ('e_to', models.IntegerField(default=0)), + ('w_to', models.IntegerField(default=0)), + ], + ), + ]