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),