93 lines
4.0 KiB
Python
93 lines
4.0 KiB
Python
from django.shortcuts import render
|
|
import random
|
|
|
|
|
|
# Create your views here.
|
|
from django.http import HttpResponse
|
|
from django.db.models import Count
|
|
from django.shortcuts import redirect
|
|
from apps.random_simpsons.models import SimpsonsData
|
|
|
|
|
|
def hello(request):
|
|
return HttpResponse('<h1>Hello Django!</h1>')
|
|
|
|
def episode_generator(request):
|
|
simpsons_data_object = SimpsonsData.objects.using('simpsons_db')
|
|
|
|
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)
|
|
|
|
return redirect(str(random_url))
|
|
#return HttpResponse('Check your terminal log!')
|
|
|
|
def simpsons(request):
|
|
#dev settings
|
|
#generated_db = DB_generation("192.168.88.50",32345, "django_username", "Suffrage-Moneybags-Illusion7","django")
|
|
#production settings
|
|
generated_db = DB_generation("django-db-svc",5432, "django_username", "Suffrage-Moneybags-Illusion7","django")
|
|
|
|
cursor = generated_db.cursor()
|
|
|
|
#get max number of season
|
|
maximum_number_of_seasons = Launch_sql_query("SELECT COUNT(DISTINCT season) as result FROM episodes;",generated_db)
|
|
|
|
boolean_restart = True;
|
|
while (boolean_restart):
|
|
|
|
random_seasons = random.randint(1, maximum_number_of_seasons)
|
|
print("random season: " + str(random_seasons))
|
|
|
|
|
|
#get max number of epiosde for this season
|
|
maximum_number_of_episodes_query = "SELECT COUNT(url) as result FROM episodes WHERE season = " + str(random_seasons) + ";"
|
|
|
|
maximum_number_of_episodes = Launch_sql_query(maximum_number_of_episodes_query,generated_db)
|
|
|
|
random_episode = random.randint(1, maximum_number_of_episodes)
|
|
print("random episode: " + str(random_episode))
|
|
|
|
#check if the episode was already seen
|
|
check_if_already_seen_query = "select seen from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";"
|
|
if not Launch_sql_query(check_if_already_seen_query, generated_db):
|
|
boolean_restart = False
|
|
else:
|
|
print("episode "+str(random_episode)+" from season "+str(random_seasons)+" already seen")
|
|
|
|
url_from_episode_season_query = "select url from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";"
|
|
generated_url = Launch_sql_query(url_from_episode_season_query,generated_db)
|
|
|
|
#mark as seen
|
|
url_from_episode_season_query = "update episodes set seen = True where season=" + str(random_seasons) + " and episode = " + str(random_episode) + ";"
|
|
Launch_sql_query(url_from_episode_season_query, generated_db)
|
|
|
|
generated_db.commit()
|
|
generated_db.close()
|
|
#return HttpResponse(str(generated_url))
|
|
return redirect(str(generated_url))
|