Clips now connect to account
authorGeorgios Atheridis <georgios@atheridis.org>
Sun, 22 Jan 2023 12:59:06 +0000 (12:59 +0000)
committerGeorgios Atheridis <georgios@atheridis.org>
Sun, 22 Jan 2023 12:59:06 +0000 (12:59 +0000)
core/manager/migrations/0001_initial.py
core/manager/migrations/0002_alter_clip_broadcaster_id_and_more.py [deleted file]
core/manager/migrations/0002_rename_user_clip_account.py [new file with mode: 0644]
core/manager/migrations/0003_alter_clip_account.py [new file with mode: 0644]
core/manager/models.py
core/manager/request_clip.py
core/manager/views.py

index ba091df5293c34c68cb7b5500a2ea7728570469e..a04301a51e2038df6d5349815a6e73f883873695 100644 (file)
@@ -1,33 +1,46 @@
-# Generated by Django 4.1.5 on 2023-01-22 11:53
+# Generated by Django 4.1.5 on 2023-01-22 12:47
 
 from django.db import migrations, models
+import django.db.models.deletion
 
 
 class Migration(migrations.Migration):
 
     initial = True
 
-    dependencies = []
+    dependencies = [
+        ("socialaccount", "0003_extra_data_default_dict"),
+    ]
 
     operations = [
         migrations.CreateModel(
             name="Clip",
             fields=[
-                ("id", models.TextField(primary_key=True, serialize=False)),
-                ("url", models.URLField()),
-                ("embed_url", models.URLField()),
-                ("broadcaster_id", models.TextField()),
-                ("broadcaster_name", models.TextField()),
-                ("creator_id", models.TextField()),
-                ("creator_name", models.TextField()),
-                ("video_id", models.TextField()),
-                ("game_id", models.TextField()),
-                ("title", models.TextField()),
-                ("view_count", models.IntegerField()),
-                ("created_at", models.DateTimeField()),
-                ("thumbnail_url", models.TextField()),
-                ("duration", models.FloatField()),
-                ("vod_offset", models.IntegerField()),
+                (
+                    "id",
+                    models.CharField(max_length=100, primary_key=True, serialize=False),
+                ),
+                ("url", models.URLField(null=True)),
+                ("embed_url", models.URLField(null=True)),
+                ("broadcaster_id", models.CharField(max_length=100, null=True)),
+                ("broadcaster_name", models.CharField(max_length=100, null=True)),
+                ("creator_id", models.CharField(max_length=100, null=True)),
+                ("creator_name", models.CharField(max_length=100, null=True)),
+                ("video_id", models.CharField(max_length=100, null=True)),
+                ("game_id", models.CharField(max_length=100, null=True)),
+                ("title", models.CharField(max_length=200, null=True)),
+                ("view_count", models.IntegerField(null=True)),
+                ("created_at", models.DateTimeField(null=True)),
+                ("thumbnail_url", models.URLField(null=True)),
+                ("duration", models.FloatField(null=True)),
+                ("vod_offset", models.IntegerField(null=True)),
+                (
+                    "user",
+                    models.ForeignKey(
+                        on_delete=django.db.models.deletion.CASCADE,
+                        to="socialaccount.socialaccount",
+                    ),
+                ),
             ],
         ),
     ]
diff --git a/core/manager/migrations/0002_alter_clip_broadcaster_id_and_more.py b/core/manager/migrations/0002_alter_clip_broadcaster_id_and_more.py
deleted file mode 100644 (file)
index b4d9959..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# Generated by Django 4.1.5 on 2023-01-22 11:54
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ("manager", "0001_initial"),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name="clip",
-            name="broadcaster_id",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="broadcaster_name",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="created_at",
-            field=models.DateTimeField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="creator_id",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="creator_name",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="duration",
-            field=models.FloatField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="embed_url",
-            field=models.URLField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="game_id",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="thumbnail_url",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="title",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="url",
-            field=models.URLField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="video_id",
-            field=models.TextField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="view_count",
-            field=models.IntegerField(null=True),
-        ),
-        migrations.AlterField(
-            model_name="clip",
-            name="vod_offset",
-            field=models.IntegerField(null=True),
-        ),
-    ]
diff --git a/core/manager/migrations/0002_rename_user_clip_account.py b/core/manager/migrations/0002_rename_user_clip_account.py
new file mode 100644 (file)
index 0000000..c1c4aaf
--- /dev/null
@@ -0,0 +1,18 @@
+# Generated by Django 4.1.5 on 2023-01-22 12:48
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("manager", "0001_initial"),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name="clip",
+            old_name="user",
+            new_name="account",
+        ),
+    ]
diff --git a/core/manager/migrations/0003_alter_clip_account.py b/core/manager/migrations/0003_alter_clip_account.py
new file mode 100644 (file)
index 0000000..2d1f5c9
--- /dev/null
@@ -0,0 +1,23 @@
+# Generated by Django 4.1.5 on 2023-01-22 12:52
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ("manager", "0002_rename_user_clip_account"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="clip",
+            name="account",
+            field=models.ForeignKey(
+                on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
+            ),
+        ),
+    ]
index 82bba2f9549abda3299d5bf13fe73dcaa6eaba2a..f02c1aa894fdd167bb7c1e05e664b2cd78118c0c 100644 (file)
@@ -1,20 +1,22 @@
 from django.db import models
