diff --git a/django_code/apps/random_simpsons/views.py b/django_code/apps/random_simpsons/views.py
index 094eec9..225cd64 100644
--- a/django_code/apps/random_simpsons/views.py
+++ b/django_code/apps/random_simpsons/views.py
@@ -5,31 +5,46 @@ import random
# Create your views here.
from django.http import HttpResponse
from django.db.models import Count
-from django.shortcuts import render
+from django.shortcuts import redirect
from apps.random_simpsons.models import SimpsonsData
def hello(request):
return HttpResponse('
Hello Django!
')
-def random_episode(request):
+def episode_generator(request):
simpsons_data_object = SimpsonsData.objects.using('simpsons_db')
- maximum_number_of_seasons = SimpsonsData.objects.aggregate(unique_season=Count('season', distinct=True))['unique_season']
-
- print("maximum_number_of_seasons: "+str(maximum_number_of_seasons))
-
- random_seasons = random.randint(1, maximum_number_of_seasons)
- print("random season: " + str(random_seasons))
-
- print("--- START SIMPSONS LOG ---")
- simpson_stuff = simpsons_data_object.filter(season=random_seasons)
- for line in simpson_stuff:
- print(line)
- print("--- END SIMPSONS LOG ---")
-
+
+ boolean_restart = True;
+ while (boolean_restart):
+ maximum_number_of_seasons = simpsons_data_object.aggregate(unique_season=Count('season', distinct=True))['unique_season']
+ print("maximum_number_of_seasons: "+str(maximum_number_of_seasons))
+
+ random_seasons = random.randint(1, maximum_number_of_seasons)
+ print("random season: " + str(random_seasons))
+
+ maximum_number_of_episodes = simpsons_data_object.filter(season=random_seasons).count()
+ print("maximum_number_of_episodes: "+str(maximum_number_of_episodes))
+
+ random_episode = random.randint(1, maximum_number_of_episodes)
+ print("random episode: " + str(random_episode))
+
+ episode_seen = simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('seen')[0]['seen']
+
+ if not(episode_seen):
+ boolean_restart = False
+ else:
+ print("episode "+str(random_episode)+" from season "+str(random_seasons)+" already seen")
+
+ random_url = simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('url')[0]['url']
+
+ #Set episode as seen
+ # It will still update an already seem episode but it works and I'm lazy
+
+ simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('seen').update(seen=True)
- # Keeps Django happy by returning a valid web response
- return HttpResponse('Check your terminal log!')
+ return redirect(str(random_url))
+ #return HttpResponse('Check your terminal log!')
def simpsons(request):
#dev settings
diff --git a/django_code/django_code/settings.py b/django_code/django_code/settings.py
index b4c5e21..662a89c 100644
--- a/django_code/django_code/settings.py
+++ b/django_code/django_code/settings.py
@@ -115,7 +115,7 @@ DATABASES = {
'PORT': os.environ.get('DB_PORT'),
},
}
-DATABASE_ROUTERS = ['django_code.routers.ProjectDatabaseRouter']
+#DATABASE_ROUTERS = ['django_code.routers.ProjectDatabaseRouter']
# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
diff --git a/django_code/django_code/urls.py b/django_code/django_code/urls.py
index 46d1839..0cd0b4a 100644
--- a/django_code/django_code/urls.py
+++ b/django_code/django_code/urls.py
@@ -36,7 +36,7 @@ urlpatterns = [
path('hello/', random_simpsons.hello),
path('simpsons/', random_simpsons.simpsons),
path('download_file/', random_simpsons.download_file),
- path('print/', random_simpsons_view.random_episode),
+ path('print/', random_simpsons_view.episode_generator),
################### Redirect ###################
path('redirect/hello/', website_redirectionapp.hello),