+from django.contrib.auth.models import User
 
 
 # Create your models here.
 class Clip(models.Model):
-    id = models.TextField(primary_key=True)
+    id = models.CharField(primary_key=True, max_length=100)
     url = models.URLField(null=True)
     embed_url = models.URLField(null=True)
-    broadcaster_id = models.TextField(null=True)
-    broadcaster_name = models.TextField(null=True)
-    creator_id = models.TextField(null=True)
-    creator_name = models.TextField(null=True)
-    video_id = models.TextField(null=True)
-    game_id = models.TextField(null=True)
-    title = models.TextField(null=True)
+    broadcaster_id = models.CharField(null=True, max_length=100)
+    broadcaster_name = models.CharField(null=True, max_length=100)
+    creator_id = models.CharField(null=True, max_length=100)
+    creator_name = models.CharField(null=True, max_length=100)
+    video_id = models.CharField(null=True, max_length=100)
+    game_id = models.CharField(null=True, max_length=100)
+    title = models.CharField(null=True, max_length=200)
     view_count = models.IntegerField(null=True)
     created_at = models.DateTimeField(null=True)
-    thumbnail_url = models.TextField(null=True)
+    thumbnail_url = models.URLField(null=True)
     duration = models.FloatField(null=True)
     vod_offset = models.IntegerField(null=True)
+    account = models.ForeignKey(User, on_delete=models.CASCADE)
index 7a8ba146806a110116edac623c57e7dfe6f772bc..92b1913aa5922cf5bc42538a125ed444e3ad0d9f 100644 (file)
@@ -2,10 +2,11 @@ import requests
 from .models import Clip
 from urllib.parse import urlparse
 from allauth.socialaccount.models import SocialApp, SocialToken
+from django.contrib.auth.models import User
 
 
-def request_clip(url: str):
-    id = urlparse(url).path.split("/")[-1]
+def request_clip(user, clip: str):
+    id = urlparse(clip).path.split("/")[-1]
 
     social_app: SocialApp = SocialApp.objects.first()
     oauth = SocialToken.objects.first().token
@@ -41,6 +42,7 @@ def request_clip(url: str):
         thumbnail_url=data["thumbnail_url"],
         duration=data["duration"],
         vod_offset=data["vod_offset"],
+        account=User.objects.get(id=user.id),
     ).save()
 
     return
index 27a9033dd7c532fdc19b5e64876af0842073681a..9299a39734eee783fa98970020bc5483389302ef 100644 (file)
@@ -1,6 +1,6 @@
 import requests
 
-from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponse
 from django.shortcuts import render
 
 from .request_clip import request_clip
@@ -15,7 +15,7 @@ def get_name(request):
         # check whether it's valid:
         if form.is_valid():
             try:
-                request_clip(form.cleaned_data.get("clip"))
+                request_clip(user=request.user, clip=form.cleaned_data["clip"])
             except Exception as e:
                 print(e)
                 return HttpResponse(b"<h1>NOPE</h1>")
@@ -24,9 +24,11 @@ def get_name(request):
             # redirect to a new URL:
             return HttpResponse(b"<h1>THANKS</h1>")
             # return HttpResponseRedirect("/thanks/")
+        else:
+            print("invalid")
 
     # if a GET (or any other method) we'll create a blank form
     else:
         form = ClipForm()
 
-    return render(request, "name.html", {"form": form})
+    return render(request, "manager/index.html", {"form": form})